=item *
+A reference to a reference now stringify as "REF(0x81485ec)" instead
+of "SCALAR(0x81485ec)" in order to be more consistent with the return
+value of ref().
+
+=item *
+
The very dusty examples in the eg/ directory have been removed.
Suggestions for new shiny examples welcome but the main issue is that
the examples need to be documented, tested and (most importantly)
=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.
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
=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.)
=item *
+The printf and sprintf now support parameter reordering using the
+C<%\d+\$> and C<*\d+\$> syntaxes.
+
+=item *
+
prototype(\&) is now available.
=item *
The Shell module now has an OO interface.
-=item *
-
=back
=head1 Utility Changes
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
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
=item *
-INSTALL now explains how you can configure perl to use 64-bit
+INSTALL now explains how you can configure Perl to use 64-bit
integers even on non-64-bit platforms.
=item *
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
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).
BOMs (byte order marks) in the beginning of Perl files
(scripts, modules) should now be transparently skipped.
-UTF16 encoded Perl files should now be read correctly.
+UTF-16 (UCS-2)encoded Perl files should now be read correctly.
=item *
=item *
-vec() now refuses to deal with characters >255.
+vec() now tries to work with characters <= 255 when possible, but it leaves
+higher character values in place. In that case, if vec() was used to modify
+the string, it is no longer considered to be utf8-encoded.
=item *
=item *
Less stack reserved per thread so that more threads can run
-concurrently. (still 16M perl thread)
+concurrently. (Still 16M per thread.)
=item *
C<File::Spec->tmpdir()> now prefers C:/temp over /tmp
-(works better when perl running as service).
+(works better when perl is running as service).
=item *
=back
+=back
+
=head1 New or Changed Diagnostics
All regular expression compilation error messages are now hopefully
Building microperl does not require even running Configure;
C<make -f Makefile.micro> should be enough. Beware: microperl makes
many assumptions, some of which may be too bold; the resulting
-executable may crash or otherwise misbehave in wondrous ways. For
-careful hackers only.
+executable may crash or otherwise misbehave in wondrous ways.
+For careful hackers only.
=item *
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.
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
# is still an experimental feature. It is here to stop people
# from deploying threads in production. ;-)
#
-
-and another known warning is
+
+and another known thread-related warning is
pragma/overload......Unbalanced saves: 3 more saves than restores
panic: magic_mutexfree during global destruction.
=head2 The Compiler Suite Is Still Experimental
-The compiler suite is slowly getting better but is nowhere near yet.
-The backend part that has seen perhaps the most progress is the
-bytecode compiler.
-
-=back
+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.
=head1 Reporting Bugs