diff options
author | Sawyer X <xsawyerx@cpan.org> | 2019-05-11 23:39:25 +0300 |
---|---|---|
committer | Sawyer X <xsawyerx@cpan.org> | 2019-05-11 23:39:25 +0300 |
commit | d407e3099f24919b06c96da7818004249f8c0b6a (patch) | |
tree | 66d147d432d9b175e3c2721d0921c31e2c1f90fe | |
parent | 2406885c02e0b9c3fde1227d4794876c24ccf2cc (diff) | |
download | perl-d407e3099f24919b06c96da7818004249f8c0b6a.tar.gz |
Finalize perldelta
-rw-r--r-- | MANIFEST | 11 | ||||
-rwxr-xr-x | Makefile.SH | 8 | ||||
-rw-r--r-- | pod/.gitignore | 1 | ||||
-rw-r--r-- | pod/perl.pod | 11 | ||||
-rw-r--r-- | pod/perl5290delta.pod | 106 | ||||
-rw-r--r-- | pod/perl52910delta.pod | 202 | ||||
-rw-r--r-- | pod/perl5291delta.pod | 330 | ||||
-rw-r--r-- | pod/perl5292delta.pod | 193 | ||||
-rw-r--r-- | pod/perl5293delta.pod | 182 | ||||
-rw-r--r-- | pod/perl5294delta.pod | 271 | ||||
-rw-r--r-- | pod/perl5295delta.pod | 248 | ||||
-rw-r--r-- | pod/perl5296delta.pod | 378 | ||||
-rw-r--r-- | pod/perl5297delta.pod | 264 | ||||
-rw-r--r-- | pod/perl5298delta.pod | 430 | ||||
-rw-r--r-- | pod/perl5299delta.pod | 274 | ||||
l--------- | pod/perl5300delta.pod | 1 | ||||
-rw-r--r-- | pod/perldelta.pod | 1352 | ||||
-rw-r--r-- | vms/descrip_mms.template | 2 | ||||
-rw-r--r-- | win32/GNUmakefile | 4 | ||||
-rw-r--r-- | win32/Makefile | 4 | ||||
-rw-r--r-- | win32/makefile.mk | 4 | ||||
-rw-r--r-- | win32/pod.mak | 52 |
22 files changed, 1191 insertions, 3137 deletions
@@ -5029,17 +5029,6 @@ pod/perl5263delta.pod Perl changes in version 5.26.3 pod/perl5280delta.pod Perl changes in version 5.28.0 pod/perl5281delta.pod Perl changes in version 5.28.1 pod/perl5282delta.pod Perl changes in version 5.28.2 -pod/perl5290delta.pod Perl changes in version 5.29.0 -pod/perl52910delta.pod Perl changes in version 5.29.10 -pod/perl5291delta.pod Perl changes in version 5.29.1 -pod/perl5292delta.pod Perl changes in version 5.29.2 -pod/perl5293delta.pod Perl changes in version 5.29.3 -pod/perl5294delta.pod Perl changes in version 5.29.4 -pod/perl5295delta.pod Perl changes in version 5.29.5 -pod/perl5296delta.pod Perl changes in version 5.29.6 -pod/perl5297delta.pod Perl changes in version 5.29.7 -pod/perl5298delta.pod Perl changes in version 5.29.8 -pod/perl5299delta.pod Perl changes in version 5.29.9 pod/perl561delta.pod Perl changes in version 5.6.1 pod/perl56delta.pod Perl changes in version 5.6 pod/perl581delta.pod Perl changes in version 5.8.1 diff --git a/Makefile.SH b/Makefile.SH index 9a5515536a..5777970638 100755 --- a/Makefile.SH +++ b/Makefile.SH @@ -586,7 +586,7 @@ esac $spitshell >>$Makefile <<'!NO!SUBS!' -perltoc_pod_prereqs = extra.pods pod/perl52911delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod +perltoc_pod_prereqs = extra.pods pod/perl5300delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod generated_pods = pod/perltoc.pod $(perltoc_pod_prereqs) generated_headers = uudmap.h bitcount.h mg_data.h @@ -1150,9 +1150,9 @@ pod/perlintern.pod: $(MINIPERL_EXE) autodoc.pl embed.fnc pod/perlmodlib.pod: $(MINIPERL_EXE) pod/perlmodlib.PL MANIFEST $(MINIPERL) pod/perlmodlib.PL -q -pod/perl52911delta.pod: pod/perldelta.pod - $(RMS) pod/perl52911delta.pod - $(LNS) perldelta.pod pod/perl52911delta.pod +pod/perl5300delta.pod: pod/perldelta.pod + $(RMS) pod/perl5300delta.pod + $(LNS) perldelta.pod pod/perl5300delta.pod extra.pods: $(MINIPERL_EXE) -@test ! -f extra.pods || rm -f `cat extra.pods` diff --git a/pod/.gitignore b/pod/.gitignore index dae939d301..86f7b07393 100644 --- a/pod/.gitignore +++ b/pod/.gitignore @@ -50,7 +50,6 @@ /roffitall # generated -/perl52911delta.pod /perlapi.pod /perlintern.pod /perlmodlib.pod diff --git a/pod/perl.pod b/pod/perl.pod index 2ff356ac55..9096f70dcf 100644 --- a/pod/perl.pod +++ b/pod/perl.pod @@ -181,17 +181,6 @@ aux h2ph h2xs perlbug pl2pm pod2html pod2man splain xsubpp perlhist Perl history records perldelta Perl changes since previous version - perl52910delta Perl changes in version 5.29.10 - perl5299delta Perl changes in version 5.29.9 - perl5298delta Perl changes in version 5.29.8 - perl5297delta Perl changes in version 5.29.7 - perl5296delta Perl changes in version 5.29.6 - perl5295delta Perl changes in version 5.29.5 - perl5294delta Perl changes in version 5.29.4 - perl5293delta Perl changes in version 5.29.3 - perl5292delta Perl changes in version 5.29.2 - perl5291delta Perl changes in version 5.29.1 - perl5290delta Perl changes in version 5.29.0 perl5282delta Perl changes in version 5.28.2 perl5281delta Perl changes in version 5.28.1 perl5280delta Perl changes in version 5.28.0 diff --git a/pod/perl5290delta.pod b/pod/perl5290delta.pod deleted file mode 100644 index c1bb71c0ce..0000000000 --- a/pod/perl5290delta.pod +++ /dev/null @@ -1,106 +0,0 @@ -=encoding utf8 - -=head1 NAME - -perl5290delta - what is new for perl v5.29.0 - -=head1 DESCRIPTION - -This document describes differences between the 5.28.0 release and the 5.29.0 -release. - -If you are upgrading from an earlier release such as 5.27.0, first read -L<perl5280delta>, which describes differences between 5.27.0 and 5.28.0. - -=head1 Incompatible Changes - -=head2 Pattern delimiters now must be graphemes - -This usage has been deprecated and scheduled for removal in 5.30. See -L<perldeprecation/Use of unassigned code point or non-standalone -grapheme for a delimiter.> - -=head1 Modules and Pragmata - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -L<feature> has been upgraded from version 1.52 to 1.53. - -=item * - -L<Module::CoreList> has been upgraded from version 5.20180622 to 5.20180626. - -=item * - -L<Unicode::UCD> has been upgraded from version 0.70 to 0.71. - -=back - -=head1 Acknowledgements - -Perl 5.29.0 represents approximately 1 week of development since Perl 5.28.0 -and contains approximately 320,000 lines of changes across 79 files from 4 -authors. - -Excluding auto-generated files, documentation and release tools, there were -approximately 310,000 lines of changes to 30 .pm, .t, .c and .h files. - -Perl continues to flourish into its fourth decade thanks to a vibrant -community of users and developers. The following people are known to have -contributed the improvements that became Perl 5.29.0: - -Abigail, James E Keenan, Karl Williamson, Sawyer X. - -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 perl bug database -at L<https://rt.perl.org/> . There may also be information at -L<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 perlbug@perl.org 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 see -L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> -for details of how to report the issue. - -=head1 Give Thanks - -If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, -you can do so by running the C<perlthanks> program: - - perlthanks - -This will send an email to the Perl 5 Porters list with your show of thanks. - -=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 diff --git a/pod/perl52910delta.pod b/pod/perl52910delta.pod deleted file mode 100644 index bf00491bec..0000000000 --- a/pod/perl52910delta.pod +++ /dev/null @@ -1,202 +0,0 @@ -=encoding utf8 - -=head1 NAME - -perl52910delta - what is new for perl v5.29.10 - -=head1 DESCRIPTION - -This document describes differences between the 5.29.9 release and the 5.29.10 -release. - -If you are upgrading from an earlier release such as 5.29.8, first read -L<perl5299delta>, which describes differences between 5.29.8 and 5.29.9. - -=head1 Core Enhancements - -=head2 Perl now supports draft Unicode 12.1 - -Unicode 12.1 differs from 12.0 only in the addition of a single -character, that for the new Japanese era name. The intent is to ship -Perl 5.30 with Unicode 12.1. The final release of 12.1 is scheduled for -May 7, 2019. Hopefully, there won't be any code changes to the draft -after the release of Perl 5.29.10. - -=head1 Modules and Pragmata - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -L<Data::Dumper> has been upgraded from version 2.173 to 2.174. - -L<Data::Dumper> now avoids leak when C<croak>ing. - -=item * - -L<ExtUtils::CBuilder> has been upgraded from version 0.280230 to 0.280231. - -=item * - -L<File::Spec> has been upgraded from version 3.77 to 3.78. - -Silence L<Cwd> warning on Android builds if C<targetsh> is not defined. - -=item * - -L<I18N::Langinfo> has been upgraded from version 0.17 to 0.18. - -=item * - -L<Module::CoreList> has been upgraded from version 5.20190320 to 5.20190420. - -=item * - -L<Module::Metadata> has been upgraded from version 1.000033 to 1.000036. - -Properly clean up temporary directories after testing. - -=item * - -L<POSIX> has been upgraded from version 1.87 to 1.88. - -=item * - -L<Storable> has been upgraded from version 3.14 to 3.15. - -=back - -=head1 Platform Support - -=head2 Platform-Specific Notes - -=over 4 - -=item Windows - -=over 4 - -=item * - -Support for compiling perl on Windows using Microsoft Visual Studio 2019 -(containing Visual C++ 14.2) has been added. - -=back - -=back - -=head1 Internal Changes - -=over 4 - -=item * - -A new function L<perlapi/C<my_strtod>> or its synonym, Strtod(), is -now available with the same signature as the libc strtod(). It provides -strotod() equivalent behavior on all platforms, using the best available -precision, depending on platform capabilities and F<Configure> options, -while handling locale-related issues, such as if the radix character -should be a dot or comma. - -=back - -=head1 Selected Bug Fixes - -=over 4 - -=item * - -Perl now exposes POSIX C<getcwd> as C<Internals::getcwd()> if -available. This is intended for use by C<Cwd.pm> during bootstrapping -and may be removed or changed without notice. This fixes some -bootstrapping issues while building perl in a directory where some -ancestor directory isn't readable. [perl #133951] - -=back - -=head1 Errata From Previous Releases - -=over 4 - -=item * - -The perldelta for 5.29.9 listed the enhancement about regular expression -lookbehind in the C<Security> section rather than the C<Core Enhancements> -section. Its title should also have indicated that it is "Limited" -variable-length lookbehind (up to 255 characters). (Note that a -technique has now been published to achieve arbitrary variable length -lookbehind with pre-existing Perl constructs and is linked to in L<perlre>. -It is -L<http://www.drregex.com/2019/02/variable-length-lookbehinds-actually.html>.) - -=back - -=head1 Acknowledgements - -Perl 5.29.10 represents approximately 4 weeks of development since Perl -5.29.9 and contains approximately 29,000 lines of changes across 230 files -from 19 authors. - -Excluding auto-generated files, documentation and release tools, there were -approximately 21,000 lines of changes to 98 .pm, .t, .c and .h files. - -Perl continues to flourish into its fourth decade thanks to a vibrant -community of users and developers. The following people are known to have -contributed the improvements that became Perl 5.29.10: - -Alberto Simões, Brian Greenfield, Dan Book, David Mitchell, Ed J, Hugo van -der Sanden, James E Keenan, Karen Etheridge, Karl Williamson, Niko Tyni, -Richard Leach, Sawyer X, Sisyphus, Steve Hay, Tomasz Konojacki, Tom Wyant, -Tony Cook, Unicode Consortium, Zak B. Elep. - -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 perl bug database -at L<https://rt.perl.org/>. There may also be information at -L<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 perlbug@perl.org 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 see -L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> -for details of how to report the issue. - -=head1 Give Thanks - -If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, -you can do so by running the C<perlthanks> program: - - perlthanks - -This will send an email to the Perl 5 Porters list with your show of thanks. - -=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 diff --git a/pod/perl5291delta.pod b/pod/perl5291delta.pod deleted file mode 100644 index 37fba83bb4..0000000000 --- a/pod/perl5291delta.pod +++ /dev/null @@ -1,330 +0,0 @@ -=encoding utf8 - -=head1 NAME - -perl5291delta - what is new for perl v5.29.1 - -=head1 DESCRIPTION - -This document describes differences between the 5.29.0 release and the 5.29.1 -release. - -If you are upgrading from an earlier release such as 5.28.0, first read -L<perl5290delta>, which describes differences between 5.28.0 and 5.29.0. - -=head1 Incompatible Changes - -=head2 Delimiters must now be graphemes - -See L<perldeprecation/Use of unassigned code point or non-standalone grapheme -for a delimiter.> - -=head2 Some formerly deprecated uses of an unescaped left brace C<"{"> in -regular expression patterns are now illegal - -But to avoid breaking code unnecessarily, most instances that issued a -deprecation warning, remain legal and now have a non-deprecation warning -raised. See L<perldeprecation/Unescaped left braces in regular expressions>. - -=head1 Performance Enhancements - -=over 4 - -=item * - -Translating from UTF-8 into the code point it represents now is done via a -deterministic finite automaton, speeding it up. As a typical example, -C<ord("\x7fff")> now requires 12% fewer instructions than before. The -performance of checking that a sequence of bytes is valid UTF-8 is similarly -improved, again by using a dfa. - -=back - -=head1 Modules and Pragmata - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -L<bignum> has been upgraded from version 0.49 to 0.50. - -=item * - -L<Compress::Raw::Bzip2> has been upgraded from version 2.074 to 2.081. - -=item * - -L<Compress::Raw::Zlib> has been upgraded from version 2.076 to 2.081. - -=item * - -L<Config::Perl::V> has been upgraded from version 0.29 to 0.30. - -=item * - -L<DB_File> has been upgraded from version 1.840 to 1.842. - -=item * - -L<Devel::PPPort> has been upgraded from version 3.40 to 3.42. - -=item * - -L<Digest::SHA> has been upgraded from version 6.01 to 6.02. - -=item * - -L<experimental> has been upgraded from version 0.019 to 0.020. - -=item * - -L<ExtUtils::Manifest> has been upgraded from version 1.70 to 1.71. - -=item * - -L<File::Temp> has been upgraded from version 0.2304 to 0.2308. - -=item * - -IO-Compress has been upgraded from version 2.074 to 2.081. - -=item * - -L<IPC::Cmd> has been upgraded from version 1.00 to 1.02. - -=item * - -L<Locale::Codes> has been upgraded from version 3.56 to 3.57. - -=item * - -L<Math::BigInt> has been upgraded from version 1.999811 to 1.999813. - -=item * - -L<Math::BigInt::FastCalc> has been upgraded from version 0.5006 to 0.5007. - -=item * - -L<Math::BigRat> has been upgraded from version 0.2613 to 0.2614. - -=item * - -L<Module::CoreList> has been upgraded from version 5.20180626 to 5.20180720. - -=item * - -L<parent> has been upgraded from version 0.236 to 0.237. - -=item * - -L<perlfaq> has been upgraded from version 5.021011 to 5.20180605. - -=item * - -podlators has been upgraded from version 4.10 to 4.11. - -=item * - -L<Storable> has been upgraded from version 3.08 to 3.11. - -=item * - -L<Test::Simple> has been upgraded from version 1.302133 to 1.302138. - -=item * - -L<Thread::Queue> has been upgraded from version 3.12 to 3.13. - -=item * - -L<Time::Local> has been upgraded from version 1.25 to 1.28. - -=item * - -L<version> has been upgraded from version 0.9923 to 0.9924. - -=back - -=head1 Documentation - -=head2 Changes to Existing Documentation - -We have attempted to update the documentation to reflect the changes listed in -this document. If you find any we have missed, send email to -L<perlbug@perl.org|mailto:perlbug@perl.org>. - -Additionally, the following selected changes have been made: - -=head3 L<perlapi> - -=over 4 - -=item * - -C<AvFILL()> was wrongly listed as deprecated. This has been corrected. -L<[perl #133278]|https://rt.perl.org/Ticket/Display.html?id=133278> - -=back - -=head3 L<perlop> - -=over 4 - -=item * - -The behaviour of C<tr> when the delimiter is an apostrophe has been clarified. -In particular, hyphens aren't special, and C<\x{}> isn't interpolated. -L<[perl #130679]|https://rt.perl.org/Ticket/Display.html?id=130679> - -=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 * - -As noted under L<Incompatible Changes> above, the deprecation warning -"Unescaped left brace in regex is deprecated here (and will be fatal in Perl -5.30), passed through in regex; marked by S<<-- HERE> in m/%s/" has been -changed to the non-deprecation warning "Unescaped left brace in regex is passed -through in regex; marked by S<<-- HERE> in m/%s/". - -=back - -=head1 Testing - -Tests were added and changed to reflect the other additions and changes in this -release. - -=head1 Platform Support - -=head2 Platform-Specific Notes - -=over 4 - -=item HP-UX 11.11 - -An obscure problem in C<pack()> when compiling with HP C-ANSI-C has been fixed -by disabling optimizations in F<pp_pack.c>. - -=item Windows - -=over 4 - -=item * - -The C<USE_CPLUSPLUS> build option which has long been available in -F<win32/Makefile> (for B<nmake>) and F<win32/makefile.mk> (for B<dmake>) is now -also available in F<win32/GNUmakefile> (for B<gmake>). - -=item * - -The B<nmake> makefile no longer defaults to Visual C++ 6.0 (a very old version -which is unlikely to be widely used today). As a result, it is now a -requirement to specify the C<CCTYPE> since there is no obvious choice of which -modern version to default to instead. Failure to specify C<CCTYPE> will result -in an error being output and the build will stop. - -(The B<dmake> and B<gmake> makefiles will automatically detect which compiler -is being used, so do not require C<CCTYPE> to be set. This feature has not yet -been added to the B<nmake> makefile.) - -=back - -=back - -=head1 Selected Bug Fixes - -=over 4 - -=item * - -Compilation under C<-DPERL_MEM_LOG> and C<-DNO_LOCALE> have been fixed. - -=item * - -Perl 5.28 introduced an C<index()> optimization when comparing to -1 (or -indirectly, e.g. >= 0). When this optimization was triggered inside a C<when> -clause it caused a warning ("Argument %s isn't numeric in smart match"). This -has now been fixed. -L<[perl #133368]|https://rt.perl.org/Ticket/Display.html?id=133368> - -=back - -=head1 Acknowledgements - -Perl 5.29.1 represents approximately 3 weeks of development since Perl 5.29.0 -and contains approximately 68,000 lines of changes across 510 files from 18 -authors. - -Excluding auto-generated files, documentation and release tools, there were -approximately 62,000 lines of changes to 320 .pm, .t, .c and .h files. - -Perl continues to flourish into its fourth decade thanks to a vibrant community -of users and developers. The following people are known to have contributed the -improvements that became Perl 5.29.1: - -Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn Ilmari Mannsåker, Daniel -Dragan, David Mitchell, François Perrad, H.Merijn Brand, Hugo van der Sanden, -James E Keenan, Jerry D. Hedden, Jim Cromie, Karen Etheridge, Karl Williamson, -Nicholas Clark, Sawyer X, Steve Hay, Tina Müller, 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 perl bug database at -L<https://rt.perl.org/> . There may also be information at -L<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 perlbug@perl.org 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 see -L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> for details of how to -report the issue. - -=head1 Give Thanks - -If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, you -can do so by running the C<perlthanks> program: - - perlthanks - -This will send an email to the Perl 5 Porters list with your show of thanks. - -=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 diff --git a/pod/perl5292delta.pod b/pod/perl5292delta.pod deleted file mode 100644 index e6e55fe671..0000000000 --- a/pod/perl5292delta.pod +++ /dev/null @@ -1,193 +0,0 @@ -=encoding utf8 - -=head1 NAME - -perl5292delta - what is new for perl v5.29.2 - -=head1 DESCRIPTION - -This document describes differences between the 5.29.1 release and the 5.29.2 -release. - -If you are upgrading from an earlier release such as 5.29.0, first read -L<perl5291delta>, which describes differences between 5.29.0 and 5.29.1. - -=head1 Core Enhancements - -=head2 Unicode 11.0 is supported - -For details, see L<https://www.unicode.org/versions/Unicode11.0.0/>. - -The Word_Break property, as in past Perl releases, remains tailored to -behave more in line with expectations of Perl users. This means that -sequential runs of horizontal white space characters are not broken -apart, but kept as a single run. Unicode 11 changed from past versions -to be more in line with Perl, but it left several white space characters -as causing breaks: TAB, NO BREAK SPACE, and FIGURE SPACE (U+2007). We -have decided to continue to use the previous Perl tailoring with regards -to these. - -As of July 2018, another aspect of Unicode 11.0 is causing problems, and -that is the changing the Georgian script to have both lower and -uppercase letters. It turns out that many devices do not have fonts -installed that can display the new uppercase letters, and people using -Georgian are finding their text more or less illegible. It is being -suggested that implementations delay their adoption of this portion of -11.0. - -But since the next stable release of Perl is almost a year away, this -aspect of 11.0 is being left in, with the option to back it out if -things haven't improved by that time, or if we get too many complaints -about the development release being unusable for Georgian users. - -=head1 Modules and Pragmata - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -L<Config::Extensions> has been upgraded from version 0.02 to 0.03. - -=item * - -L<Data::Dumper> has been upgraded from version 2.170 to 2.171. - -=item * - -L<File::Spec> has been upgraded from version 3.74 to 3.75. - -=item * - -L<Filter::Util::Call> has been upgraded from version 1.58 to 1.59. - -=item * - -L<HTTP::Tiny> has been upgraded from version 0.070 to 0.076. - -=item * - -L<Module::CoreList> has been upgraded from version 5.20180720 to 5.20180820. - -=item * - -L<PerlIO::scalar> has been upgraded from version 0.29 to 0.30. - -=item * - -L<Storable> has been upgraded from version 3.11 to 3.12. - -=item * - -L<Test::Simple> has been upgraded from version 1.302138 to 1.302140. - -=item * - -L<Time::HiRes> has been upgraded from version 1.9759 to 1.9760. - -=item * - -L<Time::Piece> has been upgraded from version 1.3204 to 1.33. - -=item * - -L<warnings> has been upgraded from version 1.42 to 1.43. - -=back - -=head2 Platform-Specific Notes - -=over 4 - -=item Win32 - -=over - -=item * - -C<sleep()> with warnings enabled for a C<USE_IMP_SYS> build no longer -warns about the sleep timeout being too large. [perl #133376] - -=back - -=back - -=head1 Selected Bug Fixes - -=over 4 - -=item * - -The new in-place editing code no longer leaks directory handles. [perl -#133314] - -=back - -=head1 Acknowledgements - -Perl 5.29.2 represents approximately 4 weeks of development since Perl -5.29.1 and contains approximately 59,000 lines of changes across 240 files -from 15 authors. - -Excluding auto-generated files, documentation and release tools, there were -approximately 47,000 lines of changes to 130 .pm, .t, .c and .h files. - -Perl continues to flourish into its fourth decade thanks to a vibrant -community of users and developers. The following people are known to have -contributed the improvements that became Perl 5.29.2: - -Aaron Crane, Chad Granum, Chris 'BinGOs' Williams, Craig A. Berry, Daniel -Dragan, David Mitchell, H.Merijn Brand, James E Keenan, Karl Williamson, -Sawyer X, Sisyphus, Steve Hay, Tomasz Konojacki, Tony Cook, Unicode -Consortium. - -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 perl bug database -at L<https://rt.perl.org/> . There may also be information at -L<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 perlbug@perl.org 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 see -L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> -for details of how to report the issue. - -=head1 Give Thanks - -If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, -you can do so by running the C<perlthanks> program: - - perlthanks - -This will send an email to the Perl 5 Porters list with your show of thanks. - -=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 diff --git a/pod/perl5293delta.pod b/pod/perl5293delta.pod deleted file mode 100644 index 213414bcba..0000000000 --- a/pod/perl5293delta.pod +++ /dev/null @@ -1,182 +0,0 @@ -=encoding utf8 - -=head1 NAME - -perl5293delta - what is new for perl v5.29.3 - -=head1 DESCRIPTION - -This document describes differences between the 5.29.2 release and the 5.29.3 -release. - -If you are upgrading from an earlier release such as 5.29.1, first read -L<perl5292delta>, which describes differences between 5.29.1 and 5.29.2. - -=head1 Modules and Pragmata - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -L<Archive::Tar> has been upgraded from version 2.30 to 2.32 - -=item * - -L<Carp> has been upgraded from version 1.38 to 1.50 - -=item * - -L<Data::Dumper> has been upgraded from version 2.171 to 2.172 - -=item * - -L<Devel::PPPort> has been upgraded from version 3.42 to 3.43. - -=item * - -L<File::Path> has been upgraded from version 2.15 to 2.16. - -=item * - -PathTools has been upgraded from version 3.74 to 3.75 - -=item * - -L<perlfaq> has been upgraded from version 5.20180605 to 5.20180915. - -=back - -=head2 Removed Modules and Pragmata - -=over 4 - -=item * - -C<Locale::Codes> has been removed at the request of its author. It -continues to be available on CPAN C<L<Locale::Codes>>. [perl #133458]. - -=back - -=head1 Documentation - -=head2 Changes to Existing Documentation - -We have attempted to update the documentation to reflect the changes -listed in this document. If you find any we have missed, send email -to L<perlbug@perl.org|mailto:perlbug@perl.org>. - -Additionally, the following selected changes have been made: - -=head3 L<perlreapi>, L<perlvar> - -=over 4 - -=item * - -Improve docs for lastparen, lastcloseparen - -=back - -=head1 Testing - -Tests were added and changed to reflect the other additions and changes -in this release. - -=head1 Platform Support - -=head2 Platform-Specific Notes - -=over 4 - -=item Windows - -The Windows Server 2003 SP1 Platform SDK build, with its early x64 compiler and -tools, was accidentally broken in Perl 5.27.9. This has now been fixed. - -=back - -=head1 Selected Bug Fixes - -=over 4 - -=item * - -Warnings produced from constant folding operations on overloaded -values no longer produce spurious "Use of uninitialized value" -warnings. [perl #132683] - -=item * - -Fix for "mutator not seen in (lex = ...) .= ..." [perl #133441] - -=back - -=head1 Acknowledgements - -Perl 5.29.3 represents approximately 4 weeks of development since Perl -5.29.2 and contains approximately 150,000 lines of changes across 190 files -from 15 authors. - -Excluding auto-generated files, documentation and release tools, there were -approximately 140,000 lines of changes to 92 .pm, .t, .c and .h files. - -Perl continues to flourish into its fourth decade thanks to a vibrant -community of users and developers. The following people are known to have -contributed the improvements that became Perl 5.29.3: - -Andy Dougherty, Chris 'BinGOs' Williams, Dagfinn Ilmari Mannsåker, David -Mitchell, Eugen Konkov, Graham Knop, H.Merijn Brand, James E Keenan, John SJ -Anderson, Karen Etheridge, Karl Williamson, Sawyer X, Slaven Rezic, Steve -Hay, Sullivan Beck, Tony Cook. - -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 perl bug database -at L<https://rt.perl.org/> . There may also be information at -L<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 perlbug@perl.org 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 see -L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> -for details of how to report the issue. - -=head1 Give Thanks - -If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, -you can do so by running the C<perlthanks> program: - - perlthanks - -This will send an email to the Perl 5 Porters list with your show of thanks. - -=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 diff --git a/pod/perl5294delta.pod b/pod/perl5294delta.pod deleted file mode 100644 index aae8ea9297..0000000000 --- a/pod/perl5294delta.pod +++ /dev/null @@ -1,271 +0,0 @@ -=encoding utf8 - -=head1 NAME - -perl5294delta - what is new for perl v5.29.4 - -=head1 DESCRIPTION - -This document describes differences between the 5.29.3 release and the 5.29.4 -release. - -If you are upgrading from an earlier release such as 5.29.2, first read -L<perl5293delta>, which describes differences between 5.29.2 and 5.29.3. - -=head1 Core Enhancements - -=head2 The upper limit C<"n"> specifiable in a regular expression -quantifier of the form C<"{m,n}"> has been doubled to 65534 - -The meaning of an unbounded upper quantifier C<"{m,}"> remains unchanged. -It matches 2**31 - 1 times on most platforms, and more on ones where a C -language short variable is more than 4 bytes long. - -=head1 Incompatible Changes - -=head2 Assigning non-zero to C<$[> is fatal - -Setting L<< C<$[>|perlvar/$[ >> to a non-zero value has been deprecated since -Perl 5.12 and now throws a fatal error. -See L<<< perldeprecation/Assigning non-zero to C<< $[ >> is fatal >>>. - -=head2 Previously deprecated sysread()/syswrite() on :utf8 handles now fatal - -Calling sysread(), syswrite(), send() or recv() on a C<:utf8> handle, -whether applied explicitly or implicitly, is now fatal. This was -deprecated in perl 5.24. - -There were two problems with calling these functions on C<:utf8> -handles: - -=over - -=item * - -All four functions only paid attention to the C<:utf8> flag. Other -layers were completely ignored, so a handle with -C<:encoding(UTF-16LE)> layer would be treated as UTF-8. Other layers, -such as compression are completely ignored with or without the -C<:utf8> flag. - -=item * - -sysread() and recv() would read from the handle, skipping any -validation by the layers, and do no validation of their own. This -could lead to invalidly encoded perl scalars. - -=back - -[perl #125760] - -=head2 my() in false conditional prohibited - -Declarations such as C<my $x if 0> are no longer permitted. - -[perl #133543] - -=head2 Fatalize $* and $# - -These special variables, long deprecated, now throw exceptions when used. - -[perl #133583] - -=head2 Fatalize unqualified use of dump() - -The C<dump()> function, long discouraged, may no longer be used unless it is -fully qualified, I<i.e.>, C<CORE::dump()>. - -[perl #133584] - -=head2 Remove File::Glob::glob() - -The C<File::Glob::glob()> function, long deprecated, has been removed and now -throws an exception which advises use of C<File::Glob::bsd_glob()> instead. - -[perl #133586] - -=head1 Modules and Pragmata - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -L<B> has been upgraded from version 1.74 to 1.75. - -=item * - -L<B::Concise> has been upgraded from version 1.003 to 1.004. - -=item * - -L<B::Deparse> has been upgraded from version 1.48 to 1.49. - -=item * - -L<bignum> has been upgraded from version 0.50 to 0.51. - -=item * - -L<bytes> has been upgraded from version 1.06 to 1.07. - -=item * - -L<CPAN> has been upgraded from version 2.20-TRIAL to 2.21-TRIAL. - -=item * - -L<Devel::Peek> has been upgraded from version 1.27 to 1.28. - -=item * - -L<feature> has been upgraded from version 1.53 to 1.54. - -=item * - -L<File::Copy> has been upgraded from version 2.33 to 2.34. - -=item * - -L<File::Glob> has been upgraded from version 1.31 to 1.32. - -=item * - -L<Module::CoreList> has been upgraded from version 5.20180920 to 5.20181020. - -=item * - -L<sigtrap> has been upgraded from version 1.08 to 1.09. - -=item * - -L<Unicode::UCD> has been upgraded from version 0.71 to 0.72. - -=item * - -L<vars> has been upgraded from version 1.04 to 1.05. - -C<vars.pm> no longer disables non-vars strict when checking if strict -vars is enabled. [perl #130674] - -=back - -=head2 Removed Modules and Pragmata - -=over 4 - -=item * - -B::Debug is no longer distributed with the core distribution. It remains -available on CPAN. - -=back - -=head1 Internal Changes - -=over 4 - -=item * - -The sizing pass has been eliminated from the regular expression -compiler. An extra pass may instead be needed in some cases to count -the number of parenthetical capture groups. - -=back - -=head1 Selected Bug Fixes - -=over 4 - -=item * - -C<pack "u", "invalid uuencoding"> now properly NUL terminates the -zero-length SV produced. [perl #132655] - -=item * - -Improve the debugging output for calloc() calls with C<-Dm>. [perl #133439] - -=item * - -Regexp script runs were failing to permit ASCII digits in some cases. -[perl #133547] - -=item * - -On Unix-like systems supporting a platform-specific technique for -determining L<< C<$^X>|perlvar/$^X >>, Perl failed to fall back to the -generic technique when the platform-specific one fails (for example, a Linux -system with /proc not mounted). This was a regression in Perl 5.28.0. -[perl #133573] - -=back - -=head1 Acknowledgements - -Perl 5.29.4 represents approximately 4 weeks of development since Perl -5.29.3 and contains approximately 8,400 lines of changes across 180 files -from 17 authors. - -Excluding auto-generated files, documentation and release tools, there were -approximately 6,300 lines of changes to 110 .pm, .t, .c and .h files. - -Perl continues to flourish into its fourth decade thanks to a vibrant -community of users and developers. The following people are known to have -contributed the improvements that became Perl 5.29.4: - -Aaron Crane, Alexandr Savca, Andreas König, Chris 'BinGOs' Williams, Craig -A. Berry, Dagfinn Ilmari Mannsåker, David Mitchell, Eugen Konkov, James E -Keenan, John SJ Anderson, Karl Williamson, Matthias Bethke, Nicolas R., -Sisyphus, Slaven Rezic, Tomasz Konojacki, Tony Cook. - -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 perl bug database -at L<https://rt.perl.org/> . There may also be information at -L<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 perlbug@perl.org 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 see -L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> -for details of how to report the issue. - -=head1 Give Thanks - -If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, -you can do so by running the C<perlthanks> program: - - perlthanks - -This will send an email to the Perl 5 Porters list with your show of thanks. - -=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 diff --git a/pod/perl5295delta.pod b/pod/perl5295delta.pod deleted file mode 100644 index 5e4be82c3b..0000000000 --- a/pod/perl5295delta.pod +++ /dev/null @@ -1,248 +0,0 @@ -=encoding utf8 - -=head1 NAME - -perl5295delta - what is new for perl v5.29.5 - -=head1 DESCRIPTION - -This document describes differences between the 5.29.4 release and the 5.29.5 -release. - -If you are upgrading from an earlier release such as 5.29.3, first read -L<perl5294delta>, which describes differences between 5.29.3 and 5.29.4. - -=head1 Core Enhancements - -=head2 C<-Drv> now means something on C<-DDEBUGGING> builds - -Now, adding the verbose flag (C<-Dv>) to the C<-Dr> flag turns on all -possible regular expression debugging. - -=head1 Performance Enhancements - -=over 4 - -=item * - -Regular expression pattern matching of things like C<qr/[^I<a>]/> is -significantly sped up, where I<a> is any ASCII character. Which classes -will get this speed up is complicated and depends on the underlying bit -patterns of those characters, so differs between ASCII and EBCDIC -platforms, but all case pairs, like C<qr/[Gg]/> are included, as is -C<[^01]>. - -=back - -=head1 Modules and Pragmata - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -L<Data::Dumper> has been upgraded from version 2.172 to 2.173. - -=item * - -L<Errno> has been upgraded from version 1.29 to 1.30. - -=item * - -L<File::Spec> has been upgraded from version 3.75 to 3.76. - -=item * - -L<GDBM_File> has been upgraded from version 1.17 to 1.18. - -=item * - -L<Module::CoreList> has been upgraded from version 5.20181020 to 5.20181120. - -=item * - -L<NDBM_File> has been upgraded from version 1.14 to 1.15. - -=item * - -L<ODBM_File> has been upgraded from version 1.15 to 1.16. - -=item * - -L<re> has been upgraded from version 0.36 to 0.37. - -=item * - -L<SDBM_File> has been upgraded from version 1.14 to 1.15. - -=back - -=head1 Documentation - -=head2 Changes to Existing Documentation - -We have attempted to update the documentation to reflect the changes -listed in this document. If you find any we have missed, send email -to L<perlbug@perl.org|mailto:perlbug@perl.org>. - -Additionally, the following selected changes have been made: - -=head3 L<perlfunc> - -=over 4 - -=item * - -The entry for L<perlfunc/-X> has been clarified to indicate that symbolic -links are followed for most tests. - -=back - -=head1 Configuration and Compilation - -=over 4 - -=item * - -Normally the thread-safe functions are used only on threaded builds. -It is now possible to force their use on unthreaded builds on systems -that have them available, by including the -C<-Accflags='-DUSE_THREAD_SAFE_LOCALE'> option to F<Configure>. - -=back - -=head1 Testing - -Tests were added and changed to reflect the other additions and changes -in this release. - -=head1 Platform Support - -=head2 Platform-Specific Notes - -=over 4 - -=item Mac OS X - -Perl's build and testing process on Mac OS X for C<-Duseshrplib> -builds is now compatible with Mac OS X System Integrity Protection -(SIP). - -SIP prevents binaries in F</bin> (and a few other places) being passed -the C<DYLD_LIBRARY_PATH> environment variable. For our purposes this -prevents C<DYLD_LIBRARY_PATH> from being passed to the shell, which -prevents that variable being passed to the testing or build process, -so running C<perl> couldn't find F<libperl.dylib>. - -To work around that, the initial build of the F<perl> executable -expects to find F<libperl.dylib> in the build directory, and the -library path is then adjusted during installation to point to the -installed library. - -[perl #126706] - -=item Minix3 - -Some support for Minix3 has been re-added. - -=back - -=head1 Selected Bug Fixes - -=over 4 - -=item * - -L<SDBM_File> is now more robust with corrupt database files. The -improvements do not make SDBM files suitable as an interchange format. -[perl #132147] - -=item * - -C<binmode($fh);> or C<binmode($fh, ':raw');> now properly removes the -C<:utf8> flag from the default C<:crlf> I/O layer on Win32. [perl -#133604] - -=item * - -The experimental reference aliasing feature was misinterpreting array and -hash slice assignment as being localised, e.g. - - \(@a[3,5,7]) = \(....); - -was being interpreted as: - - local \(@a[3,5,7]) = \(....); - -[perl #133538] - -=back - -=head1 Acknowledgements - -Perl 5.29.5 represents approximately 4 weeks of development since Perl -5.29.4 and contains approximately 4,000 lines of changes across 110 files -from 18 authors. - -Excluding auto-generated files, documentation and release tools, there were -approximately 2,600 lines of changes to 51 .pm, .t, .c and .h files. - -Perl continues to flourish into its fourth decade thanks to a vibrant -community of users and developers. The following people are known to have -contributed the improvements that became Perl 5.29.5: - -Aaron Crane, Chris 'BinGOs' Williams, Dagfinn Ilmari Mannsåker, Dan -Dedrick, David Cantrell, David Mitchell, Dominic Hargreaves, H.Merijn Brand, -James Clarke, James E Keenan, Karen Etheridge, Karl Williamson, Niko Tyni, -Pali, Phil Pearl (Lobbes), Sawyer X, Tomasz Konojacki, Tony Cook. - -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 perl bug database -at L<https://rt.perl.org/>. There may also be information at -L<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 perlbug@perl.org 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 see -L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> -for details of how to report the issue. - -=head1 Give Thanks - -If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, -you can do so by running the C<perlthanks> program: - - perlthanks - -This will send an email to the Perl 5 Porters list with your show of thanks. - -=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 diff --git a/pod/perl5296delta.pod b/pod/perl5296delta.pod deleted file mode 100644 index be63ed880e..0000000000 --- a/pod/perl5296delta.pod +++ /dev/null @@ -1,378 +0,0 @@ -=encoding utf8 - -=head1 NAME - -perl5296delta - what is new for perl v5.29.6 - -=head1 DESCRIPTION - -This document describes differences between the 5.29.5 release and the 5.29.6 -release. - -If you are upgrading from an earlier release such as 5.29.4, first read -L<perl5295delta>, which describes differences between 5.29.4 and 5.29.5. - -=head1 Security - -=head2 [CVE-2018-18312] Heap-buffer-overflow write in S_regatom (regcomp.c) - -A crafted regular expression could cause heap-buffer-overflow write during -compilation, potentially allowing arbitrary code execution. (This was -actually fixed in 5.29.4, but not announced as a security fix at the time). -L<[perl #133423]|https://rt.perl.org/Ticket/Display.html?id=133423> - -=head1 Performance Enhancements - -=over 4 - -=item * - -Optimization of C<IV> to C<UV> conversions. -L<[perl #133677]|https://rt.perl.org/Ticket/Display.html?id=133677>. - -=item * - -Speed up of the integer stringification algorithm by processing -two digits at a time instead of one. -L<[perl #133691]|https://rt.perl.org/Ticket/Display.html?id=133691>. - -=item * - -Improvements based on LGTM analysis and recommendation. -(L<https://lgtm.com/projects/g/Perl/perl5/alerts/?mode=tree>). -L<[perl #133686]|https://rt.perl.org/Ticket/Display.html?id=133686>. -L<[perl #133699]|https://rt.perl.org/Ticket/Display.html?id=133699>. - -=item * - -Code optimizations in F<regcomp.c>, F<regcomp.h>, F<regexec.c>. - -=back - -=head1 Modules and Pragmata - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -L<Config::Perl::V>. has been upgraded from version 0.30 to 0.32. This was due -to a new configuration variable that has influence on binary compatibility: -C<USE_THREAD_SAFE_LOCALE>. - -=item * - -L<ExtUtils::ParseXS> has been upgraded from version 3.39 to 3.40. -C<OUTLIST> parameters are no longer incorrectly included in the -automatically generated function prototype. -L<[perl #133654]|https://rt.perl.org/Ticket/Display.html?id=133654>. - -=item * - -L<File::Find> has been upgraded from version 1.34 to 1.35. -C<$File::Find::dont_use_nlink> now defaults to 1 on all -platforms. -L<[perl #133673]|https://rt.perl.org/Ticket/Display.html?id=133673>. - -=item * - -L<Module::CoreList> has been upgraded from version 5.20181120 to 5.20181218. - -=item * - -L<POSIX> has been upgraded from version 1.85 to 1.86. - -=item * - -L<Storable> has been upgraded from version 3.13 to 3.14. - -Storable no longer probes for recursion limits at build time. -L<[perl #133708]|https://rt.perl.org/Ticket/Display.html?id=133708> -and others. - -Metasploit exploit code was included to test for CVE-2015-1992 -detection, this caused anti-virus detections on at least one AV suite. -The exploit code has been removed and replaced with a simple -functional test. -L<[perl #133706]|https://rt.perl.org/Ticket/Display.html?id=133706> - -=item * - -L<Test::Simple> has been upgraded from version 1.302140 to 1.302141. - -=item * - -L<threads::shared> has been upgraded from version 1.58 to 1.59. - -=back - -=head1 Documentation - -=head2 Changes to Existing Documentation - -We have attempted to update the documentation to reflect the changes -listed in this document. If you find any we have missed, send email -to L<perlbug@perl.org|mailto:perlbug@perl.org>. - -Additionally, the following selected changes have been made: - -=head3 L<perlfunc> - -=over 4 - -=item * - -Clarification of behaviour of C<reset EXPR>. - -=back - -=head3 L<perlreref> - -=over 4 - -=item * - -Clarification of the syntax of /(?(cond)yes)/. - -=back - -=head3 L<perlop> - -=over - -=item * - -We no longer have null (empty line) here doc terminators, so -L<perlop> should not refer to them. - -=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 * - -Under C<< -Dr >> (or C<< use re 'Debug' >>) the compiled regex engine -program is displayed. It used two different spellings for I<< infinity >>, -C<< INFINITY >>, and C<< INFTY >>. It now uses the latter exclusively, -as that spelling has been around the longest. - -=back - -=head1 Utility Changes - -=head2 L<xsubpp> - -=over 4 - -=item * - -The generated prototype (with C<< PROTOTYPES: ENABLE >>) would include -C<< OUTLIST >> parameters, but these aren't arguments to the perl function. -This has been rectified. -L<[perl #133654]|https://rt.perl.org/Ticket/Display.html?id=133654>. - -=back - -=head1 Testing - -Tests were added and changed to reflect the other additions and -changes in this release. Furthermore, these significant changes were -made: - -=over 4 - -=item * - -Some tests in F<< t/io/eintr.t >> caused the process to hang on -pre-16 Darwin. These tests are skipped for those version of Darwin. - -=back - -=head1 Platform Support - -=head2 Platform-Specific Notes - -=over 4 - -=item Cygwin - -Cygwin doesn't make C<< cuserid >> visible. - -=item Win32 Mingw - -C99 math functions are now available. - -=back - -=head1 Internal Changes - -=over 4 - -=item * - -Two new regnodes have been introduced C<< EXACT_ONLY8 >>, and -C<< EXACTFU_ONLY8 >>. They're equivalent to C<< EXACT >> and C<< EXACTFU >>, -except that they contain a code point which requires UTF-8 to -represent/match. Hence, if the target string isn't UTF-8, we know -it can't possibly match, without needing to try. - -=item * - -C<< print_bytes_for_locale() >> is now defined if C<< DEBUGGING >>, -Prior, it didn't get defined unless C<< LC_COLLATE >> was defined -on the platform. - -=back - -=head1 Selected Bug Fixes - -=over 4 - -=item * - -If an in-place edit is still in progress during global destruction and -the process exit code (as stored in C<$?>) is zero, perl will now -treat the in-place edit as successful, replacing the input file with -any output produced. - -This allows code like: - - perl -i -ne 'print "Foo"; last' - -to replace the input file, while code like: - - perl -i -ne 'print "Foo"; die' - -will not. Partly resolves -L<[perl #133659]|https://rt.perl.org/Ticket/Display.html?id=133659>. - -=item * - -A regression in 5.28 caused the following code to fail - - close(STDIN); open(CHILD, "|wc -l")' - -because the child's stdin would be closed on exec. This has now been fixed. - -=item * - -Fixed an issue where compiling a regexp containing both compile-time -and run-time code blocks could lead to trying to compile something -which is invalid syntax. - -=item * - -Fixed build failures with C<< -DNO_LOCALE_NUMERIC >> and -C<< -DNO_LOCALE_COLLATE >>. -L<[perl #133696]|https://rt.perl.org/Ticket/Display.html?id=133696>. - -=item * - -Prevent the tests in F<< ext/B/t/strict.t >> from being skipped. -L<[perl #133713]|https://rt.perl.org/Ticket/Display.html?id=133713>. - -=item * - -C<< /di >> nodes ending or beginning in I<s> are now C<< EXACTF >>. We do not -want two C<< EXACTFU >> to be joined together during optimization, -and to form a C<< ss >>, C<< sS >>, C<< Ss >> or C<< SS >> sequence; -they are the only multi-character sequences which may match differently -under C<< /ui >> and C<< /di >>. - -=back - -=head1 Errata From Previous Releases - -=over 4 - -=item * - -The upper limit C<"n"> specifiable in a regular expression -quantifier of the form C<"{m,n}"> has been doubled to 65534. - -The meaning of an unbounded upper quantifier C<"{m,}"> remains unchanged. -It matches 2**31 - 1 times on most platforms, and more on ones where a C -language short variable is more than 4 bytes long. - -The text above is what perl5294delta should have said. Instead it said -"The maximum number of times a pattern can match has been doubled to 65535" -That statement was wrong. Try to forget you ever saw it. - -=back - -=head1 Acknowledgements - -Perl 5.29.6 represents approximately 4 weeks of development since Perl -5.29.5 and contains approximately 5,000 lines of changes across 230 files -from 19 authors. - -Excluding auto-generated files, documentation and release tools, there were -approximately 2,600 lines of changes to 150 .pm, .t, .c and .h files. - -Perl continues to flourish into its fourth decade thanks to a vibrant -community of users and developers. The following people are known to have -contributed the improvements that became Perl 5.29.6: - -Aaron Crane, Abigail, Dagfinn Ilmari Mannsåker, David Mitchell, Dominic -Hargreaves, E. Choroba, Eugen Konkov, H.Merijn Brand, James E Keenan, Jerry -D. Hedden, Karen Etheridge, Karl Williamson, Leon Timmermans, Niko Tyni, -Petr Písař, Sisyphus, Steve Hay, Tomasz Konojacki, Tony Cook. - -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 perl bug database -at L<https://rt.perl.org/>. There may also be information at -L<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 perlbug@perl.org 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 see -L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> -for details of how to report the issue. - -=head1 Give Thanks - -If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, -you can do so by running the C<perlthanks> program: - - perlthanks - -This will send an email to the Perl 5 Porters list with your show of thanks. - -=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 diff --git a/pod/perl5297delta.pod b/pod/perl5297delta.pod deleted file mode 100644 index 7c9b62c38b..0000000000 --- a/pod/perl5297delta.pod +++ /dev/null @@ -1,264 +0,0 @@ -=encoding utf8 - -=head1 NAME - -perl5297delta - what is new for perl v5.29.7 - -=head1 DESCRIPTION - -This document describes differences between the 5.29.6 release and the 5.29.7 -release. - -If you are upgrading from an earlier release such as 5.29.5, first read -L<perl5296delta>, which describes differences between 5.29.5 and 5.29.6. - -=head1 Deprecations - -=head2 In XS code, use of various macros dealing with UTF-8. - -This deprecation was scheduled to become fatal in 5.30, but has been -delayed to 5.32 due to problems that showed up with some CPAN modules. -For details of what's affected, see L<perldeprecation| -perldeprecation/In XS code, use of various macros dealing with UTF-8.>. - -=head1 Performance Enhancements - -=over 4 - -=item * - -A handful of small optimizations related to character folding -and character classes in regular expressions. - -=back - -=head1 Modules and Pragmata - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -L<Compress::Raw::Bzip2> has been upgraded from version 2.081 to 2.084. - -=item * - -L<Compress::Raw::Zlib> has been upgraded from version 2.081 to 2.084. - -=item * - -L<CPAN> has been upgraded from version 2.21 to 2.22. - -=item * - -L<DB_File> has been upgraded from version 1.842 to 1.843. - -=item * - -L<File::Find> has been upgraded from version 1.35 to 1.36. - -Variables C<< $Is_Win32 >> and C<< $Is_VMS >> are being initialized. - -=item * - -L<File::Spec> has been upgraded from version 3.76 to 3.77. - -=item * - -L<File::Temp> has been upgraded from version 0.2308 to 0.2309. - -=item * - -IO-Compress has been upgraded from version 2.081 to 2.084. - -Adds support for C<< IO::Uncompress::Zstd >> and -C<< IO::Uncompress::UnLzip >>. - -The C<< BinModeIn >> and C<< BinModeOut >> options are now no-ops. -ALL files will be read/written in binmode. - -=item * - -L<lib> has been upgraded from version 0.64 to 0.65. - -=item * - -L<Math::BigInt> has been upgraded from version 1.999813 to 1.999816. - -C<< bnok() >> now supports the full Kronenburg extension. -L<[cpan #95628]|https://rt.cpan.org/Ticket/Display.html?id=95628>. - -=item * - -L<Math::BigInt::FastCalc> has been upgraded from version 0.5007 to 0.5008. - -=item * - -L<Module::CoreList> has been upgraded from version 5.20181218 to 5.20190120. - -=item * - -L<Test::Simple> has been upgraded from version 1.302141 to 1.302160. - -=item * - -L<Unicode::Collate> has been upgraded from version 1.25 to 1.27. - -=back - -=head1 Documentation - -=head2 Changes to Existing Documentation - -We have attempted to update the documentation to reflect the changes -listed in this document. If you find any we have missed, send email -to L<perlbug@perl.org|mailto:perlbug@perl.org>. - -Additionally, the following selected changes have been made: - -=head3 L<perlvar> - -=over 4 - -=item * - -More specific documentation of paragraph mode. L<[perl #133722]|https://rt.perl.org/Ticket/Display.html?id=133722>. - -=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<Prototype not terminated|perldiag/"Prototype not terminated"> - -The file and line number is now reported for this error. -L<[perl #133524]|https://rt.perl.org/Ticket/Display.html?id=133524> - -=back - -=head1 Testing - -Tests were added and changed to reflect the other additions and -changes in this release. Furthermore, these significant changes were -made: - -=over 4 - -=item * - -Fix intermittent tests which failed due to race conditions which -surface during parallel testing. L<[perl #133740]|https://rt.perl.org/Ticket/Display.html?id=133740>. - -=item * - -Thoroughly test paragraph mode, using a new test file, -F<t/io/paragraph_mode.t>. L<[perl #133722]|https://rt.perl.org/Ticket/Display.html?id=133722>. - -=back - -=head1 Selected Bug Fixes - -=over 4 - -=item * - -Fixed a failure to match properly. - -An EXACTFish regnode has a finite length it can hold for the string -being matched. If that length is exceeded, a second node is used for -the next segment of the string, for as many regnodes as are needed. -Care has to be taken where to break the string, in order to deal -multi-character folds in Unicode correctly. If we want to break a -string at a place which could potentially be in the middle of a -multi-character fold, we back off one (or more) characters, leaving -a shorter EXACTFish regnode. This backing off mechanism contained -an off-by-one error. L<[perl #133756]|https://rt.perl.org/Ticket/Display.html?id=133756>. - -=item * - -A bare C<eof> call with no previous file handle now returns true. -L<[perl #133721]|https://rt.perl.org/Ticket/Display.html?id=133721> - -=item * - -Failing to compile a format now aborts compilation. Like other errors -in sub-parses this could leave the parser in a strange state, possibly -crashing perl if compilation continued. L<[perl #132158]|https://rt.perl.org/Ticket/Display.html?id=132158> - -=back - -=head1 Acknowledgements - -Perl 5.29.7 represents approximately 5 weeks of development since Perl -5.29.6 and contains approximately 97,000 lines of changes across 350 files -from 8 authors. - -Excluding auto-generated files, documentation and release tools, there were -approximately 27,000 lines of changes to 190 .pm, .t, .c and .h files. - -Perl continues to flourish into its fourth decade thanks to a vibrant -community of users and developers. The following people are known to have -contributed the improvements that became Perl 5.29.7: - -Abigail, Chris 'BinGOs' Williams, Eugen Konkov, Hauke D, James E Keenan, -Karl Williamson, Tomasz Konojacki, Tony Cook. - -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 perl bug database -at L<https://rt.perl.org/>. There may also be information at -L<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 perlbug@perl.org 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 see -L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> -for details of how to report the issue. - -=head1 Give Thanks - -If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, -you can do so by running the C<perlthanks> program: - - perlthanks - -This will send an email to the Perl 5 Porters list with your show of thanks. - -=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 diff --git a/pod/perl5298delta.pod b/pod/perl5298delta.pod deleted file mode 100644 index 74bc0f2232..0000000000 --- a/pod/perl5298delta.pod +++ /dev/null @@ -1,430 +0,0 @@ -=encoding utf8 - -=head1 NAME - -perl5298delta - what is new for perl v5.29.8 - -=head1 DESCRIPTION - -This document describes differences between the 5.29.7 release and the 5.29.8 -release. - -If you are upgrading from an earlier release such as 5.29.6, first read -L<perl5297delta>, which describes differences between 5.29.6 and 5.29.7. - -=head1 Notice - -sv_utf8_(downgrade|decode) are no longer marked as experimental [perl #133788] - -=head1 Core Enhancements - -=head2 Use faster method to convert to UTF-8 - -There is a special inline function that's used when converting a single -byte to UTF-8, that is faster than the more general one used prior to -this commit. - -=head2 Turkic UTF-8 locales are now seamlessly supported - -Turkic languages have different casing rules than other languages for -the characters C<"i"> and C<"I">. The uppercase of C<"i"> is LATIN -CAPITAL LETTER I WITH DOT ABOVE (U+0130); and the lowercase of C<"I"> is LATIN -SMALL LETTER DOTLESS I (U+0131). Unicode furnishes alternate casing -rules for use with Turkic languages. Previously, Perl ignored these, -but now, it uses them when it detects that it is operating under a -Turkic UTF-8 locale. - -=head2 Eliminate opASSIGN macro usage from core - -This macro is still defined but no longer used in core - -=head1 Incompatible Changes - -=head2 JSON::PP enable allow_nonref by default - -As JSON::XS 4.0 changed its policy and enabled allow_nonref -by default, JSON::PP also enabled allow_nonref by default. - -=head1 Performance Enhancements - -=over 4 - -Eliminate recursion from finalize_op() [perl #108276] - -=back - -=head1 Modules and Pragmata - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -L<B> has been upgraded from version 1.75 to 1.76. - -=item * - -L<deprecate> has been upgraded from version 0.03 to 0.04. - -=item * - -L<Devel::PPPort> has been upgraded from version 3.43 to 3.44. - -=item * - -L<Encode> has been upgraded from version 2.97 to 3.00. - -=item * - -L<ExtUtils::Miniperl> has been upgraded from version 1.08 to 1.09. - -=item * - -L<IO> has been upgraded from version 1.39 to 1.40. - -=item * - -L<JSON::PP> has been upgraded from version 2.97001 to 4.00. -JSON::PP as JSON::XS 4.0 enable allow_nonref by default - -=item * - -L<Module::CoreList> has been upgraded from version 5.20190120 to 5.20190220. - -Changes to B::Op_private and Config - -=item * - -L<Module::Load> has been upgraded from version 0.32 to 0.34. - -=item * - -L<Net::Ping> has been upgraded from version 2.62 to 2.71. - -=item * - -L<perlfaq> has been upgraded from version 5.20180915 to 5.20190126. - -=item * - -L<POSIX> has been upgraded from version 1.86 to 1.87. - -=item * - -L<Test::Simple> has been upgraded from version 1.302160 to 1.302162. - -=item * - -L<XS::APItest> has been upgraded from version 0.99 to 1.00. - -=back - -=head1 Documentation - -=head2 Changes to Existing Documentation - -We have attempted to update the documentation to reflect the changes -listed in this document. If you find any we have missed, send email -to L<perlbug@perl.org|mailto:perlbug@perl.org>. - -Additionally, the following selected changes have been made: - -=head3 L<perlfunc> - -=over 4 - -=item * - -Try to clarify that C<< ref(qr/xx/) >> returns C<Regexp> rather than -C<REGEXP> and why. [perl #133751] - -=back - -=head3 L<perllocale> - -=over 4 - -=item * - -There are actually two slightly different types of UTF-8 locales: one for Turkic -languages and one for everything else. Starting in Perl v5.30, Perl seamlessly -handles both types. - -=back - -=head3 L<perlrecharclass> - -=over 4 - -=item * - -Added a note for the ::xdigit:: character class. - -=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<Type of arg %d to %s must be %s (not %s)|perldiag/"Type of arg %d to %s must be %s (not %s)"> - -Attempts to push, pop, etc on a hash or glob now produce this message -rather than complaining that they no longer work on scalars. [perl -#130367] - -=back - -=head1 Configuration and Compilation - -=over 4 - -=item * - -Improve detection of memrchr, strlcat, and strlcpy - -=item * - -Improve Configure detection of memmem() [perl #133760]. - -=item * - -Fix -DPERL_GLOBAL_STRUCT_PRIVATE build option. - -=item * - -Multiple improvements and fixes for -DPERL_GLOBAL_STRUCT build option. - -=back - -=head1 Testing - -Tests were added and changed to reflect the other additions and -changes in this release. Furthermore, these significant changes were -made: - -=over 4 - -=item * - -t/lib/croak/op [perl #130367] - -separate error for push etc on hash/glob - -=item * - -t/op/svleak.t [perl #133660] - -add test for goto &sub in overload leaking - -=item * - -Split t/re/fold_grind.t into multiple test files - -=back - -=head2 Platform-Specific Notes - -=over 4 - -=item Windows - -socket() now sets C<$!> if the protocol, address family and socket -type combination is not found. [perl #133853] - -=back - -=head1 Internal Changes - -=over 4 - -=item * - -It is now forbidden to malloc more than C<PTRDIFF_T_MAX> bytes. Much -code (including C optimizers) assumes that all data structures will not -be larger than this, so this catches such attempts before overflow -happens. - -=back - -=head1 Selected Bug Fixes - -=over 4 - -=item * - -Regular expression matching no longer leaves stale UTF-8 length magic -when updating C<$^R>. This could result in C<length($^R)> returning -an incorrect value. - -=item * - -Fix a qr/[...]/ bug introduced in v5.29.7 - -Using /il should not result in looking for a [:posix:] class -that matches the code points given. - -=item * - -Reduce recursion on ops [perl #108276] - -This can prevent stack overflow when processing extremely deep op -trees. - -=item * - -Avoid leak in multiconcat with overloading. [perl #133789] - -=item * - -The handling of user-defined C<\p{}> properties (see -L<perlunicode/User-Defined Character Properties>) has been rewritten to -be in C (instead of Perl). This speeds things up, but in the process -several inconsistencies and bug fixes are made. - -=over - -=item 1 - -A few error messages have minor wording changes. This is essentially -because the new way is integrated into the regex error handling -mechanism that marks the position in the input at which the error -occurred. That was not possible previously. The messages now also -contain additional back-trace-like information in case the error occurs -deep in nested calls. - -=item 2 - -A user-defined property is implemented as a perl subroutine with certain -highly constrained naming conventions. It was documented previously -that the sub would be in the current package if the package was -unspecified. This turned out not to be true in all cases, but now it -is. - -=item 3 - -All recursive calls are treated as infinite recursion. Previously they -would cause the interpreter to panic. Now, they cause the regex pattern -to fail to compile. - -=item 4 - -Similarly, any other error likely would lead to a panic; now to just the -pattern failing to compile. - -=item 5 - -The old mechanism did not detect illegal ranges in the definition of the -property. Now, the range max must not be smaller than the range min. -Otherwise, the pattern fails to compile. - -=item 6 - -The intention was to have each sub called only once during the lifetime -of the program, so that a property's definition is immutable. This was -relaxed so that it could be called once for all /i compilations, and -potentially a second time for non-/i (the sub is passed a parameter -indicating which). However, in practice there were instances when this -was broken, and multiple calls were possible. Those have been fixed. -Now (besides the /i,non-/i cases) the only way a sub can be called -multiple times is if some component of it has not been defined yet. For -example, suppose we have sub IsA() whose definition is known at compile -time, and it in turn calls isB() whose definition is not yet known. -isA() will be called each time a pattern it appears in is compiled. If -isA() also calls isC() and that definition is known, isC() will be -called just once. - -=item 7 - -There were some races and very long hangs should one thread be compiling -the same property as another simultaneously. These have now been fixed. - -=back - -=item * Assertion failure in compiling invalid regex pattern [perl #133767] - -This bug was introduced in the 5.29 series, so this should not be in the -perldelta for 5.30. - -=item * Null pointer deref [perl #133770] - -This bug was introduced in the 5.29 series, so this should not be in the -perldelta for 5.30. - -=back - -=head1 Acknowledgements - -Perl 5.29.8 represents approximately 5 weeks of development since Perl -5.29.7 and contains approximately 13,000 lines of changes across 290 files -from 18 authors. - -Excluding auto-generated files, documentation and release tools, there were -approximately 9,500 lines of changes to 210 .pm, .t, .c and .h files. - -Perl continues to flourish into its fourth decade thanks to a vibrant -community of users and developers. The following people are known to have -contributed the improvements that became Perl 5.29.8: - -Abigail, Andreas König, Andy Dougherty, Aristotle Pagaltzis, Chris 'BinGOs' -Williams, Dagfinn Ilmari Mannsåker, Dan Kogai, David Mitchell, Jakub Wilk, -James E Keenan, Karen Etheridge, Karl Williamson, Nicolas R., Pali, Sawyer -X, Shlomi Fish, Tomasz Konojacki, Tony Cook. - -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 perl bug database -at L<https://rt.perl.org/>. There may also be information at -L<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 perlbug@perl.org to be analyzed 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 see -L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> -for details of how to report the issue. - -=head1 Give Thanks - -If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, -you can do so by running the C<perlthanks> program: - - perlthanks - -This will send an email to the Perl 5 Porters list with your show of thanks. - -=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 diff --git a/pod/perl5299delta.pod b/pod/perl5299delta.pod deleted file mode 100644 index 8cd5ae2ebc..0000000000 --- a/pod/perl5299delta.pod +++ /dev/null @@ -1,274 +0,0 @@ -=encoding utf8 - -=head1 NAME - -perl5299delta - what is new for perl v5.29.9 - -=head1 DESCRIPTION - -This document describes differences between the 5.29.8 release and the 5.29.9 -release. - -If you are upgrading from an earlier release such as 5.29.7, first read -L<perl5298delta>, which describes differences between 5.29.7 and 5.29.8. - -=head1 Core Enhancements - -=head2 Wildcards in Unicode property value specifications are now -partially supported - -You can now do something like this in a regular expression pattern - - qr! \p{nv= /(?x) \A [0-5] \z / }! - -which matches all Unicode code points which have numeric value is -between 0 and 5 inclusive. - -This marks another step in implementing the regular expression features -the Unicode Consortium suggests. - -Most properties are supported, with the remainder planned for 5.32. -Details are in L<perlunicode/Wildcards in Property Values>. - -=head2 qr'\N{name}' is now supported - -Previously it was an error to evaluate a named character C<\N{...}> -within a single quoted regular expression pattern (whose evaluation is -deferred from the normal place). This restriction is now removed. - -=head2 Unicode 12.0 is supported - -For details, see L<https://www.unicode.org/versions/Unicode12.0.0/>. - -Because of a change in Unicode release cycles, Perl jumps from Unicode -10.0 in Perl 5.28 to Unicode 12.0 in Perl 5.30. - -=head2 It is now possible to compile perl to always use thread-safe -locale operations. - -Previously, these calls were only used when the perl was compiled to be -multi-threaded. To always enable them, add - - -Accflags='-DUSE_THREAD_SAFE_LOCALE' - -to your F<Configure> flags. - -=head2 Limited variable length lookbehind in regular expression pattern matching -is now experimentally supported - -Using a lookbehind assertion (like C<(?<=foo?)> or C<(?<!ba{1,9}r)> previously -would generate an error and refuse to compile. Now it compiles (if the -maximum lookbehind is at most 255 characters), but raises a warning in -the new C<experimental::vlb> warnings category. This is to caution you -that the precise behavior is subject to change based on feedback from -use in the field. - -See L<perlre/(?<=pattern)> and L<perlre/(?<!pattern)>. - -=head1 Incompatible Changes - -=head2 C<pack()> no longer can return malformed UTF-8 - -It croaks if it would otherwise return a UTF-8 string that contains -malformed UTF-8. This protects agains potential security threats. This -is considered a bug fix as well ([perl #131642]). - -=head2 Any set of digits in the Common script are legal in a script run -of another script - -There are several sets of digits in the Common script. C<[0-9]> is the -most familiar. But there are also C<[\x{FF10}-\x{FF19}]> (FULLWIDTH -DIGIT ZERO - FULLWIDTH DIGIT NINE), and several sets for use in -mathematical notation, such as the MATHEMATICAL DOUBLE-STRUCK DIGITs. -Any of these sets should be able to appear in script runs of, say, -Greek. But the design of 5.30 overlooked all but the ASCII digits -C<[0-9]>, so the design was flawed. This has been fixed, so is both a -bug fix and an incompatibility. [perl #133547] - -All digits in a run still have to come from the same set of ten digits. - -=head1 Modules and Pragmata - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -L<Devel::PPPort> has been upgraded from version 3.44 to 3.45. - -=item * - -L<Encode> has been upgraded from version 3.00 to 3.01. - -=item * - -L<ExtUtils::Manifest> has been upgraded from version 1.71 to 1.72. - -=item * - -L<JSON::PP> has been upgraded from version 4.00 to 4.02. - -=item * - -L<Module::CoreList> has been upgraded from version 5.20190220 to 5.20190320. - -=item * - -L<perl5db.pl> has been upgraded from version 1.54 to 1.55. - -Debugging threaded code no longer deadlocks in C<DB::sub> nor -C<DB::lsub>. - -=item * - -L<PerlIO::encoding> has been upgraded from version 0.26 to 0.27. - -Warnings enabled by setting the C<WARN_ON_ERR> flag in -C<$PerlIO::encoding::fallback> are now only produced if warnings are -enabled with C<use warnings "utf8";> or setting C<$^W>. - -=item * - -L<threads::shared> has been upgraded from version 1.59 to 1.60. - -Added support for extra tracing of locking, this requires a -C<-DDEBUGGING> and extra compilation flags. - -=item * - -L<utf8> has been upgraded from version 1.21 to 1.22. - -=item * - -L<warnings> has been upgraded from version 1.43 to 1.44. - -=item * - -L<ExtUtils::CBuilder> has been upgraded from version 0.280230 to 0.280231. - -=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 * - -Specifying C<\o{}> without anything between the braces now yields the -fatal error message "Empty \o{}". Previously it was "Number with no -digits". This means the same wording is used for this kind of error as -with similar constructs such as C<\p{}>. - -=item * - -Within the scope of the experimental feature C<use re 'strict'>, -specifying C<\x{}> without anything between the braces now yields the -fatal error message "Empty \x{}". Previously it was "Number with no -digits". This means the same wording is used for this kind of error as -with similar constructs such as C<\p{}>. It is legal, though not wise -to have an empty C<\x> outside of C<re 'strict'>; it silently generates -a NUL character. - -=back - -=head1 Internal Changes - -=over 4 - -=item * - -Added C<newSVsv_nomg()> to copy a SV without processing get magic on -the source. [perl #132964] - -=back - -=head1 Selected Bug Fixes - -=over 4 - -=item * - -C<pack()> no longer can return malformed UTF-8. It croaks if it would -otherwise return a UTF-8 string that contains malformed UTF-8. This -protects agains potential security threats. [perl #131642] - -=item * - -See L</Any set of digits in the Common script are legal in a script run -of another script>. - -=back - -=head1 Acknowledgements - -Perl 5.29.9 represents approximately 4 weeks of development since Perl -5.29.8 and contains approximately 47,000 lines of changes across 210 files -from 11 authors. - -Excluding auto-generated files, documentation and release tools, there were -approximately 38,000 lines of changes to 71 .pm, .t, .c and .h files. - -Perl continues to flourish into its fourth decade thanks to a vibrant -community of users and developers. The following people are known to have -contributed the improvements that became Perl 5.29.9: - -Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn Ilmari Mannsåker, Dan -Kogai, David Mitchell, Karen Etheridge, Karl Williamson, Nicolas R., Pali, -Tony Cook, Unicode Consortium. - -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 perl bug database -at L<https://rt.perl.org/>. There may also be information at -L<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 perlbug@perl.org 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 see -L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> -for details of how to report the issue. - -=head1 Give Thanks - -If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, -you can do so by running the C<perlthanks> program: - - perlthanks - -This will send an email to the Perl 5 Porters list with your show of thanks. - -=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 diff --git a/pod/perl5300delta.pod b/pod/perl5300delta.pod new file mode 120000 index 0000000000..bb639d3f2b --- /dev/null +++ b/pod/perl5300delta.pod @@ -0,0 +1 @@ +perldelta.pod
\ No newline at end of file diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 4e12309088..9e31335ed8 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -2,56 +2,684 @@ =head1 NAME -[ this is a template for a new perldelta file. Any text flagged as XXX needs -to be processed before release. ] - -perldelta - what is new for perl v5.29.11 +perldelta - what is new for perl v5.30.0 =head1 DESCRIPTION -This document describes differences between the 5.29.10 release and the 5.29.11 +This document describes differences between the 5.28.0 release and the 5.30.0 release. -If you are upgrading from an earlier release such as 5.29.9, first read -L<perl52910delta>, which describes differences between 5.29.9 and 5.29.10. +If you are upgrading from an earlier release such as 5.26.0, first read +L<perl5280delta>, which describes differences between 5.26.0 and 5.28.0. =head1 Notice -XXX Any important notices here +sv_utf8_(downgrade|decode) are no longer marked as experimental [perl #133788] =head1 Core Enhancements -XXX New core language features go here. Summarize user-visible core language -enhancements. Particularly prominent performance optimisations could go -here, but most should go in the L</Performance Enhancements> section. +=head2 Unicode 11.0 is supported + +For details, see L<https://www.unicode.org/versions/Unicode11.0.0/>. + +The Word_Break property, as in past Perl releases, remains tailored to +behave more in line with expectations of Perl users. This means that +sequential runs of horizontal white space characters are not broken +apart, but kept as a single run. Unicode 11 changed from past versions +to be more in line with Perl, but it left several white space characters +as causing breaks: TAB, NO BREAK SPACE, and FIGURE SPACE (U+2007). We +have decided to continue to use the previous Perl tailoring with regards +to these. + +As of July 2018, another aspect of Unicode 11.0 is causing problems, and +that is the changing the Georgian script to have both lower and +uppercase letters. It turns out that many devices do not have fonts +installed that can display the new uppercase letters, and people using +Georgian are finding their text more or less illegible. It is being +suggested that implementations delay their adoption of this portion of +11.0. + +But since the next stable release of Perl is almost a year away, this +aspect of 11.0 is being left in, with the option to back it out if +things haven't improved by that time, or if we get too many complaints +about the development release being unusable for Georgian users. + +=head2 The upper limit C<"n"> specifiable in a regular expression +quantifier of the form C<"{m,n}"> has been doubled to 65534 + +The meaning of an unbounded upper quantifier C<"{m,}"> remains unchanged. +It matches 2**31 - 1 times on most platforms, and more on ones where a C +language short variable is more than 4 bytes long. + +=head2 Unicode 12.0 is supported + +For details, see L<https://www.unicode.org/versions/Unicode12.0.0/>. + +Because of a change in Unicode release cycles, Perl jumps from Unicode +10.0 in Perl 5.28 to Unicode 12.0 in Perl 5.30. + +=head2 Perl now supports draft Unicode 12.1 + +Unicode 12.1 differs from 12.0 only in the addition of a single +character, that for the new Japanese era name. The intent is to ship +Perl 5.30 with Unicode 12.1. The final release of 12.1 is scheduled for +May 7, 2019. Hopefully, there won't be any code changes to the draft +after the release of Perl 5.29.10. + +=head2 Wildcards in Unicode property value specifications are now +partially supported + +You can now do something like this in a regular expression pattern + + qr! \p{nv= /(?x) \A [0-5] \z / }! + +which matches all Unicode code points which have numeric value is +between 0 and 5 inclusive. + +This marks another step in implementing the regular expression features +the Unicode Consortium suggests. + +Most properties are supported, with the remainder planned for 5.32. +Details are in L<perlunicode/Wildcards in Property Values>. + +=head2 qr'\N{name}' is now supported -[ List each enhancement as a =head2 entry ] +Previously it was an error to evaluate a named character C<\N{...}> +within a single quoted regular expression pattern (whose evaluation is +deferred from the normal place). This restriction is now removed. -=head1 Security +=head2 It is now possible to compile perl to always use thread-safe +locale operations. -XXX Any security-related notices go here. In particular, any security -vulnerabilities closed should be noted here rather than in the -L</Selected Bug Fixes> section. +Previously, these calls were only used when the perl was compiled to be +multi-threaded. To always enable them, add -[ List each security issue as a =head2 entry ] + -Accflags='-DUSE_THREAD_SAFE_LOCALE' + +to your F<Configure> flags. + +=head2 Limited variable length lookbehind in regular expression pattern matching +is now experimentally supported + +Using a lookbehind assertion (like C<(?<=foo?)> or C<(?<!ba{1,9}r)> previously +would generate an error and refuse to compile. Now it compiles (if the +maximum lookbehind is at most 255 characters), but raises a warning in +the new C<experimental::vlb> warnings category. This is to caution you +that the precise behavior is subject to change based on feedback from +use in the field. + +See L<perlre/(?<=pattern)> and L<perlre/(?<!pattern)>. + +=head2 Use faster method to convert to UTF-8 + +There is a special inline function that's used when converting a single +byte to UTF-8, that is faster than the more general one used prior to +this commit. + +=head2 Turkic UTF-8 locales are now seamlessly supported + +Turkic languages have different casing rules than other languages for +the characters C<"i"> and C<"I">. The uppercase of C<"i"> is LATIN +CAPITAL LETTER I WITH DOT ABOVE (U+0130); and the lowercase of C<"I"> is LATIN +SMALL LETTER DOTLESS I (U+0131). Unicode furnishes alternate casing +rules for use with Turkic languages. Previously, Perl ignored these, +but now, it uses them when it detects that it is operating under a +Turkic UTF-8 locale. + +=head2 Eliminate opASSIGN macro usage from core + +This macro is still defined but no longer used in core + +=head2 C<-Drv> now means something on C<-DDEBUGGING> builds + +Now, adding the verbose flag (C<-Dv>) to the C<-Dr> flag turns on all +possible regular expression debugging. =head1 Incompatible Changes -XXX For a release on a stable branch, this section aspires to be: +=head2 Pattern delimiters now must be graphemes + +This usage has been deprecated and scheduled for removal in 5.30. See +L<perldeprecation/Use of unassigned code point or non-standalone +grapheme for a delimiter.> + +=head2 Delimiters must now be graphemes + +See L<perldeprecation/Use of unassigned code point or non-standalone grapheme +for a delimiter.> + +=head2 Some formerly deprecated uses of an unescaped left brace C<"{"> in +regular expression patterns are now illegal + +But to avoid breaking code unnecessarily, most instances that issued a +deprecation warning, remain legal and now have a non-deprecation warning +raised. See L<perldeprecation/Unescaped left braces in regular expressions>. + +=head2 Assigning non-zero to C<$[> is fatal - There are no changes intentionally incompatible with 5.XXX.XXX - If any exist, they are bugs, and we request that you submit a - report. See L</Reporting Bugs> below. +Setting L<< C<$[>|perlvar/$[ >> to a non-zero value has been deprecated since +Perl 5.12 and now throws a fatal error. +See L<<< perldeprecation/Assigning non-zero to C<< $[ >> is fatal >>>. -[ List each incompatible change as a =head2 entry ] +=head2 Previously deprecated sysread()/syswrite() on :utf8 handles now fatal + +Calling sysread(), syswrite(), send() or recv() on a C<:utf8> handle, +whether applied explicitly or implicitly, is now fatal. This was +deprecated in perl 5.24. + +There were two problems with calling these functions on C<:utf8> +handles: + +=over + +=item * + +All four functions only paid attention to the C<:utf8> flag. Other +layers were completely ignored, so a handle with +C<:encoding(UTF-16LE)> layer would be treated as UTF-8. Other layers, +such as compression are completely ignored with or without the +C<:utf8> flag. + +=item * + +sysread() and recv() would read from the handle, skipping any +validation by the layers, and do no validation of their own. This +could lead to invalidly encoded perl scalars. + +=back + +[perl #125760] + +=head2 my() in false conditional prohibited + +Declarations such as C<my $x if 0> are no longer permitted. + +[perl #133543] + +=head2 Fatalize $* and $# + +These special variables, long deprecated, now throw exceptions when used. + +[perl #133583] + +=head2 Fatalize unqualified use of dump() + +The C<dump()> function, long discouraged, may no longer be used unless it is +fully qualified, I<i.e.>, C<CORE::dump()>. + +[perl #133584] + +=head2 Remove File::Glob::glob() + +The C<File::Glob::glob()> function, long deprecated, has been removed and now +throws an exception which advises use of C<File::Glob::bsd_glob()> instead. + +[perl #133586] + +=head2 C<pack()> no longer can return malformed UTF-8 + +It croaks if it would otherwise return a UTF-8 string that contains +malformed UTF-8. This protects agains potential security threats. This +is considered a bug fix as well ([perl #131642]). + +=head2 Any set of digits in the Common script are legal in a script run +of another script + +There are several sets of digits in the Common script. C<[0-9]> is the +most familiar. But there are also C<[\x{FF10}-\x{FF19}]> (FULLWIDTH +DIGIT ZERO - FULLWIDTH DIGIT NINE), and several sets for use in +mathematical notation, such as the MATHEMATICAL DOUBLE-STRUCK DIGITs. +Any of these sets should be able to appear in script runs of, say, +Greek. But the design of 5.30 overlooked all but the ASCII digits +C<[0-9]>, so the design was flawed. This has been fixed, so is both a +bug fix and an incompatibility. [perl #133547] + +All digits in a run still have to come from the same set of ten digits. + +=head2 JSON::PP enable allow_nonref by default + +As JSON::XS 4.0 changed its policy and enabled allow_nonref +by default, JSON::PP also enabled allow_nonref by default. =head1 Deprecations -XXX Any deprecated features, syntax, modules etc. should be listed here. +=head2 In XS code, use of various macros dealing with UTF-8. + +This deprecation was scheduled to become fatal in 5.30, but has been +delayed to 5.32 due to problems that showed up with some CPAN modules. +For details of what's affected, see L<perldeprecation| +perldeprecation/In XS code, use of various macros dealing with UTF-8.>. + +=head1 Performance Enhancements + +=over 4 + +=item * + +Translating from UTF-8 into the code point it represents now is done via a +deterministic finite automaton, speeding it up. As a typical example, +C<ord("\x7fff")> now requires 12% fewer instructions than before. The +performance of checking that a sequence of bytes is valid UTF-8 is similarly +improved, again by using a dfa. + +Eliminate recursion from finalize_op() [perl #108276] + +=item * + +A handful of small optimizations related to character folding +and character classes in regular expressions. + +=item * + +Optimization of C<IV> to C<UV> conversions. +L<[perl #133677]|https://rt.perl.org/Ticket/Display.html?id=133677>. + +=item * + +Speed up of the integer stringification algorithm by processing +two digits at a time instead of one. +L<[perl #133691]|https://rt.perl.org/Ticket/Display.html?id=133691>. + +=item * + +Improvements based on LGTM analysis and recommendation. +(L<https://lgtm.com/projects/g/Perl/perl5/alerts/?mode=tree>). +L<[perl #133686]|https://rt.perl.org/Ticket/Display.html?id=133686>. +L<[perl #133699]|https://rt.perl.org/Ticket/Display.html?id=133699>. + +=item * + +Code optimizations in F<regcomp.c>, F<regcomp.h>, F<regexec.c>. + +=item * + +Regular expression pattern matching of things like C<qr/[^I<a>]/> is +significantly sped up, where I<a> is any ASCII character. Which classes +will get this speed up is complicated and depends on the underlying bit +patterns of those characters, so differs between ASCII and EBCDIC +platforms, but all case pairs, like C<qr/[Gg]/> are included, as is +C<[^01]>. + +=back + +=head1 Modules and Pragmata + +=head2 Updated Modules and Pragmata + +=over 4 + +=item * + +L<Archive::Tar> has been upgraded from version 2.30 to 2.32. + +=item * + +L<B> has been upgraded from version 1.74 to 1.76. + +=item * + +L<B::Concise> has been upgraded from version 1.003 to 1.004. + +=item * + +L<B::Deparse> has been upgraded from version 1.48 to 1.49. + +=item * + +L<bignum> has been upgraded from version 0.49 to 0.51. + +=item * + +L<bytes> has been upgraded from version 1.06 to 1.07. + +=item * + +L<Carp> has been upgraded from version 1.38 to 1.50 + +=item * + +L<Compress::Raw::Bzip2> has been upgraded from version 2.074 to 2.084. + +=item * + +L<Compress::Raw::Zlib> has been upgraded from version 2.076 to 2.084. + +=item * + +L<Config::Extensions> has been upgraded from version 0.02 to 0.03. + +=item * + +L<Config::Perl::V> has been upgraded from version 0.29 to 0.32. + +=item * + +L<Config::Perl::V>. has been upgraded from version 0.30 to 0.32. This was due +to a new configuration variable that has influence on binary compatibility: +C<USE_THREAD_SAFE_LOCALE>. + +=item * + +L<CPAN> has been upgraded from version 2.20 to 2.22. + +=item * + +L<Data::Dumper> has been upgraded from version 2.170 to 2.174 + +L<Data::Dumper> now avoids leak when C<croak>ing. + +=item * + +L<DB_File> has been upgraded from version 1.840 to 1.843. + +=item * + +L<deprecate> has been upgraded from version 0.03 to 0.04. + +=item * + +L<Devel::Peek> has been upgraded from version 1.27 to 1.28. + +=item * + +L<Devel::PPPort> has been upgraded from version 3.40 to 3.51. + +=item * + +L<Digest::SHA> has been upgraded from version 6.01 to 6.02. + +=item * + +L<Encode> has been upgraded from version 2.97 to 3.01. + +=item * + +L<Errno> has been upgraded from version 1.29 to 1.30. + +=item * + +L<experimental> has been upgraded from version 0.019 to 0.020. + +=item * + +L<ExtUtils::CBuilder> has been upgraded from version 0.280230 to 0.280231. + +=item * + +L<ExtUtils::Manifest> has been upgraded from version 1.70 to 1.72. + +=item * + +L<ExtUtils::Miniperl> has been upgraded from version 1.08 to 1.09. + +=item * + +L<ExtUtils::ParseXS> has been upgraded from version 3.39 to 3.40. +C<OUTLIST> parameters are no longer incorrectly included in the +automatically generated function prototype. +L<[perl #133654]|https://rt.perl.org/Ticket/Display.html?id=133654>. + +=item * + +L<feature> has been upgraded from version 1.52 to 1.54. + +=item * + +L<File::Copy> has been upgraded from version 2.33 to 2.34. + +=item * + +L<File::Find> has been upgraded from version 1.34 to 1.36. + +C<$File::Find::dont_use_nlink> now defaults to 1 on all +platforms. +L<[perl #133673]|https://rt.perl.org/Ticket/Display.html?id=133673>. + +Variables C<< $Is_Win32 >> and C<< $Is_VMS >> are being initialized. + +=item * + +L<File::Glob> has been upgraded from version 1.31 to 1.32. + +=item * + +L<File::Path> has been upgraded from version 2.15 to 2.16. + +=item * + +L<File::Spec> has been upgraded from version 3.74 to 3.78. + +Silence L<Cwd> warning on Android builds if C<targetsh> is not defined. + +=item * + +L<File::Temp> has been upgraded from version 0.2304 to 0.2309. + +=item * + +L<Filter::Util::Call> has been upgraded from version 1.58 to 1.59. + +=item * + +L<GDBM_File> has been upgraded from version 1.17 to 1.18. + +=item * + +L<HTTP::Tiny> has been upgraded from version 0.070 to 0.076. + +=item * + +L<I18N::Langinfo> has been upgraded from version 0.17 to 0.18. + +=item * + +L<IO> has been upgraded from version 1.39 to 1.40. + +=item * + +IO-Compress has been upgraded from version 2.074 to 2.084. + +Adds support for C<< IO::Uncompress::Zstd >> and +C<< IO::Uncompress::UnLzip >>. + +The C<< BinModeIn >> and C<< BinModeOut >> options are now no-ops. +ALL files will be read/written in binmode. + +=item * + +L<IPC::Cmd> has been upgraded from version 1.00 to 1.02. + +=item * + +L<JSON::PP> has been upgraded from version 2.97001 to 4.02. + +L<JSON::PP> as JSON::XS 4.0 enable C<allow_nonref> by default. + +=item * + +L<lib> has been upgraded from version 0.64 to 0.65. + +=item * + +L<Locale::Codes> has been upgraded from version 3.56 to 3.57. + +=item * + +L<Math::BigInt> has been upgraded from version 1.999811 to 1.999816. + +C<< bnok() >> now supports the full Kronenburg extension. +L<[cpan #95628]|https://rt.cpan.org/Ticket/Display.html?id=95628>. + +=item * + +L<Math::BigInt::FastCalc> has been upgraded from version 0.5006 to 0.5008. + +=item * + +L<Math::BigRat> has been upgraded from version 0.2613 to 0.2614. + +=item * + +L<Module::CoreList> has been upgraded from version 5.20180622 to 5.20190520. + +Changes to B::Op_private and Config + +=item * + +L<Module::Load> has been upgraded from version 0.32 to 0.34. + +=item * + +L<Module::Metadata> has been upgraded from version 1.000033 to 1.000036. + +Properly clean up temporary directories after testing. + +=item * + +L<NDBM_File> has been upgraded from version 1.14 to 1.15. + +=item * + +L<Net::Ping> has been upgraded from version 2.62 to 2.71. + +=item * + +L<ODBM_File> has been upgraded from version 1.15 to 1.16. + +=item * + +PathTools has been upgraded from version 3.74 to 3.78. + +=item * + +L<parent> has been upgraded from version 0.236 to 0.237. + +=item * + +L<perl5db.pl> has been upgraded from version 1.54 to 1.55. + +Debugging threaded code no longer deadlocks in C<DB::sub> nor +C<DB::lsub>. + +=item * + +L<perlfaq> has been upgraded from version 5.021011 to 5.20190126. + +=item * + +L<PerlIO::encoding> has been upgraded from version 0.26 to 0.27. + +Warnings enabled by setting the C<WARN_ON_ERR> flag in +C<$PerlIO::encoding::fallback> are now only produced if warnings are +enabled with C<use warnings "utf8";> or setting C<$^W>. + +=item * + +L<PerlIO::scalar> has been upgraded from version 0.29 to 0.30. + +=item * + +podlators has been upgraded from version 4.10 to 4.11. -=head2 Module removals +=item * + +L<POSIX> has been upgraded from version 1.84 to 1.88. + +=item * + +L<re> has been upgraded from version 0.36 to 0.37. + +=item * + +L<SDBM_File> has been upgraded from version 1.14 to 1.15. + +=item * + +L<sigtrap> has been upgraded from version 1.08 to 1.09. + +=item * + +L<Storable> has been upgraded from version 3.08 to 3.15. + +Storable no longer probes for recursion limits at build time. +L<[perl #133708]|https://rt.perl.org/Ticket/Display.html?id=133708> +and others. + +Metasploit exploit code was included to test for CVE-2015-1992 +detection, this caused anti-virus detections on at least one AV suite. +The exploit code has been removed and replaced with a simple +functional test. +L<[perl #133706]|https://rt.perl.org/Ticket/Display.html?id=133706> + +=item * + +L<Test::Simple> has been upgraded from version 1.302133 to 1.302162. + +=item * + +L<Thread::Queue> has been upgraded from version 3.12 to 3.13. + +=item * + +L<threads::shared> has been upgraded from version 1.58 to 1.60. + +Added support for extra tracing of locking, this requires a +C<-DDEBUGGING> and extra compilation flags. + +=item * + +L<Time::HiRes> has been upgraded from version 1.9759 to 1.9760. + +=item * + +L<Time::Local> has been upgraded from version 1.25 to 1.28. + +=item * + +L<Time::Piece> has been upgraded from version 1.3204 to 1.33. + +=item * -XXX Remove this section if not applicable. +L<Unicode::Collate> has been upgraded from version 1.25 to 1.27. + +=item * + +L<Unicode::UCD> has been upgraded from version 0.70 to 0.72. + +=item * + +L<User::grent> has been upgraded from version 1.02 to 1.03. + +=item * + +L<utf8> has been upgraded from version 1.21 to 1.22. + +=item * + +L<vars> has been upgraded from version 1.04 to 1.05. + +C<vars.pm> no longer disables non-vars strict when checking if strict +vars is enabled. [perl #130674] + +=item * + +L<version> has been upgraded from version 0.9923 to 0.9924. + +=item * + +L<warnings> has been upgraded from version 1.42 to 1.44. + +=item * + +L<XS::APItest> has been upgraded from version 0.98 to 1.00. + +=item * + +L<XS::Typemap> has been upgraded from version 0.16 to 0.17. + +=back + +=head2 Removed Modules and Pragmata The following modules will be removed from the core distribution in a future release, and will at that time need to be installed from CPAN. @@ -67,118 +695,125 @@ to continue to use. Their disinclusion from core primarily hinges on their necessity to bootstrapping a fully functional, CPAN-capable Perl installation, not usually on concerns over their design. -=over +=over 4 -=item XXX +=item * -XXX Note that deprecated modules should be listed here even if they are listed -as an updated module in the L</Modules and Pragmata> section. +B::Debug is no longer distributed with the core distribution. It remains +available on CPAN. + +=item * + +C<Locale::Codes> has been removed at the request of its author. It +continues to be available on CPAN C<L<Locale::Codes>>. [perl #133458]. =back -[ List each other deprecation as a =head2 entry ] +=head1 Documentation -=head1 Performance Enhancements +=head2 Changes to Existing Documentation -XXX Changes which enhance performance without changing behaviour go here. -There may well be none in a stable release. +We have attempted to update the documentation to reflect the changes +listed in this document. If you find any we have missed, send email +to L<perlbug@perl.org|mailto:perlbug@perl.org>. -[ List each enhancement as an =item entry ] +=head3 L<perlapi> =over 4 =item * -XXX +C<AvFILL()> was wrongly listed as deprecated. This has been corrected. +L<[perl #133278]|https://rt.perl.org/Ticket/Display.html?id=133278> =back -=head1 Modules and Pragmata +=head3 L<perlop> -XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/> -go here. If Module::CoreList is updated, generate an initial draft of the -following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary -for important changes should then be added by hand. In an ideal world, -dual-life modules would have a F<Changes> file that could be cribbed. +=over 4 -The list of new and updated modules is modified automatically as part of -preparing a Perl release, so the only reason to manually add entries here is if -you're summarising the important changes in the module update. (Also, if the -manually-added details don't match the automatically-generated ones, the -release manager will have to investigate the situation carefully.) +=item * -[ Within each section, list entries as an =item entry ] +We no longer have null (empty line) here doc terminators, so +L<perlop> should not refer to them. -=head2 New Modules and Pragmata +=item * + +The behaviour of C<tr> when the delimiter is an apostrophe has been clarified. +In particular, hyphens aren't special, and C<\x{}> isn't interpolated. +L<[perl #130679]|https://rt.perl.org/Ticket/Display.html?id=130679> + +=back + +=head3 L<perlreapi>, L<perlvar> =over 4 =item * -XXX Remove this section if not applicable. +Improve docs for lastparen, lastcloseparen. =back -=head2 Updated Modules and Pragmata +=head3 L<perlfunc> =over 4 =item * -L<XXX> has been upgraded from version A.xx to B.yy. - -If there was something important to note about this change, include that here. +The entry for L<perlfunc/-X> has been clarified to indicate that symbolic +links are followed for most tests. =item * -L<Module::CoreList> has been upgraded from version 5.20190420 to 5.20190520. +Clarification of behaviour of C<reset EXPR>. -L<Devel::PPPort> has been upgraded from version 3.45 to 3.46. +=item * + +Try to clarify that C<< ref(qr/xx/) >> returns C<Regexp> rather than +C<REGEXP> and why. [perl #133751] =back -=head2 Removed Modules and Pragmata +=head3 L<perlreref> =over 4 =item * -XXX +Clarification of the syntax of /(?(cond)yes)/. =back -=head1 Documentation +=head3 L<perllocale> -XXX Changes to files in F<pod/> go here. Consider grouping entries by -file and be sure to link to the appropriate page, e.g. L<perlfunc>. +=over 4 -=head2 New Documentation +=item * -XXX Changes which create B<new> files in F<pod/> go here. +There are actually two slightly different types of UTF-8 locales: one for Turkic +languages and one for everything else. Starting in Perl v5.30, Perl seamlessly +handles both types. -=head3 L<XXX> +=back -XXX Description of the purpose of the new file here +=head3 L<perlrecharclass> -=head2 Changes to Existing Documentation +=over 4 -We have attempted to update the documentation to reflect the changes -listed in this document. If you find any we have missed, send email -to L<perlbug@perl.org|mailto:perlbug@perl.org>. +=item * -XXX Changes which significantly change existing files in F<pod/> go here. -However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics> -section. +Added a note for the ::xdigit:: character class. -Additionally, the following selected changes have been made: +=back -=head3 L<XXX> +=head3 L<perlvar> =over 4 =item * -XXX Description of the change here +More specific documentation of paragraph mode. L<[perl #133722]|https://rt.perl.org/Ticket/Display.html?id=133722>. =back @@ -188,184 +823,352 @@ 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>. -XXX New or changed warnings emitted by the core's C<C> code go here. Also -include any changes in L<perldiag> that reconcile it to the C<C> code. +=head2 Changes to Existing Diagnostics -=head2 New Diagnostics +=over 4 -XXX Newly added diagnostic messages go under here, separated into New Errors -and New Warnings +=item * -=head3 New Errors +As noted under L<Incompatible Changes> above, the deprecation warning +"Unescaped left brace in regex is deprecated here (and will be fatal in Perl +5.30), passed through in regex; marked by S<<-- HERE> in m/%s/" has been +changed to the non-deprecation warning "Unescaped left brace in regex is passed +through in regex; marked by S<<-- HERE> in m/%s/". -=over 4 +=item * + +Specifying C<\o{}> without anything between the braces now yields the +fatal error message "Empty \o{}". Previously it was "Number with no +digits". This means the same wording is used for this kind of error as +with similar constructs such as C<\p{}>. =item * -XXX L<message|perldiag/"message"> +Within the scope of the experimental feature C<use re 'strict'>, +specifying C<\x{}> without anything between the braces now yields the +fatal error message "Empty \x{}". Previously it was "Number with no +digits". This means the same wording is used for this kind of error as +with similar constructs such as C<\p{}>. It is legal, though not wise +to have an empty C<\x> outside of C<re 'strict'>; it silently generates +a NUL character. -=back +=item * -=head3 New Warnings +L<Type of arg %d to %s must be %s (not %s)|perldiag/"Type of arg %d to %s must be %s (not %s)"> -=over 4 +Attempts to push, pop, etc on a hash or glob now produce this message +rather than complaining that they no longer work on scalars. [perl +#130367] =item * -XXX L<message|perldiag/"message"> +L<Prototype not terminated|perldiag/"Prototype not terminated"> + +The file and line number is now reported for this error. +L<[perl #133524]|https://rt.perl.org/Ticket/Display.html?id=133524> + +=item * + +Under C<< -Dr >> (or C<< use re 'Debug' >>) the compiled regex engine +program is displayed. It used two different spellings for I<< infinity >>, +C<< INFINITY >>, and C<< INFTY >>. It now uses the latter exclusively, +as that spelling has been around the longest. =back -=head2 Changes to Existing Diagnostics +=head1 Utility Changes -XXX Changes (i.e. rewording) of diagnostic messages go here +=head2 L<xsubpp> =over 4 =item * -XXX Describe change here +The generated prototype (with C<< PROTOTYPES: ENABLE >>) would include +C<< OUTLIST >> parameters, but these aren't arguments to the perl function. +This has been rectified. +L<[perl #133654]|https://rt.perl.org/Ticket/Display.html?id=133654>. =back -=head1 Utility Changes +=head1 Configuration and Compilation + +=over 4 -XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here. -Most of these are built within the directory F<utils>. +=item * -[ List utility changes as a =head2 entry for each utility and =item -entries for each change -Use L<XXX> with program names to get proper documentation linking. ] +Normally the thread-safe functions are used only on threaded builds. +It is now possible to force their use on unthreaded builds on systems +that have them available, by including the +C<-Accflags='-DUSE_THREAD_SAFE_LOCALE'> option to F<Configure>. -=head2 L<XXX> +=item * -=over 4 +Improve detection of memrchr, strlcat, and strlcpy =item * -XXX +Improve Configure detection of memmem() [perl #133760]. -=back +=item * -=head1 Configuration and Compilation +Fix -DPERL_GLOBAL_STRUCT_PRIVATE build option. + +=item * -XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools -go here. Any other changes to the Perl build process should be listed here. -However, any platform-specific changes should be listed in the -L</Platform Support> section, instead. +Multiple improvements and fixes for -DPERL_GLOBAL_STRUCT build option. -[ List changes as an =item entry ]. +=back + +=head1 Testing =over 4 =item * -XXX +F<t/lib/croak/op> [perl #130367] -=back +separate error for C<push>, etc. on hash/glob. -=head1 Testing +=item * -XXX Any significant changes to the testing of a freshly built perl should be -listed here. Changes which create B<new> files in F<t/> go here as do any -large changes to the testing harness (e.g. when parallel testing was added). -Changes to existing files in F<t/> aren't worth summarizing, although the bugs -that they represent may be covered elsewhere. +F<t/op/svleak.t> [perl #133660] -XXX If there were no significant test changes, say this: +Add test for C<goto &sub> in overload leaking. -Tests were added and changed to reflect the other additions and changes -in this release. +=item * -XXX If instead there were significant changes, say this: +Split F<t/re/fold_grind.t> into multiple test files. -Tests were added and changed to reflect the other additions and -changes in this release. Furthermore, these significant changes were -made: +=item * -[ List each test improvement as an =item entry ] +Fix intermittent tests which failed due to race conditions which +surface during parallel testing. L<[perl #133740]|https://rt.perl.org/Ticket/Display.html?id=133740>. -=over 4 +=item * + +Thoroughly test paragraph mode, using a new test file, +F<t/io/paragraph_mode.t>. L<[perl #133722]|https://rt.perl.org/Ticket/Display.html?id=133722>. =item * -XXX +Some tests in F<< t/io/eintr.t >> caused the process to hang on +pre-16 Darwin. These tests are skipped for those version of Darwin. =back =head1 Platform Support -XXX Any changes to platform support should be listed in the sections below. +=head2 Platform-Specific Notes -[ Within the sections, list each platform as an =item entry with specific -changes as paragraphs below it. ] +=over 4 -=head2 New Platforms +=item HP-UX 11.11 -XXX List any platforms that this version of perl compiles on, that previous -versions did not. These will either be enabled by new files in the F<hints/> -directories, or new subdirectories and F<README> files at the top level of the -source tree. +An obscure problem in C<pack()> when compiling with HP C-ANSI-C has been fixed +by disabling optimizations in F<pp_pack.c>. -=over 4 +=item Mac OS X -=item XXX-some-platform +Perl's build and testing process on Mac OS X for C<-Duseshrplib> +builds is now compatible with Mac OS X System Integrity Protection +(SIP). -XXX +SIP prevents binaries in F</bin> (and a few other places) being passed +the C<DYLD_LIBRARY_PATH> environment variable. For our purposes this +prevents C<DYLD_LIBRARY_PATH> from being passed to the shell, which +prevents that variable being passed to the testing or build process, +so running C<perl> couldn't find F<libperl.dylib>. -=back +To work around that, the initial build of the F<perl> executable +expects to find F<libperl.dylib> in the build directory, and the +library path is then adjusted during installation to point to the +installed library. -=head2 Discontinued Platforms +[perl #126706] -XXX List any platforms that this version of perl no longer compiles on. +=item Minix3 -=over 4 +Some support for Minix3 has been re-added. -=item XXX-some-platform +=item Cygwin -XXX +Cygwin doesn't make C<< cuserid >> visible. -=back +=item Win32 Mingw -=head2 Platform-Specific Notes +C99 math functions are now available. -XXX List any changes for specific platforms. This could include configuration -and compilation changes or changes in portability/compatibility. However, -changes within modules for platforms should generally be listed in the -L</Modules and Pragmata> section. +=item Windows =over 4 -=item XXX-some-platform +=item * + +The C<USE_CPLUSPLUS> build option which has long been available in +F<win32/Makefile> (for B<nmake>) and F<win32/makefile.mk> (for B<dmake>) is now +also available in F<win32/GNUmakefile> (for B<gmake>). + +=item * + +The B<nmake> makefile no longer defaults to Visual C++ 6.0 (a very old version +which is unlikely to be widely used today). As a result, it is now a +requirement to specify the C<CCTYPE> since there is no obvious choice of which +modern version to default to instead. Failure to specify C<CCTYPE> will result +in an error being output and the build will stop. -XXX +(The B<dmake> and B<gmake> makefiles will automatically detect which compiler +is being used, so do not require C<CCTYPE> to be set. This feature has not yet +been added to the B<nmake> makefile.) + +=item * + +C<sleep()> with warnings enabled for a C<USE_IMP_SYS> build no longer +warns about the sleep timeout being too large. [perl #133376] + +=item * + +Support for compiling perl on Windows using Microsoft Visual Studio 2019 +(containing Visual C++ 14.2) has been added. + +=item * + +socket() now sets C<$!> if the protocol, address family and socket +type combination is not found. [perl #133853] + +=item * + +The Windows Server 2003 SP1 Platform SDK build, with its early x64 compiler and +tools, was accidentally broken in Perl 5.27.9. This has now been fixed. + +=back =back =head1 Internal Changes -XXX Changes which affect the interface available to C<XS> code go here. Other -significant internal changes for future core maintainers should be noted as -well. +=over 4 -[ List each change as an =item entry ] +=item * -=over 4 +The sizing pass has been eliminated from the regular expression +compiler. An extra pass may instead be needed in some cases to count +the number of parenthetical capture groups. + +=item * + +A new function L<perlapi/C<my_strtod>> or its synonym, Strtod(), is +now available with the same signature as the libc strtod(). It provides +strotod() equivalent behavior on all platforms, using the best available +precision, depending on platform capabilities and F<Configure> options, +while handling locale-related issues, such as if the radix character +should be a dot or comma. + +=item * + +Added C<newSVsv_nomg()> to copy a SV without processing get magic on +the source. [perl #132964] =item * -XXX +It is now forbidden to malloc more than C<PTRDIFF_T_MAX> bytes. Much +code (including C optimizers) assumes that all data structures will not +be larger than this, so this catches such attempts before overflow +happens. + +=item * + +Two new regnodes have been introduced C<< EXACT_ONLY8 >>, and +C<< EXACTFU_ONLY8 >>. They're equivalent to C<< EXACT >> and C<< EXACTFU >>, +except that they contain a code point which requires UTF-8 to +represent/match. Hence, if the target string isn't UTF-8, we know +it can't possibly match, without needing to try. + +=item * + +C<< print_bytes_for_locale() >> is now defined if C<< DEBUGGING >>, +Prior, it didn't get defined unless C<< LC_COLLATE >> was defined +on the platform. =back =head1 Selected Bug Fixes -XXX Important bug fixes in the core language are summarized here. Bug fixes in -files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>. +=over 4 -[ List each fix as an =item entry ] +=item * -=over 4 +Compilation under C<-DPERL_MEM_LOG> and C<-DNO_LOCALE> have been fixed. + +=item * + +Perl 5.28 introduced an C<index()> optimization when comparing to -1 (or +indirectly, e.g. >= 0). When this optimization was triggered inside a C<when> +clause it caused a warning ("Argument %s isn't numeric in smart match"). This +has now been fixed. +L<[perl #133368]|https://rt.perl.org/Ticket/Display.html?id=133368> + +=item * + +The new in-place editing code no longer leaks directory handles. [perl +#133314] + +=item * + +Warnings produced from constant folding operations on overloaded +values no longer produce spurious "Use of uninitialized value" +warnings. [perl #132683] + +=item * + +Fix for "mutator not seen in (lex = ...) .= ..." [perl #133441] + +=item * + +C<pack "u", "invalid uuencoding"> now properly NUL terminates the +zero-length SV produced. [perl #132655] + +=item * + +Improve the debugging output for calloc() calls with C<-Dm>. [perl #133439] + +=item * + +Regexp script runs were failing to permit ASCII digits in some cases. +[perl #133547] + +=item * + +On Unix-like systems supporting a platform-specific technique for +determining L<< C<$^X>|perlvar/$^X >>, Perl failed to fall back to the +generic technique when the platform-specific one fails (for example, a Linux +system with /proc not mounted). This was a regression in Perl 5.28.0. +[perl #133573] + +=item * + +L<SDBM_File> is now more robust with corrupt database files. The +improvements do not make SDBM files suitable as an interchange format. +[perl #132147] + +=item * + +C<binmode($fh);> or C<binmode($fh, ':raw');> now properly removes the +C<:utf8> flag from the default C<:crlf> I/O layer on Win32. [perl +#133604] + +=item * + +The experimental reference aliasing feature was misinterpreting array and +hash slice assignment as being localised, e.g. + + \(@a[3,5,7]) = \(....); + +was being interpreted as: + + local \(@a[3,5,7]) = \(....); + +[perl #133538] =item * @@ -380,45 +1183,240 @@ implicitly by the interpreter. This modification is permitted by the C standard, but has only been observed on FreeBSD 13.0-CURRENT. [perl #133958] -=back +=item * -=head1 Known Problems +Perl now exposes POSIX C<getcwd> as C<Internals::getcwd()> if +available. This is intended for use by C<Cwd.pm> during bootstrapping +and may be removed or changed without notice. This fixes some +bootstrapping issues while building perl in a directory where some +ancestor directory isn't readable. [perl #133951] -XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any -tests that had to be C<TODO>ed for the release would be noted here. Unfixed -platform specific bugs also go here. +=item * -[ List each fix as an =item entry ] +C<pack()> no longer can return malformed UTF-8. It croaks if it would +otherwise return a UTF-8 string that contains malformed UTF-8. This +protects agains potential security threats. [perl #131642] -=over 4 +=item * + +See L</Any set of digits in the Common script are legal in a script run +of another script>. =item * -XXX +Regular expression matching no longer leaves stale UTF-8 length magic +when updating C<$^R>. This could result in C<length($^R)> returning +an incorrect value. -=back +=item * -=head1 Errata From Previous Releases +Fix a qr/[...]/ bug introduced in v5.29.7 -=over 4 +Using /il should not result in looking for a [:posix:] class +that matches the code points given. =item * -XXX Add anything here that we forgot to add, or were mistaken about, in -the perldelta of a previous release. +Reduce recursion on ops [perl #108276] + +This can prevent stack overflow when processing extremely deep op +trees. + +=item * + +Avoid leak in multiconcat with overloading. [perl #133789] + +=item * + +The handling of user-defined C<\p{}> properties (see +L<perlunicode/User-Defined Character Properties>) has been rewritten to +be in C (instead of Perl). This speeds things up, but in the process +several inconsistencies and bug fixes are made. + +=over 4 + +=item 1 + +A few error messages have minor wording changes. This is essentially +because the new way is integrated into the regex error handling +mechanism that marks the position in the input at which the error +occurred. That was not possible previously. The messages now also +contain additional back-trace-like information in case the error occurs +deep in nested calls. + +=item 2 + +A user-defined property is implemented as a perl subroutine with certain +highly constrained naming conventions. It was documented previously +that the sub would be in the current package if the package was +unspecified. This turned out not to be true in all cases, but now it +is. + +=item 3 + +All recursive calls are treated as infinite recursion. Previously they +would cause the interpreter to panic. Now, they cause the regex pattern +to fail to compile. + +=item 4 + +Similarly, any other error likely would lead to a panic; now to just the +pattern failing to compile. + +=item 5 + +The old mechanism did not detect illegal ranges in the definition of the +property. Now, the range max must not be smaller than the range min. +Otherwise, the pattern fails to compile. + +=item 6 + +The intention was to have each sub called only once during the lifetime +of the program, so that a property's definition is immutable. This was +relaxed so that it could be called once for all /i compilations, and +potentially a second time for non-/i (the sub is passed a parameter +indicating which). However, in practice there were instances when this +was broken, and multiple calls were possible. Those have been fixed. +Now (besides the /i,non-/i cases) the only way a sub can be called +multiple times is if some component of it has not been defined yet. For +example, suppose we have sub IsA() whose definition is known at compile +time, and it in turn calls isB() whose definition is not yet known. +isA() will be called each time a pattern it appears in is compiled. If +isA() also calls isC() and that definition is known, isC() will be +called just once. + +=item 7 + +There were some races and very long hangs should one thread be compiling +the same property as another simultaneously. These have now been fixed. =back -=head1 Obituary +=item * Assertion failure in compiling invalid regex pattern [perl #133767] -XXX If any significant core contributor or member of the CPAN community has -died, add a short obituary here. +This bug was introduced in the 5.29 series, so this should not be in the +perldelta for 5.30. -=head1 Acknowledgements +=item * Null pointer deref [perl #133770] + +This bug was introduced in the 5.29 series, so this should not be in the +perldelta for 5.30. + +=item * -XXX Generate this with: +Fixed a failure to match properly. + +An EXACTFish regnode has a finite length it can hold for the string +being matched. If that length is exceeded, a second node is used for +the next segment of the string, for as many regnodes as are needed. +Care has to be taken where to break the string, in order to deal +multi-character folds in Unicode correctly. If we want to break a +string at a place which could potentially be in the middle of a +multi-character fold, we back off one (or more) characters, leaving +a shorter EXACTFish regnode. This backing off mechanism contained +an off-by-one error. L<[perl #133756]|https://rt.perl.org/Ticket/Display.html?id=133756>. + +=item * + +A bare C<eof> call with no previous file handle now returns true. +L<[perl #133721]|https://rt.perl.org/Ticket/Display.html?id=133721> + +=item * + +Failing to compile a format now aborts compilation. Like other errors +in sub-parses this could leave the parser in a strange state, possibly +crashing perl if compilation continued. L<[perl #132158]|https://rt.perl.org/Ticket/Display.html?id=132158> + +=item * + +If an in-place edit is still in progress during global destruction and +the process exit code (as stored in C<$?>) is zero, perl will now +treat the in-place edit as successful, replacing the input file with +any output produced. + +This allows code like: + + perl -i -ne 'print "Foo"; last' + +to replace the input file, while code like: + + perl -i -ne 'print "Foo"; die' + +will not. Partly resolves +L<[perl #133659]|https://rt.perl.org/Ticket/Display.html?id=133659>. + +=item * + +A regression in 5.28 caused the following code to fail + + close(STDIN); open(CHILD, "|wc -l")' + +because the child's stdin would be closed on exec. This has now been fixed. + +=item * + +Fixed an issue where compiling a regexp containing both compile-time +and run-time code blocks could lead to trying to compile something +which is invalid syntax. + +=item * + +Fixed build failures with C<< -DNO_LOCALE_NUMERIC >> and +C<< -DNO_LOCALE_COLLATE >>. +L<[perl #133696]|https://rt.perl.org/Ticket/Display.html?id=133696>. + +=item * + +Prevent the tests in F<< ext/B/t/strict.t >> from being skipped. +L<[perl #133713]|https://rt.perl.org/Ticket/Display.html?id=133713>. + +=item * + +C<< /di >> nodes ending or beginning in I<s> are now C<< EXACTF >>. We do not +want two C<< EXACTFU >> to be joined together during optimization, +and to form a C<< ss >>, C<< sS >>, C<< Ss >> or C<< SS >> sequence; +they are the only multi-character sequences which may match differently +under C<< /ui >> and C<< /di >>. + +=back + +=head1 Acknowledgements - perl Porting/acknowledgements.pl v5.29.10..HEAD +Perl 5.30.0 represents approximately 11 months of development since Perl +5.28.0 and contains approximately 630,000 lines of changes across 1,300 +files from 58 authors. + +Excluding auto-generated files, documentation and release tools, there were +approximately 510,000 lines of changes to 750 .pm, .t, .c and .h files. + +Perl continues to flourish into its fourth decade thanks to a vibrant +community of users and developers. The following people are known to have +contributed the improvements that became Perl 5.30.0: + +Aaron Crane, Abigail, Alberto Simões, Alexandr Savca, Andreas König, Andy +Dougherty, Aristotle Pagaltzis, Brian Greenfield, Chad Granum, Chris +'BinGOs' Williams, Craig A. Berry, Dagfinn Ilmari Mannsåker, Dan Book, Dan +Dedrick, Daniel Dragan, Dan Kogai, David Cantrell, David Mitchell, Dominic +Hargreaves, E. Choroba, Ed J, Eugen Konkov, François Perrad, Graham Knop, +Hauke D, H.Merijn Brand, Hugo van der Sanden, Jakub Wilk, James Clarke, +James E Keenan, Jerry D. Hedden, Jim Cromie, John SJ Anderson, Karen +Etheridge, Karl Williamson, Leon Timmermans, Matthias Bethke, Nicholas +Clark, Nicolas R., Niko Tyni, Pali, Petr Písař, Phil Pearl (Lobbes), +Richard Leach, Ryan Voots, Sawyer X, Shlomi Fish, Sisyphus, Slaven Rezic, +Steve Hay, Sullivan Beck, Tina Müller, Tomasz Konojacki, Tom Wyant, Tony +Cook, Unicode Consortium, Yves Orton, Zak B. Elep. + +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 diff --git a/vms/descrip_mms.template b/vms/descrip_mms.template index 8046920c4e..cfdf01a2ed 100644 --- a/vms/descrip_mms.template +++ b/vms/descrip_mms.template @@ -313,7 +313,7 @@ utils : $(utils1) $(utils2) $(utils3) $(utils4) $(utils5) extra.pods : miniperl @ @extra_pods.com -PERLDELTA_CURRENT = [.pod]perl52911delta.pod +PERLDELTA_CURRENT = [.pod]perl5300delta.pod $(PERLDELTA_CURRENT) : [.pod]perldelta.pod Copy/NoConfirm/Log $(MMS$SOURCE) $(PERLDELTA_CURRENT) diff --git a/win32/GNUmakefile b/win32/GNUmakefile index 2a1cf567ba..b3ea92119f 100644 --- a/win32/GNUmakefile +++ b/win32/GNUmakefile @@ -1762,7 +1762,7 @@ utils: $(HAVEMINIPERL) ..\utils\Makefile copy ..\README.tw ..\pod\perltw.pod copy ..\README.vos ..\pod\perlvos.pod copy ..\README.win32 ..\pod\perlwin32.pod - copy ..\pod\perldelta.pod ..\pod\perl52911delta.pod + copy ..\pod\perldelta.pod ..\pod\perl5300delta.pod $(MINIPERL) -I..\lib $(PL2BAT) $(UTILS) $(MINIPERL) -I..\lib ..\autodoc.pl .. $(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q .. @@ -1860,7 +1860,7 @@ distclean: realclean -if exist $(LIBDIR)\Win32API rmdir /s /q $(LIBDIR)\Win32API -if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS -cd $(PODDIR) && del /f *.html *.bat roffitall \ - perl52911delta.pod perlaix.pod perlamiga.pod perlandroid.pod \ + perl5300delta.pod perlaix.pod perlamiga.pod perlandroid.pod \ perlapi.pod perlbs2000.pod perlce.pod perlcn.pod perlcygwin.pod \ perldos.pod perlfreebsd.pod perlhaiku.pod perlhpux.pod \ perlhurd.pod perlintern.pod perlirix.pod perljp.pod perlko.pod \ diff --git a/win32/Makefile b/win32/Makefile index 2e5b3ada86..3c56be22f4 100644 --- a/win32/Makefile +++ b/win32/Makefile @@ -1283,7 +1283,7 @@ utils: $(PERLEXE) ..\utils\Makefile copy ..\README.tw ..\pod\perltw.pod copy ..\README.vos ..\pod\perlvos.pod copy ..\README.win32 ..\pod\perlwin32.pod - copy ..\pod\perldelta.pod ..\pod\perl52911delta.pod + copy ..\pod\perldelta.pod ..\pod\perl5300delta.pod cd ..\win32 $(PERLEXE) $(PL2BAT) $(UTILS) $(MINIPERL) -I..\lib ..\autodoc.pl .. @@ -1382,7 +1382,7 @@ distclean: realclean -if exist $(LIBDIR)\Win32API rmdir /s /q $(LIBDIR)\Win32API -if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS -cd $(PODDIR) && del /f *.html *.bat roffitall \ - perl52911delta.pod perlaix.pod perlamiga.pod perlandroid.pod \ + perl5300delta.pod perlaix.pod perlamiga.pod perlandroid.pod \ perlapi.pod perlbs2000.pod perlce.pod perlcn.pod perlcygwin.pod \ perldos.pod perlfreebsd.pod perlhaiku.pod perlhpux.pod \ perlhurd.pod perlintern.pod perlirix.pod perljp.pod perlko.pod \ diff --git a/win32/makefile.mk b/win32/makefile.mk index 200c8ac37d..c014130bb1 100644 --- a/win32/makefile.mk +++ b/win32/makefile.mk @@ -1679,7 +1679,7 @@ utils: $(HAVEMINIPERL) ..\utils\Makefile copy ..\README.tw ..\pod\perltw.pod copy ..\README.vos ..\pod\perlvos.pod copy ..\README.win32 ..\pod\perlwin32.pod - copy ..\pod\perldelta.pod ..\pod\perl52911delta.pod + copy ..\pod\perldelta.pod ..\pod\perl5300delta.pod $(MINIPERL) -I..\lib $(PL2BAT) $(UTILS) $(MINIPERL) -I..\lib ..\autodoc.pl .. $(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q .. @@ -1777,7 +1777,7 @@ distclean: realclean -if exist $(LIBDIR)\Win32API rmdir /s /q $(LIBDIR)\Win32API -if exist $(LIBDIR)\XS rmdir /s /q $(LIBDIR)\XS -cd $(PODDIR) && del /f *.html *.bat roffitall \ - perl52911delta.pod perlaix.pod perlamiga.pod perlandroid.pod \ + perl5300delta.pod perlaix.pod perlamiga.pod perlandroid.pod \ perlapi.pod perlbs2000.pod perlce.pod perlcn.pod perlcygwin.pod \ perldos.pod perlfreebsd.pod perlhaiku.pod perlhpux.pod \ perlhurd.pod perlintern.pod perlirix.pod perljp.pod perlko.pod \ diff --git a/win32/pod.mak b/win32/pod.mak index 9a6ab2435c..77fda20349 100644 --- a/win32/pod.mak +++ b/win32/pod.mak @@ -57,18 +57,7 @@ POD = perl.pod \ perl5280delta.pod \ perl5281delta.pod \ perl5282delta.pod \ - perl5290delta.pod \ - perl52910delta.pod \ - perl52911delta.pod \ - perl5291delta.pod \ - perl5292delta.pod \ - perl5293delta.pod \ - perl5294delta.pod \ - perl5295delta.pod \ - perl5296delta.pod \ - perl5297delta.pod \ - perl5298delta.pod \ - perl5299delta.pod \ + perl5300delta.pod \ perl561delta.pod \ perl56delta.pod \ perl581delta.pod \ @@ -221,18 +210,7 @@ MAN = perl.man \ perl5280delta.man \ perl5281delta.man \ perl5282delta.man \ - perl5290delta.man \ - perl52910delta.man \ - perl52911delta.man \ - perl5291delta.man \ - perl5292delta.man \ - perl5293delta.man \ - perl5294delta.man \ - perl5295delta.man \ - perl5296delta.man \ - perl5297delta.man \ - perl5298delta.man \ - perl5299delta.man \ + perl5300delta.man \ perl561delta.man \ perl56delta.man \ perl581delta.man \ @@ -385,18 +363,7 @@ HTML = perl.html \ perl5280delta.html \ perl5281delta.html \ perl5282delta.html \ - perl5290delta.html \ - perl52910delta.html \ - perl52911delta.html \ - perl5291delta.html \ - perl5292delta.html \ - perl5293delta.html \ - perl5294delta.html \ - perl5295delta.html \ - perl5296delta.html \ - perl5297delta.html \ - perl5298delta.html \ - perl5299delta.html \ + perl5300delta.html \ perl561delta.html \ perl56delta.html \ perl581delta.html \ @@ -549,18 +516,7 @@ TEX = perl.tex \ perl5280delta.tex \ perl5281delta.tex \ perl5282delta.tex \ - perl5290delta.tex \ - perl52910delta.tex \ - perl52911delta.tex \ - perl5291delta.tex \ - perl5292delta.tex \ - perl5293delta.tex \ - perl5294delta.tex \ - perl5295delta.tex \ - perl5296delta.tex \ - perl5297delta.tex \ - perl5298delta.tex \ - perl5299delta.tex \ + perl5300delta.tex \ perl561delta.tex \ perl56delta.tex \ perl581delta.tex \ |