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 | |