Spaces:
Running
Running
| =encoding utf8 | |
| =head1 NAME | |
| perl5201delta - what is new for perl v5.20.1 | |
| =head1 DESCRIPTION | |
| This document describes differences between the 5.20.0 release and the 5.20.1 | |
| release. | |
| If you are upgrading from an earlier release such as 5.18.0, first read | |
| L<perl5200delta>, which describes differences between 5.18.0 and 5.20.0. | |
| =head1 Incompatible Changes | |
| There are no changes intentionally incompatible with 5.20.0. If any exist, | |
| they are bugs, and we request that you submit a report. See L</Reporting Bugs> | |
| below. | |
| =head1 Performance Enhancements | |
| =over 4 | |
| =item * | |
| An optimization to avoid problems with COW and deliberately overallocated PVs | |
| has been disabled because it interfered with another, more important, | |
| optimization, causing a slowdown on some platforms. | |
| L<[GH #13878]|https://github.com/Perl/perl5/issues/13878> | |
| =item * | |
| Returning a string from a lexical variable could be slow in some cases. This | |
| has now been fixed. | |
| L<[GH #13880]|https://github.com/Perl/perl5/issues/13880> | |
| =back | |
| =head1 Modules and Pragmata | |
| =head2 Updated Modules and Pragmata | |
| =over 4 | |
| =item * | |
| L<Config::Perl::V> has been upgraded from version 0.20 to 0.22. | |
| The list of Perl versions covered has been updated and some flaws in the | |
| parsing have been fixed. | |
| =item * | |
| L<Exporter> has been upgraded from version 5.70 to 5.71. | |
| Illegal POD syntax in the documentation has been corrected. | |
| =item * | |
| L<ExtUtils::CBuilder> has been upgraded from version 0.280216 to 0.280217. | |
| Android builds now link to both B<-lperl> and C<$Config::Config{perllibs}>. | |
| =item * | |
| L<File::Copy> has been upgraded from version 2.29 to 2.30. | |
| The documentation now notes that C<copy> will not overwrite read-only files. | |
| =item * | |
| L<Module::CoreList> has been upgraded from version 3.11 to 5.020001. | |
| The list of Perl versions covered has been updated. | |
| =item * | |
| The PathTools module collection has been upgraded from version 3.47 to 3.48. | |
| Fallbacks are now in place when cross-compiling for Android and | |
| C<$Config::Config{sh}> is not yet defined. | |
| L<[GH #13872]|https://github.com/Perl/perl5/issues/13872> | |
| =item * | |
| L<PerlIO::via> has been upgraded from version 0.14 to 0.15. | |
| A minor portability improvement has been made to the XS implementation. | |
| =item * | |
| L<Unicode::UCD> has been upgraded from version 0.57 to 0.58. | |
| The documentation includes many clarifications and fixes. | |
| =item * | |
| L<utf8> has been upgraded from version 1.13 to 1.13_01. | |
| The documentation has some minor formatting improvements. | |
| =item * | |
| L<version> has been upgraded from version 0.9908 to 0.9909. | |
| External libraries and Perl may have different ideas of what the locale is. | |
| This is problematic when parsing version strings if the locale's numeric | |
| separator has been changed. Version parsing has been patched to ensure it | |
| handles the locales correctly. | |
| L<[GH #13863]|https://github.com/Perl/perl5/issues/13863> | |
| =back | |
| =head1 Documentation | |
| =head2 Changes to Existing Documentation | |
| =head3 L<perlapi> | |
| =over 4 | |
| =item * | |
| C<av_len> - Emphasize that this returns the highest index in the array, not the | |
| size of the array. | |
| L<[GH #13377]|https://github.com/Perl/perl5/issues/13377> | |
| =item * | |
| Note that C<SvSetSV> doesn't do set magic. | |
| =item * | |
| C<sv_usepvn_flags> - Fix documentation to mention the use of C<NewX> instead of | |
| C<malloc>. | |
| L<[GH #13835]|https://github.com/Perl/perl5/issues/13835> | |
| =item * | |
| Clarify where C<NUL> may be embedded or is required to terminate a string. | |
| =back | |
| =head3 L<perlfunc> | |
| =over 4 | |
| =item * | |
| Clarify the meaning of C<-B> and C<-T>. | |
| =item * | |
| C<-l> now notes that it will return false if symlinks aren't supported by the | |
| file system. | |
| L<[GH #13695]|https://github.com/Perl/perl5/issues/13695> | |
| =item * | |
| Note that C<each>, C<keys> and C<values> may produce different orderings for | |
| tied hashes compared to other perl hashes. | |
| L<[GH #13650]|https://github.com/Perl/perl5/issues/13650> | |
| =item * | |
| Note that C<exec LIST> and C<system LIST> may fall back to the shell on Win32. | |
| Only C<exec PROGRAM LIST> and C<system PROGRAM LIST> indirect object syntax | |
| will reliably avoid using the shell. This has also been noted in L<perlport>. | |
| L<[GH #13907]|https://github.com/Perl/perl5/issues/13907> | |
| =item * | |
| Clarify the meaning of C<our>. | |
| L<[GH #13938]|https://github.com/Perl/perl5/issues/13938> | |
| =back | |
| =head3 L<perlguts> | |
| =over 4 | |
| =item * | |
| Explain various ways of modifying an existing SV's buffer. | |
| L<[GH #12813]|https://github.com/Perl/perl5/issues/12813> | |
| =back | |
| =head3 L<perlpolicy> | |
| =over 4 | |
| =item * | |
| We now have a code of conduct for the I<< p5p >> mailing list, as documented in | |
| L<< perlpolicy/STANDARDS OF CONDUCT >>. | |
| =back | |
| =head3 L<perlre> | |
| =over 4 | |
| =item * | |
| The C</x> modifier has been clarified to note that comments cannot be continued | |
| onto the next line by escaping them. | |
| =back | |
| =head3 L<perlsyn> | |
| =over 4 | |
| =item * | |
| Mention the use of empty conditionals in C<for>/C<while> loops for infinite | |
| loops. | |
| =back | |
| =head3 L<perlxs> | |
| =over 4 | |
| =item * | |
| Added a discussion of locale issues in XS code. | |
| =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<Variable length lookbehind not implemented in regex mE<sol>%sE<sol>|perldiag/"Variable length lookbehind not implemented in regex m/%s/"> | |
| Information about Unicode behaviour has been added. | |
| =back | |
| =head1 Configuration and Compilation | |
| =over 4 | |
| =item * | |
| Building Perl no longer writes to the source tree when configured with | |
| F<Configure>'s B<-Dmksymlinks> option. | |
| L<[GH #13712]|https://github.com/Perl/perl5/issues/13712> | |
| =back | |
| =head1 Platform Support | |
| =head2 Platform-Specific Notes | |
| =over 4 | |
| =item Android | |
| Build support has been improved for cross-compiling in general and for Android | |
| in particular. | |
| =item OpenBSD | |
| Corrected architectures and version numbers used in configuration hints when | |
| building Perl. | |
| =item Solaris | |
| B<c99> options have been cleaned up, hints look for B<solstudio> as well as | |
| B<SUNWspro>, and support for native C<setenv> has been added. | |
| =item VMS | |
| An old bug in feature checking, mainly affecting pre-7.3 systems, has been | |
| fixed. | |
| =item Windows | |
| C<%I64d> is now being used instead of C<%lld> for MinGW. | |
| =back | |
| =head1 Internal Changes | |
| =over 4 | |
| =item * | |
| Added L<perlapi/sync_locale>. | |
| Changing the program's locale should be avoided by XS code. Nevertheless, | |
| certain non-Perl libraries called from XS, such as C<Gtk> do so. When this | |
| happens, Perl needs to be told that the locale has changed. Use this function | |
| to do so, before returning to Perl. | |
| =back | |
| =head1 Selected Bug Fixes | |
| =over 4 | |
| =item * | |
| A bug has been fixed where zero-length assertions and code blocks inside of a | |
| regex could cause C<pos> to see an incorrect value. | |
| L<[GH #14016]|https://github.com/Perl/perl5/issues/14016> | |
| =item * | |
| Using C<s///e> on tainted utf8 strings could issue bogus "Malformed UTF-8 | |
| character (unexpected end of string)" warnings. This has now been fixed. | |
| L<[GH #13948]|https://github.com/Perl/perl5/issues/13948> | |
| =item * | |
| C<system> and friends should now work properly on more Android builds. | |
| Due to an oversight, the value specified through B<-Dtargetsh> to F<Configure> | |
| would end up being ignored by some of the build process. This caused perls | |
| cross-compiled for Android to end up with defective versions of C<system>, | |
| C<exec> and backticks: the commands would end up looking for F</bin/sh> instead | |
| of F</system/bin/sh>, and so would fail for the vast majority of devices, | |
| leaving C<$!> as C<ENOENT>. | |
| =item * | |
| Many issues have been detected by L<Coverity|http://www.coverity.com/> and | |
| fixed. | |
| =back | |
| =head1 Acknowledgements | |
| Perl 5.20.1 represents approximately 4 months of development since Perl 5.20.0 | |
| and contains approximately 12,000 lines of changes across 170 files from 36 | |
| authors. | |
| Excluding auto-generated files, documentation and release tools, there were | |
| approximately 2,600 lines of changes to 110 .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.1: | |
| Aaron Crane, Abigail, Alberto Simões, Alexandr Ciornii, Alexandre (Midnite) | |
| Jousset, Andrew Fresh, Andy Dougherty, Brian Fraser, Chris 'BinGOs' Williams, | |
| Craig A. Berry, Daniel Dragan, David Golden, David Mitchell, H.Merijn Brand, | |
| James E Keenan, Jan Dubois, Jarkko Hietaniemi, John Peacock, kafka, Karen | |
| Etheridge, Karl Williamson, Lukas Mai, Matthew Horsfall, Michael Bunk, Peter | |
| Martini, Rafael Garcia-Suarez, Reini Urban, Ricardo Signes, Shirakata Kentaro, | |
| Smylers, Steve Hay, Thomas Sibley, Todd Rinaldo, Tony Cook, Vladimir Marek, | |
| Yves Orton. | |
| 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 | |