Initial Commit
This commit is contained in:
379
database/perl/lib/pods/perl587delta.pod
Normal file
379
database/perl/lib/pods/perl587delta.pod
Normal file
@@ -0,0 +1,379 @@
|
||||
=head1 NAME
|
||||
|
||||
perl587delta - what is new for perl v5.8.7
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
This document describes differences between the 5.8.6 release and
|
||||
the 5.8.7 release.
|
||||
|
||||
=head1 Incompatible Changes
|
||||
|
||||
There are no changes incompatible with 5.8.6.
|
||||
|
||||
=head1 Core Enhancements
|
||||
|
||||
=head2 Unicode Character Database 4.1.0
|
||||
|
||||
The copy of the Unicode Character Database included in Perl 5.8 has
|
||||
been updated to 4.1.0 from 4.0.1. See
|
||||
L<http://www.unicode.org/versions/Unicode4.1.0/#NotableChanges> for the
|
||||
notable changes.
|
||||
|
||||
=head2 suidperl less insecure
|
||||
|
||||
A pair of exploits in C<suidperl> involving debugging code have been closed.
|
||||
|
||||
For new projects the core perl team strongly recommends that you use
|
||||
dedicated, single purpose security tools such as C<sudo> in preference to
|
||||
C<suidperl>.
|
||||
|
||||
=head2 Optional site customization script
|
||||
|
||||
The perl interpreter can be built to allow the use of a site customization
|
||||
script. By default this is not enabled, to be consistent with previous perl
|
||||
releases. To use this, add C<-Dusesitecustomize> to the command line flags
|
||||
when running the C<Configure> script. See also L<perlrun/-f>.
|
||||
|
||||
=head2 C<Config.pm> is now much smaller.
|
||||
|
||||
C<Config.pm> is now about 3K rather than 32K, with the infrequently used
|
||||
code and C<%Config> values loaded on demand. This is transparent to the
|
||||
programmer, but means that most code will save parsing and loading 29K of
|
||||
script (for example, code that uses C<File::Find>).
|
||||
|
||||
=head1 Modules and Pragmata
|
||||
|
||||
=over 4
|
||||
|
||||
=item *
|
||||
|
||||
B upgraded to version 1.09
|
||||
|
||||
=item *
|
||||
|
||||
base upgraded to version 2.07
|
||||
|
||||
=item *
|
||||
|
||||
bignum upgraded to version 0.17
|
||||
|
||||
=item *
|
||||
|
||||
bytes upgraded to version 1.02
|
||||
|
||||
=item *
|
||||
|
||||
Carp upgraded to version 1.04
|
||||
|
||||
=item *
|
||||
|
||||
CGI upgraded to version 3.10
|
||||
|
||||
=item *
|
||||
|
||||
Class::ISA upgraded to version 0.33
|
||||
|
||||
=item *
|
||||
|
||||
Data::Dumper upgraded to version 2.121_02
|
||||
|
||||
=item *
|
||||
|
||||
DB_File upgraded to version 1.811
|
||||
|
||||
=item *
|
||||
|
||||
Devel::PPPort upgraded to version 3.06
|
||||
|
||||
=item *
|
||||
|
||||
Digest upgraded to version 1.10
|
||||
|
||||
=item *
|
||||
|
||||
Encode upgraded to version 2.10
|
||||
|
||||
=item *
|
||||
|
||||
FileCache upgraded to version 1.05
|
||||
|
||||
=item *
|
||||
|
||||
File::Path upgraded to version 1.07
|
||||
|
||||
=item *
|
||||
|
||||
File::Temp upgraded to version 0.16
|
||||
|
||||
=item *
|
||||
|
||||
IO::File upgraded to version 1.11
|
||||
|
||||
=item *
|
||||
|
||||
IO::Socket upgraded to version 1.28
|
||||
|
||||
=item *
|
||||
|
||||
Math::BigInt upgraded to version 1.77
|
||||
|
||||
=item *
|
||||
|
||||
Math::BigRat upgraded to version 0.15
|
||||
|
||||
=item *
|
||||
|
||||
overload upgraded to version 1.03
|
||||
|
||||
=item *
|
||||
|
||||
PathTools upgraded to version 3.05
|
||||
|
||||
=item *
|
||||
|
||||
Pod::HTML upgraded to version 1.0503
|
||||
|
||||
=item *
|
||||
|
||||
Pod::Perldoc upgraded to version 3.14
|
||||
|
||||
=item *
|
||||
|
||||
Pod::LaTeX upgraded to version 0.58
|
||||
|
||||
=item *
|
||||
|
||||
Pod::Parser upgraded to version 1.30
|
||||
|
||||
=item *
|
||||
|
||||
Symbol upgraded to version 1.06
|
||||
|
||||
=item *
|
||||
|
||||
Term::ANSIColor upgraded to version 1.09
|
||||
|
||||
=item *
|
||||
|
||||
Test::Harness upgraded to version 2.48
|
||||
|
||||
=item *
|
||||
|
||||
Test::Simple upgraded to version 0.54
|
||||
|
||||
=item *
|
||||
|
||||
Text::Wrap upgraded to version 2001.09293, to fix a bug when wrap() was
|
||||
called with a non-space separator.
|
||||
|
||||
=item *
|
||||
|
||||
threads::shared upgraded to version 0.93
|
||||
|
||||
=item *
|
||||
|
||||
Time::HiRes upgraded to version 1.66
|
||||
|
||||
=item *
|
||||
|
||||
Time::Local upgraded to version 1.11
|
||||
|
||||
=item *
|
||||
|
||||
Unicode::Normalize upgraded to version 0.32
|
||||
|
||||
=item *
|
||||
|
||||
utf8 upgraded to version 1.05
|
||||
|
||||
=item *
|
||||
|
||||
Win32 upgraded to version 0.24, which provides Win32::GetFileVersion
|
||||
|
||||
=back
|
||||
|
||||
=head1 Utility Changes
|
||||
|
||||
=head2 find2perl enhancements
|
||||
|
||||
C<find2perl> has new options C<-iname>, C<-path> and C<-ipath>.
|
||||
|
||||
=head1 Performance Enhancements
|
||||
|
||||
The internal pointer mapping hash used during ithreads cloning now uses an
|
||||
arena for memory allocation. In tests this reduced ithreads cloning time by
|
||||
about 10%.
|
||||
|
||||
=head1 Installation and Configuration Improvements
|
||||
|
||||
=over 4
|
||||
|
||||
=item *
|
||||
|
||||
The Win32 "dmake" makefile.mk has been updated to make it compatible
|
||||
with the latest versions of dmake.
|
||||
|
||||
=item *
|
||||
|
||||
C<PERL_MALLOC>, C<DEBUG_MSTATS>, C<PERL_HASH_SEED_EXPLICIT> and C<NO_HASH_SEED>
|
||||
should now work in Win32 makefiles.
|
||||
|
||||
=back
|
||||
|
||||
=head1 Selected Bug Fixes
|
||||
|
||||
=over 4
|
||||
|
||||
=item *
|
||||
|
||||
The socket() function on Win32 has been fixed so that it is able to use
|
||||
transport providers which specify a protocol of 0 (meaning any protocol
|
||||
is allowed) once more. (This was broken in 5.8.6, and typically caused
|
||||
the use of ICMP sockets to fail.)
|
||||
|
||||
=item *
|
||||
|
||||
Another obscure bug involving C<substr> and UTF-8 caused by bad internal
|
||||
offset caching has been identified and fixed.
|
||||
|
||||
=item *
|
||||
|
||||
A bug involving the loading of UTF-8 tables by the regexp engine has been
|
||||
fixed - code such as C<"\x{100}" =~ /[[:print:]]/> will no longer give
|
||||
corrupt results.
|
||||
|
||||
=item *
|
||||
|
||||
Case conversion operations such as C<uc> on a long Unicode string could
|
||||
exhaust memory. This has been fixed.
|
||||
|
||||
=item *
|
||||
|
||||
C<index>/C<rindex> were buggy for some combinations of Unicode and
|
||||
non-Unicode data. This has been fixed.
|
||||
|
||||
=item *
|
||||
|
||||
C<read> (and presumably C<sysread>) would expose the UTF-8 internals when
|
||||
reading from a byte oriented file handle into a UTF-8 scalar. This has
|
||||
been fixed.
|
||||
|
||||
=item *
|
||||
|
||||
Several C<pack>/C<unpack> bug fixes:
|
||||
|
||||
=over 4
|
||||
|
||||
=item *
|
||||
|
||||
Checksums with C<b> or C<B> formats were broken.
|
||||
|
||||
=item *
|
||||
|
||||
C<unpack> checksums could overflow with the C<C> format.
|
||||
|
||||
=item *
|
||||
|
||||
C<U0> and C<C0> are now scoped to C<()> C<pack> sub-templates.
|
||||
|
||||
=item *
|
||||
|
||||
Counted length prefixes now don't change C<C0>/C<U0> mode.
|
||||
|
||||
=item *
|
||||
|
||||
C<pack> C<Z0> used to destroy the preceding character.
|
||||
|
||||
=item *
|
||||
|
||||
C<P>/C<p> C<pack> formats used to only recognise literal C<undef>
|
||||
|
||||
=back
|
||||
|
||||
=item *
|
||||
|
||||
Using closures with ithreads could cause perl to crash. This was due to
|
||||
failure to correctly lock internal OP structures, and has been fixed.
|
||||
|
||||
=item *
|
||||
|
||||
The return value of C<close> now correctly reflects any file errors that
|
||||
occur while flushing the handle's data, instead of just giving failure if
|
||||
the actual underlying file close operation failed.
|
||||
|
||||
=item *
|
||||
|
||||
C<not() || 1> used to segfault. C<not()> now behaves like C<not(0)>, which was
|
||||
the pre 5.6.0 behaviour.
|
||||
|
||||
=item *
|
||||
|
||||
C<h2ph> has various enhancements to cope with constructs in header files that
|
||||
used to result in incorrect or invalid output.
|
||||
|
||||
=back
|
||||
|
||||
=head1 New or Changed Diagnostics
|
||||
|
||||
There is a new taint error, "%ENV is aliased to %s". This error is thrown
|
||||
when taint checks are enabled and when C<*ENV> has been aliased, so that
|
||||
C<%ENV> has no env-magic anymore and hence the environment cannot be verified
|
||||
as taint-free.
|
||||
|
||||
The internals of C<pack> and C<unpack> have been updated. All legitimate
|
||||
templates should work as before, but there may be some changes in the error
|
||||
reported for complex failure cases. Any behaviour changes for non-error cases
|
||||
are bugs, and should be reported.
|
||||
|
||||
=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.6, and hopefully faster in some
|
||||
cases, but apart from this there should be no user-detectable changes.
|
||||
|
||||
C<${^UTF8LOCALE}> has been added to give perl space access to C<PL_utf8locale>.
|
||||
|
||||
The size of the arenas used to allocate SV heads and most SV bodies can now
|
||||
be changed at compile time. The old size was 1008 bytes, the new default size
|
||||
is 4080 bytes.
|
||||
|
||||
=head1 Known Problems
|
||||
|
||||
Unicode strings returned from overloaded operators can be buggy. This is a
|
||||
long standing bug reported since 5.8.6 was released, but we do not yet have
|
||||
a suitable fix for it.
|
||||
|
||||
=head1 Platform Specific Problems
|
||||
|
||||
On UNICOS, lib/Math/BigInt/t/bigintc.t hangs burning CPU.
|
||||
ext/B/t/bytecode.t and ext/Socket/t/socketpair.t both fail tests.
|
||||
These are unlikely to be resolved, as our valiant UNICOS porter's last
|
||||
Cray is being decommissioned.
|
||||
|
||||
=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
|
||||
Reference in New Issue
Block a user