Fix the sys/fcntl.h problem reported by Peter Prymmer.
[p5sagit/p5-mst-13.2.git] / pod / perldelta.pod
index 7c21f5f..fa4a67e 100644 (file)
@@ -75,6 +75,12 @@ since it, in a way, falsely promised that the features could be used.
 
 =item *
 
+The (bogus) escape sequences \8 and \9 now give an optional warning
+("Unrecognized escape passed through").  There is no need to \-escape
+any C<\w> character.
+
+=item *
+
 lstat(FILEHANDLE) now gives a warning because the operation makes no sense.
 In future releases this may become a fatal error.
 
@@ -95,6 +101,13 @@ The tr///C and tr///U features have been removed and will not return;
 the interface was a mistake.  Sorry about that.  For similar
 functionality, see pack('U0', ...) and pack('C0', ...).
 
+=item *
+
+Although "you shouldn't do that", it was possible to write code that
+depends on Perl's hashed key order (Data::Dumper does this).  The new
+algorithm "One-at-a-Time" produces a different hashed key order.
+More details are in L<perldelta/Performance Enhancements>.
+
 =back
 
 =head1 Core Enhancements
@@ -103,6 +116,10 @@ functionality, see pack('U0', ...) and pack('C0', ...).
 
 =item *
 
+Formats now support zero-padded decimal fields.
+
+=item *
+
 C<perl -d:Module=arg,arg,arg> now works (previously one couldn't pass
 in multiple arguments.)
 
@@ -125,6 +142,11 @@ C<pack('U0a*', ...)> can now be used to force a string to UTF8.
 
 =item *
 
+The printf and sprintf now support parameter reordering using the
+C<%\d+\$> and C<*\d+\$> syntaxes.
+
+=item *
+
 prototype(\&) is now available.
 
 =item *
@@ -217,8 +239,6 @@ C<%INC> now localised in a Safe compartment so that use/require work.
 
 The Shell module now has an OO interface.
 
-=item *
-
 =back
 
 =head1 Utility Changes
@@ -301,7 +321,7 @@ distribution.
 map() that changes the size of the list should now work faster.
 
 =item *
+
 sort() has been changed to use mergesort internally as opposed to the
 earlier quicksort.  For very small lists this may result in slightly
 slower sorting times, but in general the speedup should be at least
@@ -311,6 +331,17 @@ as opposed to quicksort's Theta(N**2) worst-case run time behaviour),
 and that sort() is now stable (meaning that elements with identical
 keys will stay ordered as they were before the sort).
 
+=item *
+
+Hashes now use Bob Jenkins "One-at-a-Time" hashing key algorithm
+(http://burtleburtle.net/bob/hash/doobs.html).
+This algorithm is reasonably fast while producing a much better spread
+of values.  Hash values output from the algorithm on a hash of all
+3-char printable ASCII keys comes much closer to passing the DIEHARD
+random number generation tests.  According to perlbench, this change
+has not affected the overall speed of Perl.
+
+
 =back
 
 =head1 Installation and Configuration Improvements
@@ -376,6 +407,12 @@ $Config{byteorder} is now computed dynamically (this is more robust
 with "fat binaries" where an executable image contains binaries for
 more than one binary platform.)
 
+=item *
+
+Configure no longer included the DBM libraries (dbm, gdbm, db, ndbm)
+when building the Perl binary. The only exception to this is SunOS 4.x,
+which needs them.
+
 =back
 
 =head1 Selected Bug Fixes
@@ -450,7 +487,7 @@ Regular expressions on references and overloaded scalars now work.
 scalar() now forces scalar context even when used in void context.
 
 =item *
-       
+
 sort() arguments are now compiled in the right wantarray context
 (they were accidentally using the context of the sort() itself).
 
@@ -705,6 +742,8 @@ winsock handle leak fixed.
 
 =back
 
+=back
+
 =head1 New or Changed Diagnostics
 
 All regular expression compilation error messages are now hopefully
@@ -802,6 +841,15 @@ this area.)
 
 No known fix.
 
+=head2 sprintf tests 129 and 130
+
+The op/sprintf tests 129 and 130 are known to fail in some platforms.
+Examples include any platform using sfio, and Tandem's NonStop-UX.
+The failing platforms do not comply with the ANSI C Standard, line
+19ff on page 134 of ANSI X3.159 1989 to be exact.  (They produce
+something else than "1" and "-1" when formatting 0.6 and -0.6 using
+the printf format "%.0f", most often they produce "0" and "-0".)
+
 =head2 Storable tests fail in some platforms
 
 If any Storable tests fail the use of Storable is not advisable.
@@ -831,6 +879,8 @@ made in other platforms.
 
 st-store.t and st-retrieve may fail with Compaq C 6.2 on OpenVMS Alpha 7.2.
 
+=back
+
 =head2 Threads Are Still Experimental
 
 Multithreading is still an experimental feature.  Some platforms
@@ -860,8 +910,6 @@ The compiler suite is slowly getting better but is nowhere near
 working order yet.  The backend part that has seen perhaps the most
 progress is the bytecode compiler.
 
-=back
-
 =head1 Reporting Bugs
 
 If you find what you think is a bug, you might check the articles