=item *
-New Thread Implementation
+New IO Implementation
=item *
-Many New Modules
+New Thread Implementation
=item *
=item *
+Many New Modules
+
+=item *
+
More Extensive Regression Testing
=back
=item *
+The PerlIO C<:raw> discipline (as described in Camel III) is deprecated
+because its definition (as either the discipline version of C<binmode(FH)>
+or as the opposite of C<:crlf>) didn't really work: most importantly
+because turning off "clrfness" is not enough to make a stream truly
+binary. Instead of C<:raw> use one of the following: C<open(..., ':bytes')>,
+C<binmode(FH)>, C<sysopen()> + C<sysread()>.
+
+=item *
+
The current user-visible implementation of pseudo-hashes (the weird
use of the first array element) is deprecated starting from Perl 5.8.0
and will be removed in Perl 5.10.0, and the feature will be
=item *
+If your platform supports fork(), you can use the list form of C<open>
+for pipes:
+
+ open KID_PS, "-|", "ps", "aux" or die $!;
+
+forks the ps(1) command (without spawning a shell, as there are more
+than three arguments to open()), and reads its standard output via the
+C<KID_PS> filehandle.
+
+=item *
+
File handles can be marked as accepting Perl's internal encoding of Unicode
(UTF-8 or UTF-EBCDIC depending on platform) by a pseudo layer ":utf8" :
=item *
-C<Attribute::Handlers> allows a class to define attribute handlers.
+C<Attribute::Handlers>, originally by Damian Conway and now maintained
+by Arthur Bergman, allows a class to define attribute handlers.
package MyPack;
use Attribute::Handlers;
=item *
+ExtUtils::MakeMaker has been significantly cleaned up and fixed.
+The enhanced version has also been backported to earlier releases
+of Perl and submitted to CPAN so that the earlier releases can
+enjoy the fixes.
+
+=item *
+
+The arguments of WriteMakefile() in Makefile.PL are now checked
+for sanity much more carefully than before. This may cause new
+warnings when modules are being insalled. See L<ExtUtils::MakeMaker>
+for more details.
+
+=item *
+
ExtUtils::MakeMaker now uses File::Spec internally, which hopefully
leads to better portability.
=item *
-Several debugger fixes: exit code now reflects the script exit code,
-condition C<"0"> now treated correctly, the C<d> command now checks
-line number, C<$.> no longer gets corrupted, and all debugger output
-now goes correctly to the socket if RemotePort is set. [561]
-
-=item *
-
Perl 5.6.0 could emit spurious warnings about redefinition of
dl_error() when statically building extensions into perl.
This has been corrected. [561]
File access tests now use current process privileges rather than the
user's default privileges, which could sometimes result in a mismatch
-between reported access and actual access.
+between reported access and actual access. This improvement is only
+available on VMS v6.0 and later.
There is a new C<kill> implementation based on C<sys$sigprc> that allows
older VMS systems (pre-7.0) to use C<kill> to send signals rather than
=item *
+Several debugger fixes: exit code now reflects the script exit code,
+condition C<"0"> now treated correctly, the C<d> command now checks
+line number, C<$.> no longer gets corrupted, and all debugger output
+now goes correctly to the socket if RemotePort is set. [561]
+
+=item *
+
The debugger (perl5db.pl) has been modified to present a more
consistent commands interface, via (CommandSet=580). perl5db.t was
also added to test the changes, and as a placeholder for further tests.
=head1 Security Vulnerability Closed [561]
(This change was already made in 5.7.0 but bears repeating here.)
+(5.7.0 came out before 5.6.1: the development branch 5.7 released
+sooner than the maintenance branch 5.6)
A potential security vulnerability in the optional suidperl component
of Perl was identified in August 2000. suidperl is neither built nor
This is a known bug in FreeBSD's readdir_r() (see L<perlfreebsd>
(README.freebsd)), which hopefully will be fixed in FreeBSD 4.6.
-=head2 FreeBSD Failing locale Test 117 For ISO8859-15 Locales
+=head2 FreeBSD Failing locale Test 117 For ISO 8859-15 Locales
-The ISO8859-15 locales may fail the locale test 117 in FreeBSD.
+The ISO 8859-15 locales may fail the locale test 117 in FreeBSD.
This is caused by the characters \xFF (y with diaeresis) and \xBE
(Y with diaeresis) not behaving correctly when being matched
-case-insensitively.
+case-insensitively. Apparently this problem has been fixed in
+the latest FreeBSD releases.
+( http://www.freebsd.org/cgi/query-pr.cgi?pr=34308 )
=head2 IRIX fails ext/List/Util/t/shuffle.t
(in this particular test, the localtime() call is found to be
threadunsafe.)
+=head2 OS/2 Test Failures
+
+The following tests are known to fail on OS/2 (for clarity
+only the failures are shown, not the full error messages):
+
+t/io/utf8............................FAILED at test 19
+t/op/grent...........................FAILED at test 2
+t/op/pwent...........................FAILED at test 1
+t/lib/os2_base.......................FAILED at test 13
+t/lib/os2_process....................FAILED at test 10
+t/lib/os2_process_kid................FAILED at test 10
+t/lib/rx_cmprt.......................FAILED at test 16
+ext/DB_File/t/db-btree...............FAILED at test 0
+ext/DB_File/t/db-hash................FAILED at test 0
+ext/DB_File/t/db-recno...............FAILED at test 0
+lib/ExtUtils/t/basic.................FAILED at test 14
+lib/ExtUtils/t/Constant..............FAILED at test 4
+lib/Memoize/t/errors.................FAILED at test 4
+
=head2 op/sprintf tests 91, 129, and 130
The op/sprintf tests 91, 129, and 130 are known to fail on some platforms.
experience failures (the test core dumping) in lib/locale.t.
The suggested cure is to upgrade your Solaris.
+=head2 Solaris x86 Fails Tests With -Duse64bitint
+
+The following tests are known to fail in Solaris x86 with Perl
+configured to use 64 bit integers:
+
+ ext/Data/Dumper/t/dumper.............FAILED at test 268
+ ext/Devel/Peek/Peek..................FAILED at test 7
+
=head2 SUPER-UX (NEC SX)
The following tests are known to fail on SUPER-UX:
signedness handling of the C compiler, as do the 64bitint, arith, and pow
failures. Most of the rest point at problems with SysV IPC.
+=head2 PDL failing some tests
+
+Use PDL 2.3.4 or later.
+
=head2 Term::ReadKey not working on Win32
Use Term::ReadKey 2.20 or later.
./perl -Ilib ext/Time/HiRes/HiRes.t
-=head2 UNICOS
+=head2 Unicode in package/class and subroutine names does not work
- ../lib/Math/Trig.t 26 1 3.85% 25
- ../lib/warnings.t 470 1 0.21% 429
+One can have Unicode in identifier names, but not in package/class or
+subroutine names. While some limited functionality towards this does
+exist as of Perl 5.8.0, that is more accidental than designed; use of
+Unicode for the said purposes is unsupported.
-The Trig.t failure is caused by the slighly differing (from IEEE)
-floating point implementation of UNICOS. The warnings.t failure is
-also related: the test assumes a certain floating point output format;
-this assumption fails in UNICOS.
+One reason of this unfinishedness is its (currently) inherent
+unportability: since both package names and subroutine names may
+need to be mapped to file and directory names, the Unicode capability
+of the filesystem becomes important-- and there unfortunately aren't
+portable answers.
=head2 UNICOS/mk
Self-tying of scalars and IO thingies works.
+=head2 Tied/Magical Array/Hash Elements Do Not Autovivify
+
+For normal arrays C<$foo = \$bar[1]> will assign C<undef> to
+C<$bar[1]> (assuming that it didn't exist before), but for
+tied/magical arrays and hashes such autovivification does not happen
+because there is currently no way to catch the reference creation.
+The same problem affects slicing over non-existent indices/keys of
+a tied/magical array/hash.
+
=head2 Building Extensions Can Fail Because Of Largefiles
Some extensions like mod_perl are known to have issues with