More perldelta entries; plus, credits.
Rafael Garcia-Suarez [Mon, 14 Aug 2006 12:45:59 +0000 (12:45 +0000)]
p4raw-id: //depot/perl@28710

pod/perl594delta.pod

index ed1e3fd..926ba30 100644 (file)
@@ -14,6 +14,7 @@ and L<perl593delta> for the differences between 5.8.0 and 5.9.3.
 
 A bareword argument to chdir() is now recognized as a file handle.
 Earlier releases interpreted the bareword as a directory name.
+(Gisle Aas)
 
 =head2 Handling of pmc files
 
@@ -29,12 +30,13 @@ they exist. (This trick is used by Pugs.)
 =head2 @- and @+ in patterns
 
 The special arrays C<@-> and C<@+> are no longer interpolated in regular
-expressions.
+expressions. (Sadahiro Tomoyuki)
 
 =head2 $AUTOLOAD can now be tainted
 
 If you call a subroutine by a tainted name, and if it defers to an
 AUTOLOAD function, then $AUTOLOAD will be (correctly) tainted.
+(Rick Delaney)
 
 =head1 Core Enhancements
 
@@ -44,7 +46,7 @@ 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
 persistent: unlike C<my> variables, they're not undefined at scope entry,
-and retain their previous value.
+and retain their previous value. (Rafael Garcia-Suarez)
 
 To use state variables, one needs to enable them by using
 
@@ -60,15 +62,22 @@ 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
 module authors use other types of relations between classes (in addition
-to inheritance).
+to inheritance). (chromatic)
 
 See L<< UNIVERSAL/"$obj->DOES( ROLE )" >>.
 
+=head2 Exceptions in constant folding
+
+The constant folding routine is now wrapped in an exception handler, and
+if folding throws an exception (such as attempting to evaluate 0/0), perl
+now retains the current optree, rather than aborting the whole program.
+(Nicholas Clark)
+
 =head1 Modules and Pragmata
 
 C<encoding::warnings> is now a lexical pragma. (Although on older perls,
 which don't have support for lexical pragmas, it keeps its global
-behaviour.)
+behaviour.) (Audrey Tang)
 
 C<threads>
 
@@ -78,34 +87,35 @@ C<threads>
 
 =item *
 
-C<Hash::Util::FieldHash> 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.
+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.
 
 =item *
 
-C<Module::Build> has been added. It's an alternative to
+C<Module::Build>, by Ken Williams, has been added. It's an alternative to
 C<ExtUtils::MakeMaker> to build and install perl modules.
 
 =item *
 
-C<Module::Load> has been added. It's used to load indistinctively modules
-and files.
+C<Module::Load>, by Jos Boumans, has been added. It's used to load
+indistinctively modules and files.
 
 =item *
 
-C<Module::Loaded> has been added. It's used to mark modules as loaded or
-unloaded.
+C<Module::Loaded>, by Jos Boumans, has been added. It's used to mark
+modules as loaded or unloaded.
 
 =item *
 
-C<Package::Constants> has been added. It's a simple helper to list all
-constants declared in a given package.
+C<Package::Constants>, by Jos Boumans, has been added. It's a simple
+helper to list all constants declared in a given package.
 
 =item *
 
-C<Win32API::File> has been added (for Windows builds). This module
-provides low-level access to Win32 system API calls for files/dirs.
+C<Win32API::File>, by Tye McQueen, has been added (for Windows builds).
+This module provides low-level access to Win32 system API calls for
+files/dirs.
 
 =back
 
@@ -139,10 +149,20 @@ string encodings in Perl, due to Juerd Waalboer.
 
 =head1 Performance Enhancements
 
-Regular expressions (Yves)
+Several internal data structures (typeglobs, GVs, CVs, formats) have been
+restructured to use less memory. (Nicholas Clark)
+
+The UTF-8 caching code is now more efficient, and used more often.
+(Nicholas Clark)
+
+Regular expressions (Yves Orton) TODO
 
 =head1 Installation and Configuration Improvements
 
+=head2 Relocatable installations
+
+TODO
+
 =head2 Ports
 
 Many improvements have been made towards making Perl work correctly on
@@ -153,28 +173,50 @@ Perl has been reported to work on DragonFlyBSD.
 =head2 Compilation improvements
 
 All F<ppport.h> files in the XS modules bundled with perl are now
-autogenerated at build time.
+autogenerated at build time. (Marcus Holland-Moritz)
 
 =head2 New probes
 
 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.
+interpreter now uses them. (Steve Peters)
 
 =head1 Selected Bug Fixes
 
 =head2 PERL5SHELL and tainting
 
-On Windows, PERL5SHELL is now checked for taintedness.
+On Windows, PERL5SHELL is now checked for taintedness. (Rafael
+Garcia-Suarez)
 
 =head2 Using *FILE{IO}
 
 C<stat()> and C<-X> filetests now treat *FILE{IO} filehandles like *FILE
-filehandles.
+filehandles. (Steve Peters)
+
+=head2 Overloading and reblessing
+
+Overloading now works when references are reblessed into another class.
+Internally, this has been implemented by moving the flag for "overloading"
+from the reference to the referent, which logically is where it should
+always have been. (Nicholas Clark)
+
+=head2 Overloading and UTF-8
+
+A few bugs related to UTF-8 handling with objects that have
+stringification overloaded have been fixed. (Nicholas Clark)
 
 =head1 New or Changed Diagnostics
 
+=over 4
+
+=item State variable %s will be reinitialized
+
+One can assign initial values to state variables, but not when they're
+declared as a sub-part of a list assignment. See L<perldiag>.
+
+=back
+
 =head1 Changed Internals
 
 A new file, F<mathoms.c>, contains functions that aren't used anymore in