This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Add details of module updates
[perl5.git] / pod / perl594delta.pod
index ff28abd..aa4358b 100644 (file)
@@ -1,11 +1,11 @@
 =head1 NAME
 
-perldelta - what is new for perl v5.9.4
+perl594delta - what is new for perl v5.9.4
 
 =head1 DESCRIPTION
 
 This document describes differences between the 5.9.3 and the 5.9.4
-developement releases. See L<perl590delta>, L<perl591delta>, L<perl592delta>
+development releases. See L<perl590delta>, L<perl591delta>, L<perl592delta>
 and L<perl593delta> for the differences between 5.8.0 and 5.9.3.
 
 =head1 Incompatible Changes
@@ -44,9 +44,9 @@ AUTOLOAD function, then $AUTOLOAD will be (correctly) tainted.
 
 A new class of variables has been introduced. State variables are similar
 to C<my> variables, but are declared with the C<state> keyword in place of
-C<my>. They're visible only in their lexical scope, but their value in
+C<my>. They're visible only in their lexical scope, but their value is
 persistent: unlike C<my> variables, they're not undefined at scope entry,
-and retain their previous value. (Rafael Garcia-Suarez)
+but retain their previous value. (Rafael Garcia-Suarez)
 
 To use state variables, one needs to enable them by using
 
@@ -60,7 +60,7 @@ See L<perlsub/"Persistent variables via state()">.
 
 The C<UNIVERSAL> class has a new method, C<DOES()>. It has been added to
 solve semantic problems with the C<isa()> method. C<isa()> checks for
-inheritance, while C<DOES()> has been designed to be overriden when
+inheritance, while C<DOES()> has been designed to be overridden when
 module authors use other types of relations between classes (in addition
 to inheritance). (chromatic)
 
@@ -83,13 +83,13 @@ until now. See L<perlfunc/require> for details. (Nicholas Clark)
 =head2 MAD
 
 MAD, which stands for I<Misc Attribute Decoration>, is a
-still-in-development work leading to a Perl 5 to Perl 6 convertor. To
+still-in-development work leading to a Perl 5 to Perl 6 converter. To
 enable it, it's necessary to pass the argument C<-Dmad> to Configure. The
 obtained perl isn't binary compatible with a regular perl 5.9.4, and has
 space and speed penalties; moreover not all regression tests still pass
 with it. (Larry Wall, Nicholas Clark)
 
-=head1 Modules and Pragmata
+=head1 Modules and Pragmas
 
 =over 4
 
@@ -122,6 +122,7 @@ D. Hedden)
 C<Hash::Util::FieldHash>, by Anno Siegel, has been added. This module
 provides support for I<field hashes>: hashes that maintain an association
 of a reference with a value, in a thread-safe garbage-collected way.
+Such hashes are useful to implement inside-out objects.
 
 =item *
 
@@ -158,7 +159,7 @@ files/dirs.
 C<config_data> is a new utility that comes with C<Module::Build>. It
 provides a command-line interface to the configuration of Perl modules
 that use Module::Build's framework of configurability (that is,
-C<*::ConfigData> modules, that contain local configuration information for
+C<*::ConfigData> modules that contain local configuration information for
 their parent modules.)
 
 =head1 Documentation
@@ -166,18 +167,17 @@ their parent modules.)
 =head2 New manpage, perlpragma
 
 The L<perlpragma> manpage documents how to write one's own lexical
-pragmas in pure Perl (something that is possible only starting with
-5.9.4).
+pragmas in pure Perl (something that is possible starting with 5.9.4).
 
 =head2 New manpage, perlreguts
 
-The L<perlreguts> manpage, due to Yves Orton, describes internals of the
+The L<perlreguts> manpage, courtesy of Yves Orton, describes internals of the
 Perl regular expression engine.
 
 =head2 New manpage, perlunitut
 
 The L<perlunitut> manpage is an tutorial for programming with Unicode and
-string encodings in Perl, due to Juerd Waalboer.
+string encodings in Perl, courtesy of Juerd Waalboer.
 
 =head1 Performance Enhancements
 
@@ -195,7 +195,7 @@ The UTF-8 caching code is now more efficient, and used more often.
 
 =over 4
 
-=item Engine de-recursiveized
+=item Engine de-recursivised
 
 The regular expression engine is no longer recursive, meaning that
 patterns that used to overflow the stack will either die with useful
@@ -233,6 +233,13 @@ matching to find the start point. (Yves Orton)
 
 =back
 
+=head2 Sloppy stat on Windows
+
+On Windows, perl's stat() function normally opens the file to determine
+the link count and update attributes that may have been changed through
+hard links. Setting ${^WIN32_SLOPPY_STAT} to a true value speeds up
+stat() by not performing this operation. (Jan Dubois)
+
 =head1 Installation and Configuration Improvements
 
 =head2 Relocatable installations
@@ -265,14 +272,31 @@ autogenerated at build time. (Marcus Holland-Moritz)
 The configuration process now detects whether strlcat() and strlcpy() are
 available.  When they are not available, perl's own version is used (from
 Russ Allbery's public domain implementation).  Various places in the perl
-interpreter now uses them. (Steve Peters)
+interpreter now use them. (Steve Peters)
+
+=head2 Windows build improvements
+
+=over 4
+
+=item Building XS extensions
+
+Support for building XS extension modules with the free MinGW compiler has
+been improved in the case where perl itself was built with the Microsoft
+VC++ compiler. (ActiveState)
+
+=item Support for 64-bit compiler
+
+Support for building perl with Microsoft's 64-bit compiler has been
+improved. (ActiveState)
+
+=back
 
 =head1 Selected Bug Fixes
 
 =head2 PERL5SHELL and tainting
 
-On Windows, PERL5SHELL is now checked for taintedness. (Rafael
-Garcia-Suarez)
+On Windows, the PERL5SHELL environment variable is now checked for
+taintedness. (Rafael Garcia-Suarez)
 
 =head2 Using *FILE{IO}
 
@@ -291,6 +315,18 @@ always have been. (Nicholas Clark)
 A few bugs related to UTF-8 handling with objects that have
 stringification overloaded have been fixed. (Nicholas Clark)
 
+=head2 eval memory leaks fixed
+
+Traditionally, C<eval 'syntax error'> has leaked badly. Many (but not all)
+of these leaks have now been eliminated or reduced. (Dave Mitchell)
+
+=head2 Random device on Windows
+
+In previous versions, perl would read the file F</dev/urandom> if it
+existed when seeding its random number generator.  That file is unlikely
+to exist on Windows, and if it did would probably not contain appropriate
+data, so perl no longer tries to read it on Windows. (Alex Davies)
+
 =head1 New or Changed Diagnostics
 
 =over 4
@@ -305,7 +341,7 @@ declared as a sub-part of a list assignment. See L<perldiag>.
 =head1 Changed Internals
 
 A new file, F<mathoms.c>, contains functions that aren't used anymore in
-the perl core, but that remain around because modules out there might
+the perl core, but remain around because modules out there might
 still use them. They come from a factorization effort: for example, many
 PP functions are now shared for several ops.
 
@@ -317,14 +353,9 @@ allow implementing lexical pragmas in pure perl.
 One warning test (number 263 in F<lib/warnings.t>) fails under UTF-8
 locales.
 
-Bytecode tests fails under several platforms. We are considering removing
+Bytecode tests fail under several platforms. We are considering removing
 support for byteloader and compiler before the 5.10.0 release.
 
-=head2 Platform-specific Problems
-
-The test F<ext/Socket/t/socketpair.t> crashes after completing all tests
-successfully when built with USE_ITHREADS and PERL_IMPLICIT_SYS on Win32.
-
 =head1 Reporting Bugs
 
 If you find what you think is a bug, you might check the articles