Expand usemorebits early if d_casti32 needs to be undefined.
[p5sagit/p5-mst-13.2.git] / pod / perldelta.pod
index 8ea61b3..fa4a67e 100644 (file)
@@ -101,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
@@ -314,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
@@ -324,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
@@ -469,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).