summaryrefslogtreecommitdiff
path: root/pod/perl588delta.pod
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2006-02-01 17:53:28 +0000
committerNicholas Clark <nick@ccl4.org>2006-02-01 17:53:28 +0000
commitc11a53c651fea67be0519304acae4518ba4a1a54 (patch)
tree7d6c10b7c831d2681c6cc2163bcde987e8c2dc48 /pod/perl588delta.pod
parenteed1f4d3b2206c29d4c4c1c73552095d0364b675 (diff)
downloadperl-c11a53c651fea67be0519304acae4518ba4a1a54.tar.gz
Integrate perl588delta.pod from maint, and re-run pod/buildtoc.
p4raw-id: //depot/perl@27037 p4raw-branched: from //depot/maint-5.8/perl@27036 'branch in' pod/perl588delta.pod (@27012..) p4raw-edited: from //depot/maint-5.8/perl@24695 'edit in' vms/descrip_mms.template (@24616..) p4raw-integrated: from //depot/maint-5.8/perl@24695 'edit in' Makefile.SH (@23936..) pod.lst pod/perltoc.pod win32/Makefile win32/makefile.mk (@24616..) 'merge in' win32/pod.mak (@23573..) MANIFEST (@24611..)
Diffstat (limited to 'pod/perl588delta.pod')
-rw-r--r--pod/perl588delta.pod1632
1 files changed, 1632 insertions, 0 deletions
diff --git a/pod/perl588delta.pod b/pod/perl588delta.pod
new file mode 100644
index 0000000000..344d8f4348
--- /dev/null
+++ b/pod/perl588delta.pod
@@ -0,0 +1,1632 @@
+=head1 NAME
+
+perldelta - what is new for perl v5.8.8
+
+=head1 DESCRIPTION
+
+This document describes differences between the 5.8.7 release and
+the 5.8.8 release.
+
+=head1 Incompatible Changes
+
+There are no changes intentionally incompatible with 5.8.7. If any exist,
+they are bugs and reports are welcome.
+
+=head1 Core Enhancements
+
+=over
+
+=item *
+
+C<chdir>, C<chmod> and C<chown> can now work on filehandles as well as
+filenames, if the system supports respectively C<fchdir>, C<fchmod> and
+C<fchown>, thanks to a patch provided by Gisle Aas.
+
+=back
+
+=head1 Modules and Pragmata
+
+=over
+
+=item *
+
+C<Attribute::Handlers> upgraded to version 0.78_02
+
+=over
+
+=item *
+
+Documentation typo fix
+
+=back
+
+=item *
+
+C<attrs> upgraded to version 1.02
+
+=over
+
+=item *
+
+Internal cleanup only
+
+=back
+
+=item *
+
+C<autouse> upgraded to version 1.05
+
+=over
+
+=item *
+
+Simplified implementation
+
+=back
+
+=item *
+
+C<B> upgraded to version 1.09_01
+
+=over
+
+=item *
+
+The inheritance hierarchy of the C<B::> modules has been corrected;
+C<B::NV> now inherits from C<B::SV> (instead of C<B::IV>).
+
+=back
+
+=item *
+
+C<blib> upgraded to version 1.03
+
+=over
+
+=item *
+
+Documentation typo fix
+
+=back
+
+=item *
+
+C<ByteLoader> upgraded to version 0.06
+
+=over
+
+=item *
+
+Internal cleanup
+
+=back
+
+=item *
+
+C<CGI> upgraded to version 3.15
+
+=over
+
+=item *
+
+Extraneous "?" from C<self_url()> removed
+
+=item *
+
+C<scrolling_list()> select attribute fixed
+
+=item *
+
+C<virtual_port> now works properly with the https protocol
+
+=item *
+
+C<upload_hook()> and C<append()> now works in function-oriented mode
+
+=item *
+
+C<POST_MAX> doesn't cause the client to hang any more
+
+=item *
+
+Automatic tab indexes are now disabled and new C<-tabindex> pragma has
+been added to turn automatic indexes back on
+
+=item *
+
+C<end_form()> doesn't emit empty (and non-validating) C<< <div> >>
+
+=item *
+
+C<CGI::Carp> works better in certain mod_perl configurations
+
+=item *
+
+Setting C<$CGI::TMPDIRECTORY> is now effective
+
+=item *
+
+Enhanced documentation
+
+=back
+
+=item *
+
+C<charnames> upgraded to version 1.05
+
+=over
+
+=item *
+
+C<viacode()> now accept hex strings and has been optimized.
+
+=back
+
+=item *
+
+C<CPAN> upgraded to version 1.76_02
+
+=over
+
+=item *
+
+1 minor bug fix for Win32
+
+=back
+
+=item *
+
+C<Cwd> upgraded to version 3.12
+
+=over
+
+=item *
+
+C<canonpath()> on Win32 now collapses F<foo\..> sections correctly.
+
+=item *
+
+Improved behaviour on Symbian OS.
+
+=item *
+
+Enhanced documentation and typo fixes
+
+=item *
+
+Internal cleanup
+
+=back
+
+=item *
+
+C<Data::Dumper> upgraded to version 2.121_08
+
+=over
+
+=item *
+
+A problem where C<Data::Dumper> would sometimes update the iterator state
+of hashes has been fixed
+
+=item *
+
+Numeric labels now work
+
+=item *
+
+Internal cleanup
+
+=back
+
+=item *
+
+C<DB> upgraded to version 1.01
+
+=over
+
+=item *
+
+A problem where the state of the regexp engine would sometimes get clobbered when running
+under the debugger has been fixed.
+
+=back
+
+=item *
+
+C<DB_File> upgraded to version 1.814
+
+=over
+
+=item *
+
+Adds support for Berkeley DB 4.4.
+
+=back
+
+=item *
+
+C<Devel::DProf> upgraded to version 20050603.00
+
+=over
+
+=item *
+
+Internal cleanup
+
+=back
+
+=item *
+
+C<Devel::Peek> upgraded to version 1.03
+
+=over
+
+=item *
+
+Internal cleanup
+
+=back
+
+=item *
+
+C<Devel::PPPort> upgraded to version 3.06_01
+
+=over
+
+=item *
+
+C<--compat-version> argument checking has been improved
+
+=item *
+
+Files passed on the command line are filtered by default
+
+=item *
+
+C<--nofilter> option to override the filtering has been added
+
+=item *
+
+Enhanced documentation
+
+=back
+
+=item *
+
+C<diagnostics> upgraded to version 1.15
+
+=over
+
+=item *
+
+Documentation typo fix
+
+=back
+
+=item *
+
+C<Digest> upgraded to version 1.14
+
+=over
+
+=item *
+
+The constructor now knows which module implements SHA-224
+
+=item *
+
+Documentation tweaks and typo fixes
+
+=back
+
+=item *
+
+C<Digest::MD5> upgraded to version 2.36
+
+=over
+
+=item *
+
+C<XSLoader> is now used for faster loading
+
+=item *
+
+Enhanced documentation including MD5 weaknesses discovered lately
+
+=back
+
+=item *
+
+C<Dumpvalue> upgraded to version 1.12
+
+=over
+
+=item *
+
+Documentation fix
+
+=back
+
+=item *
+
+C<DynaLoader> upgraded but unfortunately we're not able to increment its version number :-(
+
+=over
+
+=item *
+
+Implements C<dl_unload_file> on Win32
+
+=item *
+
+Internal cleanup
+
+=item *
+
+C<XSLoader> 0.06 incorporated; small optimisation for calling
+C<bootstrap_inherit()> and documentation enhancements.
+
+=back
+
+=item *
+
+C<Encode> upgraded to version 2.12
+
+=over
+
+=item *
+
+A coderef is now acceptable for C<CHECK>!
+
+=item *
+
+3 new characters added to the ISO-8859-7 encoding
+
+=item *
+
+New encoding C<MIME-Header-ISO_2022_JP> added
+
+=item *
+
+Problem with partial characters and C<< encoding(utf-8-strict) >> fixed.
+
+=item *
+
+Documentation enhancements and typo fixes
+
+=back
+
+=item *
+
+C<English> upgraded to version 1.02
+
+=over
+
+=item *
+
+the C<< $COMPILING >> variable has been added
+
+=back
+
+=item *
+
+C<ExtUtils::Constant> upgraded to version 0.17
+
+=over
+
+=item *
+
+Improved compatibility with older versions of perl
+
+=back
+
+=item *
+
+C<ExtUtils::MakeMaker> upgraded to version 6.30 (was 6.17)
+
+=over
+
+=item *
+
+Too much to list here; see L<http://search.cpan.org/src/MSCHWERN/ExtUtils-MakeMaker-6.30/Changes>
+
+=back
+
+=item *
+
+C<File::Basename> upgraded to version 2.74, with changes contributed by Michael Schwern.
+
+=over
+
+=item *
+
+Documentation clarified and errors corrected.
+
+=item *
+
+C<basename> now strips trailing path separators before processing the name.
+
+=item *
+
+C<basename> now returns C</> for parameter C</>, to make C<basename>
+consistent with the shell utility of the same name.
+
+=item *
+
+The suffix is no longer stripped if it is identical to the remaining characters
+in the name, again for consistency with the shell utility.
+
+=item *
+
+Some internal code cleanup.
+
+=back
+
+=item *
+
+C<File::Copy> upgraded to version 2.09
+
+=over
+
+=item *
+
+Copying a file onto itself used to fail.
+
+=item *
+
+Moving a file between file systems now preserves the access and
+modification time stamps
+
+=back
+
+=item *
+
+C<File::Find> upgraded to version 1.10
+
+=over
+
+=item *
+
+Win32 portability fixes
+
+=item *
+
+Enhanced documentation
+
+=back
+
+=item *
+
+C<File::Glob> upgraded to version 1.05
+
+=over
+
+=item *
+
+Internal cleanup
+
+=back
+
+=item *
+
+C<File::Path> upgraded to version 1.08
+
+=over
+
+=item *
+
+C<mkpath> now preserves C<errno> when C<mkdir> fails
+
+=back
+
+=item *
+
+C<File::Spec> upgraded to version 3.12
+
+=over
+
+=item *
+
+C<File::Spec->rootdir()> now returns C<\> on Win32, instead of C</>
+
+=item *
+
+C<$^O> could sometimes become tainted. This has been fixed.
+
+=item *
+
+C<canonpath> on Win32 now collapses C<foo/..> (or C<foo\..>) sections
+correctly, rather than doing the "misguided" work it was previously doing.
+Note that C<canonpath> on Unix still does B<not> collapse these sections, as
+doing so would be incorrect.
+
+=item *
+
+Some documentation improvements
+
+=item *
+
+Some internal code cleanup
+
+=back
+
+=item *
+
+C<FileCache> upgraded to version 1.06
+
+=over
+
+=item *
+
+POD formatting errors in the documentation fixed
+
+=back
+
+=item *
+
+C<Filter::Simple> upgraded to version 0.82
+
+=item *
+
+C<FindBin> upgraded to version 1.47
+
+=over
+
+=item *
+
+Now works better with directories where access rights are more
+restrictive than usual.
+
+=back
+
+=item *
+
+C<GDBM_File> upgraded to version 1.08
+
+=over
+
+=item *
+
+Internal cleanup
+
+=back
+
+=item *
+
+C<Getopt::Long> upgraded to version 2.35
+
+=over
+
+=item *
+
+C<prefix_pattern> has now been complemented by a new configuration
+option C<long_prefix_pattern> that allows the user to specify what
+prefix patterns should have long option style semantics applied.
+
+=item *
+
+Options can now take multiple values at once (experimental)
+
+=item *
+
+Various bug fixes
+
+=back
+
+=item *
+
+C<if> upgraded to version 0.05
+
+=over
+
+=item *
+
+Give more meaningful error messages from C<if> when invoked with a
+condition in list context.
+
+=item *
+
+Restore backwards compatibility with earlier versions of perl
+
+=back
+
+=item *
+
+C<IO> upgraded to version 1.22
+
+=over
+
+=item *
+
+Enhanced documentation
+
+=item *
+
+Internal cleanup
+
+=back
+
+=item *
+
+C<IPC::Open2> upgraded to version 1.02
+
+=over
+
+=item *
+
+Enhanced documentation
+
+=back
+
+=item *
+
+C<IPC::Open3> upgraded to version 1.02
+
+=over
+
+=item *
+
+Enhanced documentation
+
+=back
+
+=item *
+
+C<List::Util> upgraded to version 1.18 (was 1.14)
+
+=over
+
+=item *
+
+Fix pure-perl version of C<refaddr> to avoid blessing an un-blessed reference
+
+=item *
+
+Use C<XSLoader> for faster loading
+
+=item *
+
+Fixed various memory leaks
+
+=item *
+
+Internal cleanup and portability fixes
+
+=back
+
+=item *
+
+C<Math::Complex> upgraded to version 1.35
+
+=over
+
+=item *
+
+C<atan2(0, i)> now works, as do all the (computable) complex argument cases
+
+=item *
+
+Fixes for certain bugs in C<make> and C<emake>
+
+=item *
+
+Support returning the I<k>th root directly
+
+=item *
+
+Support C<[2,-3pi/8]> in C<emake>
+
+=item *
+
+Support C<inf> for C<make>/C<emake>
+
+=item *
+
+Document C<make>/C<emake> more visibly
+
+=back
+
+=item *
+
+C<Math::Trig> upgraded to version 1.03
+
+=over
+
+=item *
+
+Add more great circle routines: C<great_circle_waypoint> and
+C<great_circle_destination>
+
+=back
+
+=item *
+
+C<MIME::Base64> upgraded to version 3.07
+
+=over
+
+=item *
+
+Use C<XSLoader> for faster loading
+
+=item *
+
+Enhanced documentation
+
+=item *
+
+Internal cleanup
+
+=back
+
+=item *
+
+C<NDBM_File> upgraded to version 1.06
+
+=over
+
+=item *
+
+Enhanced documentation
+
+=back
+
+=item *
+
+C<ODBM_File> upgraded to version 1.06
+
+=over
+
+=item *
+
+Documentation typo fixed
+
+=item *
+
+Internal cleanup
+
+=back
+
+=item *
+
+C<Opcode> upgraded to version 1.06
+
+=over
+
+=item *
+
+Enhanced documentation
+
+=item *
+
+Internal cleanup
+
+=back
+
+=item *
+
+C<open> upgraded to version 1.05
+
+=over
+
+=item *
+
+Enhanced documentation
+
+=back
+
+=item *
+
+C<overload> upgraded to version 1.04
+
+=over
+
+=item *
+
+Enhanced documentation
+
+=back
+
+=item *
+
+C<PerlIO> upgraded to version 1.04
+
+=over
+
+=item *
+
+C<PerlIO::via> iterate over layers properly now
+
+=item *
+
+C<PerlIO::scalar> understands C<< $/ = "" >> now
+
+=item *
+
+C<encoding(utf-8-strict)> with partial characters now works
+
+=item *
+
+Enhanced documentation
+
+=item *
+
+Internal cleanup
+
+=back
+
+=item *
+
+C<Pod::Functions> upgraded to version 1.03
+
+=over
+
+=item *
+
+Documentation typos fixed
+
+=back
+
+=item *
+
+C<Pod::Html> upgraded to version 1.0504
+
+=over
+
+=item *
+
+HTML output will now correctly link
+to C<=item>s on the same page, and should be valid XHTML.
+
+=item *
+
+Variable names are recognized as intended
+
+=item *
+
+Documentation typos fixed
+
+=back
+
+=item *
+
+C<Pod::Parser> upgraded to version 1.32
+
+=over
+
+=item *
+
+Allow files that start with C<=head> on the first line
+
+=item *
+
+Win32 portability fix
+
+=item *
+
+Exit status of C<pod2usage> fixed
+
+=item *
+
+New C<-noperldoc> switch for C<pod2usage>
+
+=item *
+
+Arbitrary URL schemes now allowed
+
+=item *
+
+Documentation typos fixed
+
+=back
+
+=item *
+
+C<POSIX> upgraded to version 1.09
+
+=over
+
+=item *
+
+Documentation typos fixed
+
+=item *
+
+Internal cleanup
+
+=back
+
+=item *
+
+C<re> upgraded to version 0.05
+
+=over
+
+=item *
+
+Documentation typo fixed
+
+=back
+
+=item *
+
+C<Safe> upgraded to version 2.12
+
+=over
+
+=item *
+
+Minor documentation enhancement
+
+=back
+
+=item *
+
+C<SDBM_File> upgraded to version 1.05
+
+=over
+
+=item *
+
+Documentation typo fixed
+
+=item *
+
+Internal cleanup
+
+=back
+
+=item *
+
+C<Socket> upgraded to version 1.78
+
+=over
+
+=item *
+
+Internal cleanup
+
+=back
+
+=item *
+
+C<Storable> upgraded to version 2.15
+
+=over
+
+=item *
+
+This includes the C<STORABLE_attach> hook functionality added by
+Adam Kennedy, and more frugal memory requirements when storing under C<ithreads>, by
+using the C<ithreads> cloning tracking code.
+
+=back
+
+=item *
+
+C<Switch> upgraded to version 2.10_01
+
+=over
+
+=item *
+
+Documentation typos fixed
+
+=back
+
+=item *
+
+C<Sys::Syslog> upgraded to version 0.13
+
+=over
+
+=item *
+
+Now provides numeric macros and meaningful C<Exporter> tags.
+
+=item *
+
+No longer uses C<Sys::Hostname> as it may provide useless values in
+unconfigured network environments, so instead uses C<INADDR_LOOPBACK> directly.
+
+=item *
+
+C<syslog()> now uses local timestamp.
+
+=item *
+
+C<setlogmask()> now behaves like its C counterpart.
+
+=item *
+
+C<setlogsock()> will now C<croak()> as documented.
+
+=item *
+
+Improved error and warnings messages.
+
+=item *
+
+Improved documentation.
+
+=back
+
+=item *
+
+C<Term::ANSIColor> upgraded to version 1.10
+
+=over
+
+=item *
+
+Fixes a bug in C<colored> when C<$EACHLINE> is set that caused it to not color
+lines consisting solely of 0 (literal zero).
+
+=item *
+
+Improved tests.
+
+=back
+
+=item *
+
+C<Term::ReadLine> upgraded to version 1.02
+
+=over
+
+=item *
+
+Documentation tweaks
+
+=back
+
+=item *
+
+C<Test::Harness> upgraded to version 2.56 (was 2.48)
+
+=over
+
+=item *
+
+The C<Test::Harness> timer is now off by default.
+
+=item *
+
+Now shows elapsed time in milliseconds.
+
+=item *
+
+Various bug fixes
+
+=back
+
+=item *
+
+C<Test::Simple> upgraded to version 0.62 (was 0.54)
+
+=over
+
+=item *
+
+C<is_deeply()> no longer fails to work for many cases
+
+=item *
+
+Various minor bug fixes
+
+=item *
+
+Documentation enhancements
+
+=back
+
+=item *
+
+C<Text::Tabs> upgraded to version 2005.0824
+
+=over
+
+=item *
+
+Provides a faster implementation of C<expand>
+
+=back
+
+=item *
+
+C<Text::Wrap> upgraded to version 2005.082401
+
+=over
+
+=item *
+
+Adds C<$Text::Wrap::separator2>, which allows you to preserve existing newlines
+but add line-breaks with some other string.
+
+=back
+
+=item *
+
+C<threads> upgraded to version 1.07
+
+=over
+
+=item *
+
+C<threads> will now honour C<no warnings 'threads'>
+
+=item *
+
+A thread's interpreter is now freed after C<< $t->join() >> rather than after
+C<undef $t>, which should fix some C<ithreads> memory leaks. (Fixed by Dave
+Mitchell)
+
+=item *
+
+Some documentation typo fixes.
+
+=back
+
+=item *
+
+C<threads::shared> upgraded to version 0.94
+
+=over
+
+=item *
+
+Documentation changes only
+
+=item *
+
+Note: An improved implementation of C<threads::shared> is available on
+CPAN - this will be merged into 5.8.9 if it proves stable.
+
+=back
+
+=item *
+
+C<Tie::Hash> upgraded to version 1.02
+
+=over
+
+=item *
+
+Documentation typo fixed
+
+=back
+
+=item *
+
+C<Time::HiRes> upgraded to version 1.86 (was 1.66)
+
+=over
+
+=item *
+
+C<clock_nanosleep()> and C<clock()> functions added
+
+=item *
+
+Support for the POSIX C<clock_gettime()> and C<clock_getres()> has been added
+
+=item *
+
+Return C<undef> or an empty list if the C C<gettimeofday()> function fails
+
+=item *
+
+Improved C<nanosleep> detection
+
+=item *
+
+Internal cleanup
+
+=item *
+
+Enhanced documentation
+
+=back
+
+=item *
+
+C<Unicode::Collate> upgraded to version 0.52
+
+=over
+
+=item *
+
+Now implements UCA Revision 14 (based on Unicode 4.1.0).
+
+=item *
+
+C<Unicode::Collate->new> method no longer overwrites user's C<$_>
+
+=item *
+
+Enhanced documentation
+
+=back
+
+=item *
+
+C<Unicode::UCD> upgraded to version 0.24
+
+=over
+
+=item *
+
+Documentation typos fixed
+
+=back
+
+=item *
+
+C<User::grent> upgraded to version 1.01
+
+=over
+
+=item *
+
+Documentation typo fixed
+
+=back
+
+=item *
+
+C<utf8> upgraded to version 1.06
+
+=over
+
+=item *
+
+Documentation typos fixed
+
+=back
+
+=item *
+
+C<vmsish> upgraded to version 1.02
+
+=over
+
+=item *
+
+Documentation typos fixed
+
+=back
+
+=item *
+
+C<warnings> upgraded to version 1.05
+
+=over
+
+=item *
+
+Gentler messing with C<Carp::> internals
+
+=item *
+
+Internal cleanup
+
+=item *
+
+Documentation update
+
+=back
+
+=item *
+
+C<Win32> upgraded to version 0.2601
+
+=for cynics And how many perl 5.8.x versions can I release ahead of Vista?
+
+=over
+
+=item *
+
+Provides Windows Vista support to C<Win32::GetOSName>
+
+=item *
+
+Documentation enhancements
+
+=back
+
+=item *
+
+C<XS::Typemap> upgraded to version 0.02
+
+=over
+
+=item *
+
+Internal cleanup
+
+=back
+
+=back
+
+=head1 Utility Changes
+
+=head2 C<h2xs> enhancements
+
+C<h2xs> implements new option C<--use-xsloader> to force use of
+C<XSLoader> even in backwards compatible modules.
+
+The handling of authors' names that had apostrophes has been fixed.
+
+Any enums with negative values are now skipped.
+
+=head2 C<perlivp> enhancements
+
+C<perlivp> implements new option C<-a> and will not check for F<*.ph>
+files by default any more. Use the C<-a> option to run I<all> tests.
+
+=head1 New Documentation
+
+The L<perlglossary> manpage is a glossary of terms used in the Perl
+documentation, technical and otherwise, kindly provided by O'Reilly Media,
+inc.
+
+=head1 Performance Enhancements
+
+=over 4
+
+=item *
+
+Weak reference creation is now I<O(1)> rather than I<O(n)>, courtesy of
+Nicholas Clark. Weak reference deletion remains I<O(n)>, but if deletion only
+happens at program exit, it may be skipped completely.
+
+=item *
+
+Salvador Fandiņo provided improvements to reduce the memory usage of C<sort>
+and to speed up some cases.
+
+=item *
+
+Jarkko Hietaniemi and Andy Lester worked to mark as much data as possible in
+the C source files as C<static>, to increase the proportion of the executable
+file that the operating system can share between process, and thus reduce
+real memory usage on multi-user systems.
+
+=back
+
+=head1 Installation and Configuration Improvements
+
+Parallel makes should work properly now, although there may still be problems
+if C<make test> is instructed to run in parallel.
+
+Building with Borland's compilers on Win32 should work more smoothly. In
+particular Steve Hay has worked to side step many warnings emitted by their
+compilers and at least one C compiler internal error.
+
+C<Configure> will now detect C<clearenv> and C<unsetenv>, thanks to a patch
+from Alan Burlison. It will also probe for C<futimes> and whether C<sprintf>
+correctly returns the length of the formatted string, which will both be used
+in perl 5.8.9.
+
+There are improved hints for next-3.0, vmesa, IX, Darwin, Solaris, Linux,
+DEC/OSF, HP-UX and MPE/iX
+
+Perl extensions on Windows now can be statically built into the Perl DLL,
+thanks to a work by Vadim Konovalov. (This improvement was actually in 5.8.7,
+but was accidentally omitted from L<perl587delta>).
+
+=head1 Selected Bug Fixes
+
+=head2 no warnings 'category' works correctly with -w
+
+Previously when running with warnings enabled globally via C<-w>, selective
+disabling of specific warning categories would actually turn off all warnings.
+This is now fixed; now C<no warnings 'io';> will only turn off warnings in the
+C<io> class. Previously it would erroneously turn off all warnings.
+
+This bug fix may cause some programs to start correctly issuing warnings.
+
+=head2 Remove over-optimisation
+
+Perl 5.8.4 introduced a change so that assignments of C<undef> to a
+scalar, or of an empty list to an array or a hash, were optimised away. As
+this could cause problems when C<goto> jumps were involved, this change
+has been backed out.
+
+=head2 sprintf() fixes
+
+Using the sprintf() function with some formats could lead to a buffer
+overflow in some specific cases. This has been fixed, along with several
+other bugs, notably in bounds checking.
+
+In related fixes, it was possible for badly written code that did not follow
+the documentation of C<Sys::Syslog> to have formatting vulnerabilities.
+C<Sys::Syslog> has been changed to protect people from poor quality third
+party code.
+
+=head2 Debugger and Unicode slowdown
+
+It had been reported that running under perl's debugger when processing
+Unicode data could cause unexpectedly large slowdowns. The most likely cause
+of this was identified and fixed by Nicholas Clark.
+
+=head2 Smaller fixes
+
+=over 4
+
+=item *
+
+C<FindBin> now works better with directories where access rights are more
+restrictive than usual.
+
+=item *
+
+Several memory leaks in ithreads were closed. An improved implementation of
+C<threads::shared> is available on CPAN - this will be merged into 5.8.9 if
+it proves stable.
+
+=item *
+
+Trailing spaces are now trimmed from C<$!> and C<$^E>.
+
+=item *
+
+Operations that require perl to read a process' list of groups, such as reads
+of C<$(> and C<$)>, now dynamically allocate memory rather than using a
+fixed sized array. The fixed size array could cause C stack exhaustion on
+systems configured to use large numbers of groups.
+
+=item *
+
+C<PerlIO::scalar> now works better with non-default C<$/> settings.
+
+=item *
+
+You can now use the C<x> operator to repeat a C<qw//> list. This used
+to raise a syntax error.
+
+=item *
+
+The debugger now traces correctly execution in eval("")uated code that
+contains #line directives.
+
+=item *
+
+The value of the C<open> pragma is no longer ignored for three-argument
+opens.
+
+=item *
+
+The optimisation of C<for (reverse @a)> introduced in perl 5.8.6 could
+misbehave when the array had undefined elements and was used in LVALUE
+context. Dave Mitchell provided a fix.
+
+=item *
+
+Some case insensitive matches between UTF-8 encoded data and 8 bit regexps,
+and vice versa, could give malformed character warnings. These have been
+fixed by Dave Mitchell and Yves Orton.
+
+=item *
+
+C<lcfirst> and C<ucfirst> could corrupt the string for certain cases where
+the length UTF-8 encoding of the string in lower case, upper case or title
+case differed. This was fixed by Nicholas Clark.
+
+=item *
+
+Perl will now use the C library calls C<unsetenv> and C<clearenv> if present
+to delete keys from C<%ENV> and delete C<%ENV> entirely, thanks to a patch
+from Alan Burlison.
+
+=back
+
+=head1 New or Changed Diagnostics
+
+=head2 Attempt to set length of freed array
+
+This is a new warning, produced in situations such as this:
+
+ $r = do {my @a; \$#a};
+ $$r = 503;
+
+=head2 Non-string passed as bitmask
+
+This is a new warning, produced when number has been passed as a argument to
+select(), instead of a bitmask.
+
+ # Wrong, will now warn
+ $rin = fileno(STDIN);
+ ($nfound,$timeleft) = select($rout=$rin, undef, undef, $timeout);
+
+ # Should be
+ $rin = '';
+ vec($rin,fileno(STDIN),1) = 1;
+ ($nfound,$timeleft) = select($rout=$rin, undef, undef, $timeout);
+
+=head2 Search pattern not terminated or ternary operator parsed as search pattern
+
+This syntax error indicates that the lexer couldn't find the final
+delimiter of a C<?PATTERN?> construct. Mentioning the ternary operator in
+this error message makes it easier to diagnose syntax errors.
+
+=head1 Changed Internals
+
+There has been a fair amount of refactoring of the C<C> source code, partly to
+make it tidier and more maintainable. The resulting object code and the
+C<perl> binary may well be smaller than 5.8.7, in particular due to a change
+contributed by Dave Mitchell which reworked the warnings code to be
+significantly smaller. Apart from being smaller and possibly faster, there
+should be no user-detectable changes.
+
+Andy Lester supplied many improvements to determine which function
+parameters and local variables could actually be declared C<const> to the C
+compiler. Steve Peters provided new C<*_set> macros and reworked the core to
+use these rather than assigning to macros in LVALUE context.
+
+Dave Mitchell improved the lexer debugging output under C<-DT>
+
+Nicholas Clark changed the string buffer allocation so that it is now rounded
+up to the next multiple of 4 (or 8 on platforms with 64 bit pointers). This
+should reduce the number of calls to C<realloc> without actually using any
+extra memory.
+
+The C<HV>'s array of C<HE*>s is now allocated at the correct (minimal) size,
+thanks to another change by Nicholas Clark. Compile with
+C<-DPERL_USE_LARGE_HV_ALLOC> to use the old, sloppier, default.
+
+For XS or embedding debugging purposes, if perl is compiled with
+C<-DDEBUG_LEAKING_SCALARS_FORK_DUMP> in addition to
+C<-DDEBUG_LEAKING_SCALARS> then a child process is C<fork>ed just before
+global destruction, which is used to display the values of any scalars
+found to have leaked at the end of global destruction. Without this, the
+scalars have already been freed sufficiently at the point of detection that
+it is impossible to produce any meaningful dump of their contents. This
+feature was implemented by the indefatigable Nicholas Clark, based on an idea
+by Mike Giroux.
+
+=head1 Platform Specific Problems
+
+The optimiser on HP-UX 11.23 (Itanium 2) is currently partly disabled (scaled
+down to +O1) when using HP C-ANSI-C; the cause of problems at higher
+optimisation levels is still unclear.
+
+There are a handful of remaining test failures on VMS, mostly due to
+test fixes and minor module tweaks with too many dependencies to
+integrate into this release from the development stream, where they have
+all been corrected. The following is a list of expected failures with
+the patch number of the fix where that is known:
+
+ ext/Devel/PPPort/t/ppphtest.t #26913
+ ext/List/Util/t/p_tainted.t #26912
+ lib/ExtUtils/t/PL_FILES.t #26813
+ lib/ExtUtils/t/basic.t #26813
+ t/io/fs.t
+ t/op/cmp.t
+
+=head1 Reporting Bugs
+
+If you find what you think is a bug, you might check the articles
+recently posted to the comp.lang.perl.misc newsgroup and the perl
+bug database at http://bugs.perl.org. There may also be
+information at http://www.perl.org, the Perl Home Page.
+
+If you believe you have an unreported bug, please run the B<perlbug>
+program included with your release. Be sure to trim your bug down
+to a tiny but sufficient test case. Your bug report, along with the
+output of C<perl -V>, will be sent off to perlbug@perl.org to be
+analysed by the Perl porting team. You can browse and search
+the Perl 5 bugs at http://bugs.perl.org/
+
+=head1 SEE ALSO
+
+The F<Changes> file for exhaustive details on what changed.
+
+The F<INSTALL> file for how to build Perl.
+
+The F<README> file for general stuff.
+
+The F<Artistic> and F<Copying> files for copyright information.
+
+=cut