diff options
author | Steve Hay <steve.m.hay@googlemail.com> | 2017-09-22 23:30:42 +0100 |
---|---|---|
committer | Steve Hay <steve.m.hay@googlemail.com> | 2017-09-22 23:30:42 +0100 |
commit | 89a1d282043c692d618b316a3d500986660b08e9 (patch) | |
tree | e10ff330588fe4f983c4c1f7bb2d8461c35f4d8f | |
parent | 1ff554f0557966bb2354dfa702c0058cf1711ffb (diff) | |
download | perl-89a1d282043c692d618b316a3d500986660b08e9.tar.gz |
New perldelta for 5.24.4
-rw-r--r-- | MANIFEST | 1 | ||||
-rwxr-xr-x | Makefile.SH | 8 | ||||
-rw-r--r-- | pod/.gitignore | 2 | ||||
-rw-r--r-- | pod/perl.pod | 1 | ||||
-rw-r--r-- | pod/perl5243delta.pod | 335 | ||||
-rw-r--r-- | pod/perldelta.pod | 432 | ||||
-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 | 4 |
11 files changed, 607 insertions, 190 deletions
@@ -4654,6 +4654,7 @@ pod/perl5224delta.pod Perl changes in version 5.22.4 pod/perl5240delta.pod Perl changes in version 5.24.0 pod/perl5241delta.pod Perl changes in version 5.24.1 pod/perl5242delta.pod Perl changes in version 5.24.2 +pod/perl5243delta.pod Perl changes in version 5.24.3 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 0b9cfab280..9848d559be 100755 --- a/Makefile.SH +++ b/Makefile.SH @@ -522,7 +522,7 @@ miniperl_objs = $(miniperl_objs_nodt) $(DTRACE_MINI_O) perllib_objs = $(perllib_objs_nodt) $(DTRACE_PERLLIB_O) perlmain_objs = perlmain$(OBJ_EXT) $(DTRACE_MAIN_O) -perltoc_pod_prereqs = extra.pods pod/perl5243delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod +perltoc_pod_prereqs = extra.pods pod/perl5244delta.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 @@ -1085,9 +1085,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/perl5243delta.pod: pod/perldelta.pod - $(RMS) pod/perl5243delta.pod - $(LNS) perldelta.pod pod/perl5243delta.pod +pod/perl5244delta.pod: pod/perldelta.pod + $(RMS) pod/perl5244delta.pod + $(LNS) perldelta.pod pod/perl5244delta.pod extra.pods: $(MINIPERL_EXE) -@test ! -f extra.pods || rm -f `cat extra.pods` diff --git a/pod/.gitignore b/pod/.gitignore index 77f4bdf400..96544b25cd 100644 --- a/pod/.gitignore +++ b/pod/.gitignore @@ -53,7 +53,7 @@ /roffitall # generated -/perl5243delta.pod +/perl5244delta.pod /perlapi.pod /perlintern.pod *.html diff --git a/pod/perl.pod b/pod/perl.pod index 8058f6200a..053d6845f8 100644 --- a/pod/perl.pod +++ b/pod/perl.pod @@ -180,6 +180,7 @@ aux c2ph h2ph h2xs perlbug pl2pm pod2html pod2man splain xsubpp perlhist Perl history records perldelta Perl changes since previous version + perl5243delta Perl changes in version 5.24.3 perl5242delta Perl changes in version 5.24.2 perl5241delta Perl changes in version 5.24.1 perl5240delta Perl changes in version 5.24.0 diff --git a/pod/perl5243delta.pod b/pod/perl5243delta.pod new file mode 100644 index 0000000000..7aabed92b9 --- /dev/null +++ b/pod/perl5243delta.pod @@ -0,0 +1,335 @@ +=encoding utf8 + +=head1 NAME + +perl5243delta - what is new for perl v5.24.3 + +=head1 DESCRIPTION + +This document describes differences between the 5.24.2 release and the 5.24.3 +release. + +If you are upgrading from an earlier release such as 5.24.1, first read +L<perl5242delta>, which describes differences between 5.24.1 and 5.24.2. + +=head1 Security + +=head2 [CVE-2017-12837] Heap buffer overflow in regular expression compiler + +Compiling certain regular expression patterns with the case-insensitive +modifier could cause a heap buffer overflow and crash perl. This has now been +fixed. +L<[perl #131582]|https://rt.perl.org/Public/Bug/Display.html?id=131582> + +=head2 [CVE-2017-12883] Buffer over-read in regular expression parser + +For certain types of syntax error in a regular expression pattern, the error +message could either contain the contents of a random, possibly large, chunk of +memory, or could crash perl. This has now been fixed. +L<[perl #131598]|https://rt.perl.org/Public/Bug/Display.html?id=131598> + +=head2 [CVE-2017-12814] C<$ENV{$key}> stack buffer overflow on Windows + +A possible stack buffer overflow in the C<%ENV> code on Windows has been fixed +by removing the buffer completely since it was superfluous anyway. +L<[perl #131665]|https://rt.perl.org/Public/Bug/Display.html?id=131665> + +=head1 Incompatible Changes + +There are no changes intentionally incompatible with 5.24.2. If any exist, +they are bugs, and we request that you submit a report. See L</Reporting +Bugs> below. + +=head1 Modules and Pragmata + +=head2 Updated Modules and Pragmata + +=over 4 + +=item * + +L<Module::CoreList> has been upgraded from version 5.20170715_24 to +5.20170922_24. + +=item * + +L<POSIX> has been upgraded from version 1.65 to 1.65_01. + +=item * + +L<Time::HiRes> has been upgraded from version 1.9733 to 1.9741. + +L<[perl #128427]|https://rt.perl.org/Public/Bug/Display.html?id=128427> +L<[perl #128445]|https://rt.perl.org/Public/Bug/Display.html?id=128445> +L<[perl #128972]|https://rt.perl.org/Public/Bug/Display.html?id=128972> +L<[cpan #120032]|https://rt.cpan.org/Public/Bug/Display.html?id=120032> + +=back + +=head1 Configuration and Compilation + +=over 4 + +=item * + +When building with GCC 6 and link-time optimization (the B<-flto> option to +B<gcc>), F<Configure> was treating all probed symbols as present on the system, +regardless of whether they actually exist. This has been fixed. +L<[perl #128131]|https://rt.perl.org/Public/Bug/Display.html?id=128131> + +=item * + +F<Configure> now aborts if both C<-Duselongdouble> and C<-Dusequadmath> are +requested. +L<[perl #126203]|https://rt.perl.org/Public/Bug/Display.html?id=126203> + +=item * + +Fixed a bug in which F<Configure> could append C<-quadmath> to the archname +even if it was already present. +L<[perl #128538]|https://rt.perl.org/Public/Bug/Display.html?id=128538> + +=item * + +Clang builds with C<-DPERL_GLOBAL_STRUCT> or C<-DPERL_GLOBAL_STRUCT_PRIVATE> +have been fixed (by disabling Thread Safety Analysis for these configurations). + +=back + +=head1 Platform Support + +=head2 Platform-Specific Notes + +=over 4 + +=item VMS + +=over 4 + +=item * + +C<configure.com> now recognizes the VSI-branded C compiler. + +=back + +=item Windows + +=over 4 + +=item * + +Building XS modules with GCC 6 in a 64-bit build of Perl failed due to +incorrect mapping of C<strtoll> and C<strtoull>. This has now been fixed. +L<[perl #131726]|https://rt.perl.org/Public/Bug/Display.html?id=131726> +L<[cpan #121683]|https://rt.cpan.org/Public/Bug/Display.html?id=121683> +L<[cpan #122353]|https://rt.cpan.org/Public/Bug/Display.html?id=122353> + +=back + +=back + +=head1 Selected Bug Fixes + +=over 4 + +=item * + +C<< /@0{0*-E<gt>@*/*0 >> and similar contortions used to crash, but no longer +do, but merely produce a syntax error. +L<[perl #128171]|https://rt.perl.org/Public/Bug/Display.html?id=128171> + +=item * + +C<do> or C<require> with an argument which is a reference or typeglob which, +when stringified, contains a null character, started crashing in Perl 5.20, but +has now been fixed. +L<[perl #128182]|https://rt.perl.org/Public/Bug/Display.html?id=128182> + +=item * + +Expressions containing an C<&&> or C<||> operator (or their synonyms C<and> and +C<or>) were being compiled incorrectly in some cases. If the left-hand side +consisted of either a negated bareword constant or a negated C<do {}> block +containing a constant expression, and the right-hand side consisted of a +negated non-foldable expression, one of the negations was effectively ignored. +The same was true of C<if> and C<unless> statement modifiers, though with the +left-hand and right-hand sides swapped. This long-standing bug has now been +fixed. +L<[perl #127952]|https://rt.perl.org/Public/Bug/Display.html?id=127952> + +=item * + +C<reset> with an argument no longer crashes when encountering stash entries +other than globs. +L<[perl #128106]|https://rt.perl.org/Public/Bug/Display.html?id=128106> + +=item * + +Assignment of hashes to, and deletion of, typeglobs named C<*::::::> no longer +causes crashes. +L<[perl #128086]|https://rt.perl.org/Public/Bug/Display.html?id=128086> + +=item * + +Assignment variants of any bitwise ops under the C<bitwise> feature would crash +if the left-hand side was an array or hash. +L<[perl #128204]|https://rt.perl.org/Public/Bug/Display.html?id=128204> + +=item * + +C<socket> now leaves the error code returned by the system in C<$!> on failure. +L<[perl #128316]|https://rt.perl.org/Public/Bug/Display.html?id=128316> + +=item * + +Parsing bad POSIX charclasses no longer leaks memory. +L<[perl #128313]|https://rt.perl.org/Public/Bug/Display.html?id=128313> + +=item * + +Since Perl 5.20, line numbers have been off by one when perl is invoked with +the B<-x> switch. This has been fixed. +L<[perl #128508]|https://rt.perl.org/Public/Bug/Display.html?id=128508> + +=item * + +Some obscure cases of subroutines and file handles being freed at the same time +could result in crashes, but have been fixed. The crash was introduced in Perl +5.22. +L<[perl #128597]|https://rt.perl.org/Public/Bug/Display.html?id=128597> + +=item * + +Some regular expression parsing glitches could lead to assertion failures with +regular expressions such as C</(?E<lt>=/> and C</(?E<lt>!/>. This has now been +fixed. +L<[perl #128170]|https://rt.perl.org/Public/Bug/Display.html?id=128170> + +=item * + +C<gethostent> and similar functions now perform a null check internally, to +avoid crashing with the torsocks library. This was a regression from Perl +5.22. +L<[perl #128740]|https://rt.perl.org/Public/Bug/Display.html?id=128740> + +=item * + +Mentioning the same constant twice in a row (which is a syntax error) no longer +fails an assertion under debugging builds. This was a regression from Perl +5.20. +L<[perl #126482]|https://rt.perl.org/Public/Bug/Display.html?id=126482> + +=item * + +In Perl 5.24 C<fchown> was changed not to accept negative one as an argument +because in some platforms that is an error. However, in some other platforms +that is an acceptable argument. This change has been reverted. +L<[perl #128967]|https://rt.perl.org/Public/Bug/Display.html?id=128967>. + +=item * + +C<@{x> followed by a newline where C<"x"> represents a control or non-ASCII +character no longer produces a garbled syntax error message or a crash. +L<[perl #128951]|https://rt.perl.org/Public/Bug/Display.html?id=128951> + +=item * + +A regression in Perl 5.24 with C<tr/\N{U+...}/foo/> when the code point was +between 128 and 255 has been fixed. +L<[perl #128734]|https://rt.perl.org/Public/Bug/Display.html?id=128734>. + +=item * + +Many issues relating to C<printf "%a"> of hexadecimal floating point were +fixed. In addition, the "subnormals" (formerly known as "denormals") floating +point numbers are now supported both with the plain IEEE 754 floating point +numbers (64-bit or 128-bit) and the x86 80-bit "extended precision". Note that +subnormal hexadecimal floating point literals will give a warning about +"exponent underflow". +L<[perl #128843]|https://rt.perl.org/Public/Bug/Display.html?id=128843> +L<[perl #128888]|https://rt.perl.org/Public/Bug/Display.html?id=128888> +L<[perl #128889]|https://rt.perl.org/Public/Bug/Display.html?id=128889> +L<[perl #128890]|https://rt.perl.org/Public/Bug/Display.html?id=128890> +L<[perl #128893]|https://rt.perl.org/Public/Bug/Display.html?id=128893> +L<[perl #128909]|https://rt.perl.org/Public/Bug/Display.html?id=128909> +L<[perl #128919]|https://rt.perl.org/Public/Bug/Display.html?id=128919> + +=item * + +The parser could sometimes crash if a bareword came after C<evalbytes>. +L<[perl #129196]|https://rt.perl.org/Public/Bug/Display.html?id=129196> + +=item * + +Fixed a place where the regex parser was not setting the syntax error correctly +on a syntactically incorrect pattern. +L<[perl #129122]|https://rt.perl.org/Public/Bug/Display.html?id=129122> + +=item * + +A vulnerability in Perl's C<sprintf> implementation has been fixed by avoiding +a possible memory wrap. +L<[perl #131260]|https://rt.perl.org/Public/Bug/Display.html?id=131260> + +=back + +=head1 Acknowledgements + +Perl 5.24.3 represents approximately 2 months of development since Perl 5.24.2 +and contains approximately 3,200 lines of changes across 120 files from 23 +authors. + +Excluding auto-generated files, documentation and release tools, there were +approximately 1,600 lines of changes to 56 .pm, .t, .c and .h files. + +Perl continues to flourish into its third decade thanks to a vibrant community +of users and developers. The following people are known to have contributed +the improvements that became Perl 5.24.3: + +Aaron Crane, Craig A. Berry, Dagfinn Ilmari Mannsåker, Dan Collins, Daniel +Dragan, Dave Cross, David Mitchell, Eric Herman, Father Chrysostomos, H.Merijn +Brand, Hugo van der Sanden, James E Keenan, Jarkko Hietaniemi, John SJ +Anderson, Karl Williamson, Ken Brown, Lukas Mai, Matthew Horsfall, Stevan +Little, Steve Hay, Steven Humphrey, Tony Cook, Yves Orton. + +The list above is almost certainly incomplete as it is automatically generated +from version control history. In particular, it does not include the names of +the (very much appreciated) contributors who reported issues to the Perl bug +tracker. + +Many of the changes included in this version originated in the CPAN modules +included in Perl's core. We're grateful to the entire CPAN community for +helping Perl to flourish. + +For a more complete list of all of Perl's historical contributors, please see +the F<AUTHORS> file in the Perl source distribution. + +=head1 Reporting Bugs + +If you find what you think is a bug, you might check the articles recently +posted to the comp.lang.perl.misc newsgroup and the perl bug database at +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 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/perldelta.pod b/pod/perldelta.pod index d22e0f2048..a6c64367f0 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -2,307 +2,383 @@ =head1 NAME -perldelta - what is new for perl v5.24.3 +[ 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.24.4 =head1 DESCRIPTION -This document describes differences between the 5.24.2 release and the 5.24.3 +This document describes differences between the 5.24.3 release and the 5.24.4 release. -If you are upgrading from an earlier release such as 5.24.1, first read -L<perl5242delta>, which describes differences between 5.24.1 and 5.24.2. +If you are upgrading from an earlier release such as 5.24.2, first read +L<perl5243delta>, which describes differences between 5.24.2 and 5.24.3. -=head1 Security +=head1 Notice -=head2 [CVE-2017-12837] Heap buffer overflow in regular expression compiler +XXX Any important notices here -Compiling certain regular expression patterns with the case-insensitive -modifier could cause a heap buffer overflow and crash perl. This has now been -fixed. -L<[perl #131582]|https://rt.perl.org/Public/Bug/Display.html?id=131582> +=head1 Core Enhancements -=head2 [CVE-2017-12883] Buffer over-read in regular expression parser +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. -For certain types of syntax error in a regular expression pattern, the error -message could either contain the contents of a random, possibly large, chunk of -memory, or could crash perl. This has now been fixed. -L<[perl #131598]|https://rt.perl.org/Public/Bug/Display.html?id=131598> +[ List each enhancement as a =head2 entry ] + +=head1 Security -=head2 [CVE-2017-12814] C<$ENV{$key}> stack buffer overflow on Windows +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. -A possible stack buffer overflow in the C<%ENV> code on Windows has been fixed -by removing the buffer completely since it was superfluous anyway. -L<[perl #131665]|https://rt.perl.org/Public/Bug/Display.html?id=131665> +[ List each security issue as a =head2 entry ] =head1 Incompatible Changes -There are no changes intentionally incompatible with 5.24.2. If any exist, -they are bugs, and we request that you submit a report. See L</Reporting -Bugs> below. +XXX For a release on a stable branch, this section aspires to be: -=head1 Modules and Pragmata + 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. -=head2 Updated Modules and Pragmata +[ List each incompatible change as a =head2 entry ] -=over 4 +=head1 Deprecations -=item * +XXX Any deprecated features, syntax, modules etc. should be listed here. -L<Module::CoreList> has been upgraded from version 5.20170715_24 to -5.20170922_24. +=head2 Module removals -=item * +XXX Remove this section if inapplicable. -L<POSIX> has been upgraded from version 1.65 to 1.65_01. +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. +Distributions on CPAN which require these modules will need to list them as +prerequisites. -=item * +The core versions of these modules will now issue C<"deprecated">-category +warnings to alert you to this fact. To silence these deprecation warnings, +install the modules in question from CPAN. + +Note that these are (with rare exceptions) fine modules that you are encouraged +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 -L<Time::HiRes> has been upgraded from version 1.9733 to 1.9741. +=item XXX -L<[perl #128427]|https://rt.perl.org/Public/Bug/Display.html?id=128427> -L<[perl #128445]|https://rt.perl.org/Public/Bug/Display.html?id=128445> -L<[perl #128972]|https://rt.perl.org/Public/Bug/Display.html?id=128972> -L<[cpan #120032]|https://rt.cpan.org/Public/Bug/Display.html?id=120032> +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. =back -=head1 Configuration and Compilation +[ List each other deprecation as a =head2 entry ] + +=head1 Performance Enhancements + +XXX Changes which enhance performance without changing behaviour go here. +There may well be none in a stable release. + +[ List each enhancement as a =item entry ] =over 4 =item * -When building with GCC 6 and link-time optimization (the B<-flto> option to -B<gcc>), F<Configure> was treating all probed symbols as present on the system, -regardless of whether they actually exist. This has been fixed. -L<[perl #128131]|https://rt.perl.org/Public/Bug/Display.html?id=128131> +XXX + +=back + +=head1 Modules and Pragmata + +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. + +[ Within each section, list entries as a =item entry ] + +=head2 New Modules and Pragmata + +=over 4 =item * -F<Configure> now aborts if both C<-Duselongdouble> and C<-Dusequadmath> are -requested. -L<[perl #126203]|https://rt.perl.org/Public/Bug/Display.html?id=126203> +XXX + +=back + +=head2 Updated Modules and Pragmata + +=over 4 =item * -Fixed a bug in which F<Configure> could append C<-quadmath> to the archname -even if it was already present. -L<[perl #128538]|https://rt.perl.org/Public/Bug/Display.html?id=128538> +L<XXX> has been upgraded from version A.xx to B.yy. + +=back + +=head2 Removed Modules and Pragmata + +=over 4 =item * -Clang builds with C<-DPERL_GLOBAL_STRUCT> or C<-DPERL_GLOBAL_STRUCT_PRIVATE> -have been fixed (by disabling Thread Safety Analysis for these configurations). +XXX =back -=head1 Platform Support +=head1 Documentation -=head2 Platform-Specific Notes +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 + +XXX Changes which create B<new> files in F<pod/> go here. -=item VMS +=head3 L<XXX> + +XXX Description of the purpose of the new file here + +=head2 Changes to Existing Documentation + +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. + +=head3 L<XXX> =over 4 =item * -C<configure.com> now recognizes the VSI-branded C compiler. +XXX Description of the change here =back -=item Windows +=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>. + +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 New Diagnostics + +XXX Newly added diagnostic messages go under here, separated into New Errors +and New Warnings + +=head3 New Errors =over 4 =item * -Building XS modules with GCC 6 in a 64-bit build of Perl failed due to -incorrect mapping of C<strtoll> and C<strtoull>. This has now been fixed. -L<[perl #131726]|https://rt.perl.org/Public/Bug/Display.html?id=131726> -L<[cpan #121683]|https://rt.cpan.org/Public/Bug/Display.html?id=121683> -L<[cpan #122353]|https://rt.cpan.org/Public/Bug/Display.html?id=122353> +XXX L<message|perldiag/"message"> =back +=head3 New Warnings + +=over 4 + +=item * + +XXX L<message|perldiag/"message"> + =back -=head1 Selected Bug Fixes +=head2 Changes to Existing Diagnostics + +XXX Changes (i.e. rewording) of diagnostic messages go here =over 4 =item * -C<< /@0{0*-E<gt>@*/*0 >> and similar contortions used to crash, but no longer -do, but merely produce a syntax error. -L<[perl #128171]|https://rt.perl.org/Public/Bug/Display.html?id=128171> +XXX Describe change here -=item * +=back -C<do> or C<require> with an argument which is a reference or typeglob which, -when stringified, contains a null character, started crashing in Perl 5.20, but -has now been fixed. -L<[perl #128182]|https://rt.perl.org/Public/Bug/Display.html?id=128182> +=head1 Utility Changes -=item * +XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here. +Most of these are built within the directory F<utils>. -Expressions containing an C<&&> or C<||> operator (or their synonyms C<and> and -C<or>) were being compiled incorrectly in some cases. If the left-hand side -consisted of either a negated bareword constant or a negated C<do {}> block -containing a constant expression, and the right-hand side consisted of a -negated non-foldable expression, one of the negations was effectively ignored. -The same was true of C<if> and C<unless> statement modifiers, though with the -left-hand and right-hand sides swapped. This long-standing bug has now been -fixed. -L<[perl #127952]|https://rt.perl.org/Public/Bug/Display.html?id=127952> +[ 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. ] -=item * +=head2 L<XXX> -C<reset> with an argument no longer crashes when encountering stash entries -other than globs. -L<[perl #128106]|https://rt.perl.org/Public/Bug/Display.html?id=128106> +=over 4 =item * -Assignment of hashes to, and deletion of, typeglobs named C<*::::::> no longer -causes crashes. -L<[perl #128086]|https://rt.perl.org/Public/Bug/Display.html?id=128086> +XXX -=item * +=back + +=head1 Configuration and Compilation -Assignment variants of any bitwise ops under the C<bitwise> feature would crash -if the left-hand side was an array or hash. -L<[perl #128204]|https://rt.perl.org/Public/Bug/Display.html?id=128204> +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. -=item * +[ List changes as a =item entry ]. -C<socket> now leaves the error code returned by the system in C<$!> on failure. -L<[perl #128316]|https://rt.perl.org/Public/Bug/Display.html?id=128316> +=over 4 =item * -Parsing bad POSIX charclasses no longer leaks memory. -L<[perl #128313]|https://rt.perl.org/Public/Bug/Display.html?id=128313> +XXX -=item * +=back -Since Perl 5.20, line numbers have been off by one when perl is invoked with -the B<-x> switch. This has been fixed. -L<[perl #128508]|https://rt.perl.org/Public/Bug/Display.html?id=128508> +=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. -Some obscure cases of subroutines and file handles being freed at the same time -could result in crashes, but have been fixed. The crash was introduced in Perl -5.22. -L<[perl #128597]|https://rt.perl.org/Public/Bug/Display.html?id=128597> +[ List each test improvement as a =item entry ] + +=over 4 =item * -Some regular expression parsing glitches could lead to assertion failures with -regular expressions such as C</(?E<lt>=/> and C</(?E<lt>!/>. This has now been -fixed. -L<[perl #128170]|https://rt.perl.org/Public/Bug/Display.html?id=128170> +XXX -=item * +=back -C<gethostent> and similar functions now perform a null check internally, to -avoid crashing with the torsocks library. This was a regression from Perl -5.22. -L<[perl #128740]|https://rt.perl.org/Public/Bug/Display.html?id=128740> +=head1 Platform Support -=item * +XXX Any changes to platform support should be listed in the sections below. -Mentioning the same constant twice in a row (which is a syntax error) no longer -fails an assertion under debugging builds. This was a regression from Perl -5.20. -L<[perl #126482]|https://rt.perl.org/Public/Bug/Display.html?id=126482> +[ Within the sections, list each platform as a =item entry with specific +changes as paragraphs below it. ] -=item * +=head2 New Platforms -In Perl 5.24 C<fchown> was changed not to accept negative one as an argument -because in some platforms that is an error. However, in some other platforms -that is an acceptable argument. This change has been reverted. -L<[perl #128967]|https://rt.perl.org/Public/Bug/Display.html?id=128967>. +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. -=item * +=over 4 -C<@{x> followed by a newline where C<"x"> represents a control or non-ASCII -character no longer produces a garbled syntax error message or a crash. -L<[perl #128951]|https://rt.perl.org/Public/Bug/Display.html?id=128951> +=item XXX-some-platform -=item * +XXX -A regression in Perl 5.24 with C<tr/\N{U+...}/foo/> when the code point was -between 128 and 255 has been fixed. -L<[perl #128734]|https://rt.perl.org/Public/Bug/Display.html?id=128734>. +=back -=item * +=head2 Discontinued Platforms + +XXX List any platforms that this version of perl no longer compiles on. + +=over 4 + +=item XXX-some-platform + +XXX + +=back + +=head2 Platform-Specific Notes + +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. + +=over 4 + +=item XXX-some-platform + +XXX + +=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. + +[ List each change as a =item entry ] -Many issues relating to C<printf "%a"> of hexadecimal floating point were -fixed. In addition, the "subnormals" (formerly known as "denormals") floating -point numbers are now supported both with the plain IEEE 754 floating point -numbers (64-bit or 128-bit) and the x86 80-bit "extended precision". Note that -subnormal hexadecimal floating point literals will give a warning about -"exponent underflow". -L<[perl #128843]|https://rt.perl.org/Public/Bug/Display.html?id=128843> -L<[perl #128888]|https://rt.perl.org/Public/Bug/Display.html?id=128888> -L<[perl #128889]|https://rt.perl.org/Public/Bug/Display.html?id=128889> -L<[perl #128890]|https://rt.perl.org/Public/Bug/Display.html?id=128890> -L<[perl #128893]|https://rt.perl.org/Public/Bug/Display.html?id=128893> -L<[perl #128909]|https://rt.perl.org/Public/Bug/Display.html?id=128909> -L<[perl #128919]|https://rt.perl.org/Public/Bug/Display.html?id=128919> +=over 4 =item * -The parser could sometimes crash if a bareword came after C<evalbytes>. -L<[perl #129196]|https://rt.perl.org/Public/Bug/Display.html?id=129196> +XXX + +=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>. + +[ List each fix as a =item entry ] + +=over 4 =item * -Fixed a place where the regex parser was not setting the syntax error correctly -on a syntactically incorrect pattern. -L<[perl #129122]|https://rt.perl.org/Public/Bug/Display.html?id=129122> +XXX + +=back + +=head1 Known Problems + +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. + +[ List each fix as a =item entry ] + +=over 4 =item * -A vulnerability in Perl's C<sprintf> implementation has been fixed by avoiding -a possible memory wrap. -L<[perl #131260]|https://rt.perl.org/Public/Bug/Display.html?id=131260> +XXX =back -=head1 Acknowledgements +=head1 Errata From Previous Releases -Perl 5.24.3 represents approximately 2 months of development since Perl 5.24.2 -and contains approximately 3,200 lines of changes across 120 files from 23 -authors. +=over 4 -Excluding auto-generated files, documentation and release tools, there were -approximately 1,600 lines of changes to 56 .pm, .t, .c and .h files. +=item * -Perl continues to flourish into its third decade thanks to a vibrant community -of users and developers. The following people are known to have contributed -the improvements that became Perl 5.24.3: +XXX Add anything here that we forgot to add, or were mistaken about, in +the perldelta of a previous release. -Aaron Crane, Craig A. Berry, Dagfinn Ilmari Mannsåker, Dan Collins, Daniel -Dragan, Dave Cross, David Mitchell, Eric Herman, Father Chrysostomos, H.Merijn -Brand, Hugo van der Sanden, James E Keenan, Jarkko Hietaniemi, John SJ -Anderson, Karl Williamson, Ken Brown, Lukas Mai, Matthew Horsfall, Stevan -Little, Steve Hay, Steven Humphrey, Tony Cook, Yves Orton. +=back -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. +=head1 Obituary + +XXX If any significant core contributor has died, we've added a short obituary +here. + +=head1 Acknowledgements -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. +XXX Generate this with: -For a more complete list of all of Perl's historical contributors, please see -the F<AUTHORS> file in the Perl source distribution. + perl Porting/acknowledgements.pl v5.24.3..HEAD =head1 Reporting Bugs @@ -318,8 +394,8 @@ 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. +L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> +for details of how to report the issue. =head1 SEE ALSO diff --git a/vms/descrip_mms.template b/vms/descrip_mms.template index 0751a0996d..6cf854d556 100644 --- a/vms/descrip_mms.template +++ b/vms/descrip_mms.template @@ -307,7 +307,7 @@ utils : $(utils1) $(utils2) $(utils3) $(utils4) $(utils5) extra.pods : miniperl @ @extra_pods.com -PERLDELTA_CURRENT = [.pod]perl5243delta.pod +PERLDELTA_CURRENT = [.pod]perl5244delta.pod $(PERLDELTA_CURRENT) : [.pod]perldelta.pod Copy/NoConfirm/Log $(MMS$SOURCE) $(PERLDELTA_CURRENT) diff --git a/win32/GNUmakefile b/win32/GNUmakefile index 81bda5a7e4..8e2baeb9e3 100644 --- a/win32/GNUmakefile +++ b/win32/GNUmakefile @@ -1544,7 +1544,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\perl5243delta.pod + copy ..\pod\perldelta.pod ..\pod\perl5244delta.pod $(MINIPERL) -I..\lib $(PL2BAT) $(UTILS) $(MINIPERL) -I..\lib ..\autodoc.pl .. $(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q .. @@ -1640,7 +1640,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 \ - perl5243delta.pod perlaix.pod perlamiga.pod perlandroid.pod \ + perl5244delta.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 4f406667c1..ad1006485e 100644 --- a/win32/Makefile +++ b/win32/Makefile @@ -1215,7 +1215,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\perl5243delta.pod + copy ..\pod\perldelta.pod ..\pod\perl5244delta.pod cd ..\win32 $(PERLEXE) $(PL2BAT) $(UTILS) $(MINIPERL) -I..\lib ..\autodoc.pl .. @@ -1313,7 +1313,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 \ - perl5243delta.pod perlaix.pod perlamiga.pod perlandroid.pod \ + perl5244delta.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 0692a8039a..9821d72e5b 100644 --- a/win32/makefile.mk +++ b/win32/makefile.mk @@ -1511,7 +1511,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\perl5243delta.pod + copy ..\pod\perldelta.pod ..\pod\perl5244delta.pod $(MINIPERL) -I..\lib $(PL2BAT) $(UTILS) $(MINIPERL) -I..\lib ..\autodoc.pl .. $(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q .. @@ -1608,7 +1608,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 \ - perl5243delta.pod perlaix.pod perlamiga.pod perlandroid.pod \ + perl5244delta.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 7fcd749273..c4e525029c 100644 --- a/win32/pod.mak +++ b/win32/pod.mak @@ -49,6 +49,7 @@ POD = perl.pod \ perl5241delta.pod \ perl5242delta.pod \ perl5243delta.pod \ + perl5244delta.pod \ perl561delta.pod \ perl56delta.pod \ perl581delta.pod \ @@ -192,6 +193,7 @@ MAN = perl.man \ perl5241delta.man \ perl5242delta.man \ perl5243delta.man \ + perl5244delta.man \ perl561delta.man \ perl56delta.man \ perl581delta.man \ @@ -335,6 +337,7 @@ HTML = perl.html \ perl5241delta.html \ perl5242delta.html \ perl5243delta.html \ + perl5244delta.html \ perl561delta.html \ perl56delta.html \ perl581delta.html \ @@ -478,6 +481,7 @@ TEX = perl.tex \ perl5241delta.tex \ perl5242delta.tex \ perl5243delta.tex \ + perl5244delta.tex \ perl561delta.tex \ perl56delta.tex \ perl581delta.tex \ |