Spaces:
Running
Running
=encoding utf8 | |
=head1 NAME | |
perl5202delta - what is new for perl v5.20.2 | |
=head1 DESCRIPTION | |
This document describes differences between the 5.20.1 release and the 5.20.2 | |
release. | |
If you are upgrading from an earlier release such as 5.20.0, first read | |
L<perl5201delta>, which describes differences between 5.20.0 and 5.20.1. | |
=head1 Incompatible Changes | |
There are no changes intentionally incompatible with 5.20.1. If any exist, | |
they are bugs, and we request that you submit a report. See L</Reporting Bugs> | |
below. | |
=head1 Modules and Pragmata | |
=head2 Updated Modules and Pragmata | |
=over 4 | |
=item * | |
L<attributes> has been upgraded from version 0.22 to 0.23. | |
The usage of C<memEQs> in the XS has been corrected. | |
L<[GH #14072]|https://github.com/Perl/perl5/issues/14072> | |
=item * | |
L<Data::Dumper> has been upgraded from version 2.151 to 2.151_01. | |
Fixes CVE-2014-4330 by adding a configuration variable/option to limit | |
recursion when dumping deep data structures. | |
=item * | |
L<Errno> has been upgraded from version 1.20_03 to 1.20_05. | |
Warnings when building the XS on Windows with the Visual C++ compiler are now | |
avoided. | |
=item * | |
L<feature> has been upgraded from version 1.36 to 1.36_01. | |
The C<postderef> feature has now been documented. This feature was actually | |
added in Perl 5.20.0 but was accidentally omitted from the feature | |
documentation until now. | |
=item * | |
L<IO::Socket> has been upgraded from version 1.37 to 1.38. | |
Document the limitations of the connected() method. | |
L<[GH #14199]|https://github.com/Perl/perl5/issues/14199> | |
=item * | |
L<Module::CoreList> has been upgraded from version 5.020001 to 5.20150214. | |
The list of Perl versions covered has been updated. | |
=item * | |
PathTools has been upgraded from version 3.48 to 3.48_01. | |
A warning from the B<gcc> compiler is now avoided when building the XS. | |
=item * | |
L<PerlIO::scalar> has been upgraded from version 0.18 to 0.18_01. | |
Reading from a position well past the end of the scalar now correctly returns | |
end of file. | |
L<[GH #14342]|https://github.com/Perl/perl5/issues/14342> | |
Seeking to a negative position still fails, but no longer leaves the file | |
position set to a negation location. | |
C<eof()> on a C<PerlIO::scalar> handle now properly returns true when the file | |
position is past the 2GB mark on 32-bit systems. | |
=item * | |
L<Storable> has been upgraded from version 2.49 to 2.49_01. | |
Minor grammatical change to the documentation only. | |
=item * | |
L<VMS::DCLsym> has been upgraded from version 1.05 to 1.05_01. | |
Minor formatting change to the documentation only. | |
=item * | |
L<VMS::Stdio> has been upgraded from version 2.4 to 2.41. | |
Minor formatting change to the documentation only. | |
=back | |
=head1 Documentation | |
=head2 New Documentation | |
=head3 L<perlunicook> | |
This document, by Tom Christiansen, provides examples of handling Unicode in | |
Perl. | |
=head2 Changes to Existing Documentation | |
=head3 L<perlexperiment> | |
=over 4 | |
=item * | |
Added reference to subroutine signatures. This feature was actually added in | |
Perl 5.20.0 but was accidentally omitted from the experimental feature | |
documentation until now. | |
=back | |
=head3 L<perlpolicy> | |
=over 4 | |
=item * | |
The process whereby features may graduate from experimental status has now been | |
formally documented. | |
=back | |
=head3 L<perlsyn> | |
=over 4 | |
=item * | |
An ambiguity in the documentation of the ellipsis statement has been corrected. | |
L<[GH #14054]|https://github.com/Perl/perl5/issues/14054> | |
=back | |
=head1 Diagnostics | |
The following additions or changes have been made to diagnostic output, | |
including warnings and fatal error messages. For the complete list of | |
diagnostic messages, see L<perldiag>. | |
=head2 Changes to Existing Diagnostics | |
=over 4 | |
=item * | |
L<Bad symbol for scalar|perldiag/"Bad symbol for scalar"> is now documented. | |
This error is not new, but was not previously documented here. | |
=item * | |
L<Missing right brace on \N{}|perldiag/"Missing right brace on \N{}"> is now | |
documented. This error is not new, but was not previously documented here. | |
=back | |
=head1 Testing | |
=over 4 | |
=item * | |
The test script F<re/rt122747.t> has been added to verify that | |
L<[GH #14081]|https://github.com/Perl/perl5/issues/14081> remains | |
fixed. | |
=back | |
=head1 Platform Support | |
=head2 Regained Platforms | |
IRIX and Tru64 platforms are working again. (Some C<make test> failures | |
remain.) | |
=head1 Selected Bug Fixes | |
=over 4 | |
=item * | |
AIX now sets the length in C<< getsockopt >> correctly. | |
L<[GH #13484]|https://github.com/Perl/perl5/issues/13484>, | |
L<[cpan #91183]|https://rt.cpan.org/Ticket/Display.html?id=91183>, | |
L<[cpan #85570]|https://rt.cpan.org/Ticket/Display.html?id=85570> | |
=item * | |
In Perl 5.20.0, C<$^N> accidentally had the internal UTF8 flag turned off if | |
accessed from a code block within a regular expression, effectively | |
UTF8-encoding the value. This has been fixed. | |
L<[GH #14211]|https://github.com/Perl/perl5/issues/14211> | |
=item * | |
Various cases where the name of a sub is used (autoload, overloading, error | |
messages) used to crash for lexical subs, but have been fixed. | |
=item * | |
An assertion failure when parsing C<sort> with debugging enabled has been | |
fixed. | |
L<[GH #14087]|https://github.com/Perl/perl5/issues/14087> | |
=item * | |
Loading UTF8 tables during a regular expression match could cause assertion | |
failures under debugging builds if the previous match used the very same | |
regular expression. | |
L<[GH #14081]|https://github.com/Perl/perl5/issues/14081> | |
=item * | |
Due to a mistake in the string-copying logic, copying the value of a state | |
variable could instead steal the value and undefine the variable. This bug, | |
introduced in Perl 5.20, would happen mostly for long strings (1250 chars or | |
more), but could happen for any strings under builds with copy-on-write | |
disabled. | |
L<[GH #14175]|https://github.com/Perl/perl5/issues/14175> | |
=item * | |
Fixed a bug that could cause perl to execute an infinite loop during | |
compilation. | |
L<[GH #14165]|https://github.com/Perl/perl5/issues/14165> | |
=item * | |
On Win32, restoring in a child pseudo-process a variable that was C<local()>ed | |
in a parent pseudo-process before the C<fork> happened caused memory corruption | |
and a crash in the child pseudo-process (and therefore OS process). | |
L<[GH #8641]|https://github.com/Perl/perl5/issues/8641> | |
=item * | |
Tainted constants evaluated at compile time no longer cause unrelated | |
statements to become tainted. | |
L<[GH #14059]|https://github.com/Perl/perl5/issues/14059> | |
=item * | |
Calling C<write> on a format with a C<^**> field could produce a panic in | |
sv_chop() if there were insufficient arguments or if the variable used to fill | |
the field was empty. | |
L<[GH #14255]|https://github.com/Perl/perl5/issues/14255> | |
=item * | |
In Perl 5.20.0, C<sort CORE::fake> where 'fake' is anything other than a | |
keyword started chopping of the last 6 characters and treating the result as a | |
sort sub name. The previous behaviour of treating "CORE::fake" as a sort sub | |
name has been restored. | |
L<[GH #14323]|https://github.com/Perl/perl5/issues/14323> | |
=item * | |
A bug in regular expression patterns that could lead to segfaults and other | |
crashes has been fixed. This occurred only in patterns compiled with C<"/i">, | |
while taking into account the current POSIX locale (this usually means they | |
have to be compiled within the scope of C<S<"use locale">>), and there must be | |
a string of at least 128 consecutive bytes to match. | |
L<[GH #14389]|https://github.com/Perl/perl5/issues/14389> | |
=item * | |
C<qr/@array(?{block})/> no longer dies with "Bizarre copy of ARRAY". | |
L<[GH #14292]|https://github.com/Perl/perl5/issues/14292> | |
=item * | |
C<gmtime> no longer crashes with not-a-number values. | |
L<[GH #14365]|https://github.com/Perl/perl5/issues/14365> | |
=item * | |
Certain syntax errors in substitutions, such as C<< s/${<>{})// >>, would | |
crash, and had done so since Perl 5.10. (In some cases the crash did not start | |
happening until Perl 5.16.) The crash has, of course, been fixed. | |
L<[GH #14391]|https://github.com/Perl/perl5/issues/14391> | |
=item * | |
A memory leak in some regular expressions, introduced in Perl 5.20.1, has been | |
fixed. | |
L<[GH #14236]|https://github.com/Perl/perl5/issues/14236> | |
=item * | |
C<< formline("@...", "a"); >> would crash. The C<FF_CHECKNL> case in | |
pp_formline() didn't set the pointer used to mark the chop position, which led | |
to the C<FF_MORE> case crashing with a segmentation fault. This has been | |
fixed. | |
L<[GH #14388]|https://github.com/Perl/perl5/issues/14388> | |
L<[GH #14425]|https://github.com/Perl/perl5/issues/14425> | |
=item * | |
A possible buffer overrun and crash when parsing a literal pattern during | |
regular expression compilation has been fixed. | |
L<[GH #14416]|https://github.com/Perl/perl5/issues/14416> | |
=back | |
=head1 Known Problems | |
=over 4 | |
=item * | |
It is a known bug that lexical subroutines cannot be used as the C<SUBNAME> | |
argument to C<sort>. This will be fixed in a future version of Perl. | |
=back | |
=head1 Errata From Previous Releases | |
=over 4 | |
=item * | |
A regression has been fixed that was introduced in Perl 5.20.0 (fixed in Perl | |
5.20.1 as well as here) in which a UTF-8 encoded regular expression pattern | |
that contains a single ASCII lowercase letter does not match its uppercase | |
counterpart. | |
L<[GH #14051]|https://github.com/Perl/perl5/issues/14051> | |
=back | |
=head1 Acknowledgements | |
Perl 5.20.2 represents approximately 5 months of development since Perl 5.20.1 | |
and contains approximately 6,300 lines of changes across 170 files from 34 | |
authors. | |
Excluding auto-generated files, documentation and release tools, there were | |
approximately 1,900 lines of changes to 80 .pm, .t, .c and .h files. | |
Perl continues to flourish into its third decade thanks to a vibrant community | |
of users and developers. The following people are known to have contributed | |
the improvements that became Perl 5.20.2: | |
Aaron Crane, Abigail, Andreas Voegele, Andy Dougherty, Anthony Heading, | |
Aristotle Pagaltzis, Chris 'BinGOs' Williams, Craig A. Berry, Daniel Dragan, | |
Doug Bell, Ed J, Father Chrysostomos, Glenn D. Golden, H.Merijn Brand, Hugo van | |
der Sanden, James E Keenan, Jarkko Hietaniemi, Jim Cromie, Karen Etheridge, | |
Karl Williamson, kmx, Matthew Horsfall, Max Maischein, Peter Martini, Rafael | |
Garcia-Suarez, Ricardo Signes, Shlomi Fish, Slaven Rezic, Steffen Müller, | |
Steve Hay, Tadeusz Sośnierz, Tony Cook, Yves Orton, Ævar Arnfjörð | |
Bjarmason. | |
The list above is almost certainly incomplete as it is automatically generated | |
from version control history. In particular, it does not include the names of | |
the (very much appreciated) contributors who reported issues to the Perl bug | |
tracker. | |
Many of the changes included in this version originated in the CPAN modules | |
included in Perl's core. We're grateful to the entire CPAN community for | |
helping Perl to flourish. | |
For a more complete list of all of Perl's historical contributors, please see | |
the F<AUTHORS> file in the Perl source distribution. | |
=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 | |
https://rt.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 L<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 [email protected] to be analysed by the Perl porting team. | |
If the bug you are reporting has security implications, which make it | |
inappropriate to send to a publicly archived mailing list, then please send it | |
to [email protected]. This points to a closed subscription | |
unarchived mailing list, which includes all the core committers, who will be | |
able to help assess the impact of issues, figure out a resolution, and help | |
co-ordinate the release of patches to mitigate or fix the problem across all | |
platforms on which Perl is supported. Please only use this address for | |
security issues in the Perl core, not for modules independently distributed on | |
CPAN. | |
=head1 SEE ALSO | |
The F<Changes> file for an explanation of how to view 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 | |