diff options
-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/perl5278delta.pod | 524 | ||||
-rw-r--r-- | pod/perldelta.pod | 476 | ||||
-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, 740 insertions, 290 deletions
@@ -5040,6 +5040,7 @@ pod/perl5274delta.pod Perl changes in version 5.27.4 pod/perl5275delta.pod Perl changes in version 5.27.5 pod/perl5276delta.pod Perl changes in version 5.27.6 pod/perl5277delta.pod Perl changes in version 5.27.7 +pod/perl5278delta.pod Perl changes in version 5.27.8 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 f3b6aaa9e7..b0f70cf045 100755 --- a/Makefile.SH +++ b/Makefile.SH @@ -570,7 +570,7 @@ esac $spitshell >>$Makefile <<'!NO!SUBS!' -perltoc_pod_prereqs = extra.pods pod/perl5278delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod +perltoc_pod_prereqs = extra.pods pod/perl5279delta.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 @@ -1120,9 +1120,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/perl5278delta.pod: pod/perldelta.pod - $(RMS) pod/perl5278delta.pod - $(LNS) perldelta.pod pod/perl5278delta.pod +pod/perl5279delta.pod: pod/perldelta.pod + $(RMS) pod/perl5279delta.pod + $(LNS) perldelta.pod pod/perl5279delta.pod extra.pods: $(MINIPERL_EXE) -@test ! -f extra.pods || rm -f `cat extra.pods` diff --git a/pod/.gitignore b/pod/.gitignore index 9f2c1fc4cc..8b137ad4b2 100644 --- a/pod/.gitignore +++ b/pod/.gitignore @@ -50,7 +50,7 @@ /roffitall # generated -/perl5278delta.pod +/perl5279delta.pod /perlapi.pod /perlintern.pod /perlmodlib.pod diff --git a/pod/perl.pod b/pod/perl.pod index 9629828851..994d362905 100644 --- a/pod/perl.pod +++ b/pod/perl.pod @@ -181,6 +181,7 @@ aux h2ph h2xs perlbug pl2pm pod2html pod2man splain xsubpp perlhist Perl history records perldelta Perl changes since previous version + perl5278delta Perl changes in version 5.27.8 perl5277delta Perl changes in version 5.27.7 perl5276delta Perl changes in version 5.27.6 perl5275delta Perl changes in version 5.27.5 diff --git a/pod/perl5278delta.pod b/pod/perl5278delta.pod new file mode 100644 index 0000000000..501e8b2cb3 --- /dev/null +++ b/pod/perl5278delta.pod @@ -0,0 +1,524 @@ +=encoding utf8 + +=head1 NAME + +perl5278delta - what is new for perl v5.27.8 + +=head1 DESCRIPTION + +This document describes differences between the 5.27.7 release and the 5.27.8 +release. + +If you are upgrading from an earlier release such as 5.27.6, first read +L<perl5277delta>, which describes differences between 5.27.6 and 5.27.7. + +=head1 Core Enhancements + +=head2 Close-on-exec flag set atomically + +When opening a file descriptor, perl now generally opens it with its +close-on-exec flag already set, on platforms that support doing so. +This improves thread safety, because it means that an C<exec> initiated +by one thread can no longer cause a file descriptor in the process +of being opened by another thread to be accidentally passed to the +executed program. + +Additionally, perl now sets the close-on-exec flag more reliably, whether +it does so atomically or not. Most file descriptors were getting the +flag set, but some were being missed. + +=head2 Mixed Unicode scripts are now detectable + +A mixture of scripts, such as Cyrillic and Latin, in a string is often +the sign of a spoofing attack. A new regular expression construct +now allows for easy detection of these. For example, you can say + + qr/(?script_run: \d+ \b )/x + +And the digits matched will all be from the same set of 10. You won't +get a look-alike digit from a different script that has a different +value than what it appears to be. + +=head2 String- and number-specific bitwise ops are no longer experimental + +The new string-specific (C<&. |. ^. ~.>) and number-specific (C<& | ^ ~>) +bitwise operators introduced in Perl 5.22 are no longer experimental. +Because the number-specific ops are spelled the same way as the existing +operators that choose their behaviour based on their operands, these +operators must still be enabled via the "bitwise" feature, in either of +these two ways: + + use feature "bitwise"; + + use v5.28; # "bitwise" now included + +They are also now enabled by the B<-E> command-line switch. + +The "bitwise" feature no longer emits a warning. Existing code that +disables the "experimental::bitwise" warning category that the feature +previously used will continue to work. + +One caveat that module authors ought to be aware of is that the numeric +operators now pass a fifth TRUE argument to overload methods. Any methods +that check the number of operands may croak if they do not expect so many. +XS authors in particular should be aware that this: + + SV * + bitop_handler (lobj, robj, swap) + +may need to be changed to this: + + SV * + bitop_handler (lobj, robj, swap, ...) + +=head1 Incompatible Changes + +=head2 Smartmatch and switch reversion + +The changes to the experimental smart match operator (C<~~>) and switch +(C<given>/C<when>) constructs that were made in Perl 5.27.7 have been +reverted due to the extent of the trouble caused to CPAN modules. +It is expected that smartmatch will be changed again in the future, +but preceded by some kind of explicit deprecation. + +=head2 Subroutine attribute and signature order + +The experimental subroutine signatures feature has been changed so that +subroutine attributes must now come before the signature rather than +after. This is because attributes like C<:lvalue> can affect the +compilation of code within the signature, for example: + + sub f :lvalue ($a = do { $x = "abc"; return substr($x,0,1)}) { ...} + +Note that this the second time they have been flipped: + + sub f :lvalue ($a, $b) { 1 }; # 5.20; 5.28 onwards + sub f ($a, $b) :lvalue { 1 }; # 5.22 - 5.26 + +=head1 Deprecations + +=head2 Use of code points over 0xFF in string bitwise operators + +Some uses of these already are illegal after a previous deprecation +cycle. This deprecates the remaining uses. See L<perldeprecation>. + +=head2 Use of unescaped C<"{"> immediately after a C<"("> in regular +expression patterns + +Using unescaped left braces is officially deprecated everywhere, but it +is not enforced in contexts where their use does not interfere with +expected extensions to the language. A deprecation is added in this +release when the brace appears immediately after an opening parenthesis. +Before this, even if the brace was part of a legal quantifier, it was +not interpreted as such, but as the literal characters, unlike other +quantifiers that follow a C<"("> which are considered errors. Now, +their use will raise a deprecation message, unless turned off. + +=head1 Performance Enhancements + +=over 4 + +=item * + +The performance of pattern matching C<[[:ascii:]]> and C<[[:^ascii:]]> +has been improved significantly except on EBCDIC platforms. + +=back + +=head1 Modules and Pragmata + +=head2 Updated Modules and Pragmata + +=over 4 + +=item * + +L<B> has been upgraded from version 1.73 to 1.74. + +=item * + +L<B::Deparse> has been upgraded from version 1.46 to 1.47. + +=item * + +L<Data::Dumper> has been upgraded from version 2.169 to 2.170. + +=item * + +L<Devel::PPPort> has been upgraded from version 3.37 to 3.38. + +=item * + +L<Digest::SHA> has been upgraded from version 6.00 to 6.01. + +=item * + +L<Encode> has been upgraded from version 2.93 to 2.94. + +=item * + +L<ExtUtils::Miniperl> has been upgraded from version 1.07 to 1.08. + +=item * + +L<feature> has been upgraded from version 1.50 to 1.51. + +=item * + +L<File::Spec> has been upgraded from version 3.71 to 3.72. + +=item * + +L<JSON::PP> has been upgraded from version 2.97000 to 2.97001. + +=item * + +L<Module::CoreList> has been upgraded from version 5.20171220 to 5.20180120. + +=item * + +L<Opcode> has been upgraded from version 1.42 to 1.43. + +=item * + +L<overload> has been upgraded from version 1.29 to 1.30. + +=item * + +L<Pod::Functions> has been upgraded from version 1.12 to 1.13. + +=item * + +L<Pod::Html> has been upgraded from version 1.23 to 1.24. + +=item * + +The podlators bundle has been upgraded from version 4.09 to 4.10. + +Man page references and function names now follow the Linux man page +formatting standards, instead of the Solaris standard. + +=item * + +L<Socket> has been upgraded from version 2.020_04 to 2.027. + +=item * + +L<Time::HiRes> has been upgraded from version 1.9748 to 1.9752. + +=item * + +L<Unicode::UCD> has been upgraded from version 0.69 to 0.70. + +The function C<num> now accepts an optional parameter to help in +diagnosing error returns. + +=item * + +L<utf8> has been upgraded from version 1.20 to 1.21. + +=item * + +L<warnings> has been upgraded from version 1.39 to 1.40. + +=item * + +L<XSLoader> has been upgraded from version 0.29 to 0.30. + +Platforms that use C<mod2fname> to edit the names of loadable +libraries now look for bootstrap (.bs) files under the correct, +non-edited name. + +=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<perlembed> + +=over 4 + +=item * + +An example in L<perlembed> used the string value of C<ERRSV> as a +format string when calling croak(). If that string contains format +codes such as C<%s> this could crash the program. + +This has been changed to a call to croak_sv(). + +An alternative could have been to supply a trivial format string: + + croak("%s", SvPV_nolen(ERRSV)); + +or as a special case for C<ERRSV> simply: + + croak(NULL); + +=back + +=head3 L<perlfunc> + +=over 4 + +=item * + +Improve the documentation of C<each> with a slightly more +explicit description of the sharing of iterator state, and with +caveats regarding the fragility of while-each loops. [perl #132644] + +=back + +=head3 L<perlfunc>, L<perlop>, L<perlsyn> + +=over 4 + +=item * + +Improve the documentation of while condition magic in various +places. [perl #132644] + +=back + +=head3 L<perlrun> + +=over 4 + +=item * + +Clarify the documentation of B<< -m >>. [perl #131518] + +=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 New Diagnostics + +=head3 New Errors + +=over 4 + +=item * + +L<Can't "goto" into a binary or list expression|perldiag/"Can't E<quot>gotoE<quot> into a binary or list expression"> + +Use of C<goto> to jump into the parameter of a binary or list operator has +been prohibited, to prevent crashes and stack corruption. [perl #130936] + +=back + +=head2 Changes to Existing Diagnostics + +=over 4 + +=item * + +The C<< Unable to flush stdout >> error message was missing a trailing +newline. [debian #875361] + +=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 * + +Allow override of watchdog timer count in F<re/pat_psycho.t>. + +This test can take a long time to run, so there is a timer to keep +this in check (currently, 5 minutes). This commit adds checking +the environment variable C<< PERL_TEST_TIME_OUT_FACTOR >>; if set, +the time out setting is multiplied by its value. + +=back + +=head1 Platform Support + +=head2 Platform-Specific Notes + +=over 4 + +=item Cygwin + +A build with the quadmath library can now be done on Cygwin. + +=item FreeBSD + +FreeBSD's F<< /usr/share/mk/sys.mk >> specifies C<< -O2 >> for +architectures other than arm and mips. By default, compile perl +with the same optimization levels. + +=item VMS + +Several fix-ups for F<configure.com>, marking function VMS has +(or doesn't have). + + +=back + +=head1 Internal Changes + +=over 4 + +=item * + +The format of the non-utf8 transliteration table attached to the C<op_pv> +field of C<OP_TRANS>/C<OP_TRANSR> ops has changed. It's now a +C<struct OPtrans_map>. + +=back + +=head1 Selected Bug Fixes + +=over 4 + +=item * + +The C<printf> format specifier C<%.0f> no longer rounds incorrectly +[perl #47602], and now shows the correct sign for a negative zero. + +=item * + +Fixed a use after free bug in pp_list introduced in 5.27.1. [perl #131954] + +=item * + +Don't stringify numeric first arguments to +C<< system() >> on Windows or VMS. [perl #132633] + +=item * + +Fixed an issue where the error C<< Scalar value @arrayname[0] better +written as $arrayname >> would give an error C<< Cannot printf Inf with 'c' >> +when arrayname starts with C<< Inf >>. [perl #132645] + +=item * + +The Perl implementation of C<< getcwd() >> in C<< Cwd >> in the PathTools +distribution now behaves the same as XS implementation on errors: it +returns an error, and sets C<< $! >>. [perl #132648] + +=item * + +Fixed argument counting in multiconcat when concatenating adjacent constants. +[perl #132646] + +=item * + +Vivify array elements when putting them on the stack. +Fixes [perl #8910] (reported in April 2002). + +=item * + +Fixed parsing of braced subscript after parens. Fixes [perl #8045] +(reported in December 2001). + +=item * + +C<tr/non_utf8/long_non_utf8/c> could give the wrong results when the +length of the replacement character list was greater than 0x7fff. + +=item * + +C<tr/non_utf8/non_utf8/cd> failed to add the implied +C<\x{100}-\x{7fffffff}> to the search character list. + +=back + +=head1 Known Problems + +=over 4 + +=item * + +The bugfix for [perl #2754] in Perl 5.27.7 turned out to cause so much +trouble on CPAN [perl #132577] that it is being postponed. The bug has +been restored, so C<exit(0)> in a C<UNITCHECK> or C<CHECK> block now +once again permits the main program to run, and C<exit(0)> in a C<BEGIN> +block once again permits C<INIT> blocks to run before exiting. The bug +will be fixed again for Perl 5.30. + +=back + +=head1 Acknowledgements + +Perl 5.27.8 represents approximately 4 weeks of development since Perl +5.27.7 and contains approximately 33,000 lines of changes across 290 files +from 17 authors. + +Excluding auto-generated files, documentation and release tools, there were +approximately 25,000 lines of changes to 160 .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.27.8: + +Abigail, Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn Ilmari Mannsåker, +David Mitchell, Father Chrysostomos, James E Keenan, Karen Etheridge, Karl +Williamson, Niko Tyni, Pali, Peter John Acklam, Scott Lanning, Tomasz +Konojacki, Tom Hukins, Tony Cook, Zefram. + +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/perldelta.pod b/pod/perldelta.pod index e34b130ed3..265a96fece 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -2,236 +2,157 @@ =head1 NAME -perldelta - what is new for perl v5.27.8 +[ 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.27.9 =head1 DESCRIPTION -This document describes differences between the 5.27.7 release and the 5.27.8 +This document describes differences between the 5.27.8 release and the 5.27.9 release. -If you are upgrading from an earlier release such as 5.27.6, first read -L<perl5277delta>, which describes differences between 5.27.6 and 5.27.7. - -=head1 Core Enhancements - -=head2 Close-on-exec flag set atomically - -When opening a file descriptor, perl now generally opens it with its -close-on-exec flag already set, on platforms that support doing so. -This improves thread safety, because it means that an C<exec> initiated -by one thread can no longer cause a file descriptor in the process -of being opened by another thread to be accidentally passed to the -executed program. +If you are upgrading from an earlier release such as 5.27.7, first read +L<perl5278delta>, which describes differences between 5.27.7 and 5.27.8. -Additionally, perl now sets the close-on-exec flag more reliably, whether -it does so atomically or not. Most file descriptors were getting the -flag set, but some were being missed. +=head1 Notice -=head2 Mixed Unicode scripts are now detectable +XXX Any important notices here -A mixture of scripts, such as Cyrillic and Latin, in a string is often -the sign of a spoofing attack. A new regular expression construct -now allows for easy detection of these. For example, you can say - - qr/(?script_run: \d+ \b )/x - -And the digits matched will all be from the same set of 10. You won't -get a look-alike digit from a different script that has a different -value than what it appears to be. +=head1 Core Enhancements -=head2 String- and number-specific bitwise ops are no longer experimental +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. -The new string-specific (C<&. |. ^. ~.>) and number-specific (C<& | ^ ~>) -bitwise operators introduced in Perl 5.22 are no longer experimental. -Because the number-specific ops are spelled the same way as the existing -operators that choose their behaviour based on their operands, these -operators must still be enabled via the "bitwise" feature, in either of -these two ways: +[ List each enhancement as a =head2 entry ] - use feature "bitwise"; +=head1 Security - use v5.28; # "bitwise" now included +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. -They are also now enabled by the B<-E> command-line switch. +[ List each security issue as a =head2 entry ] -The "bitwise" feature no longer emits a warning. Existing code that -disables the "experimental::bitwise" warning category that the feature -previously used will continue to work. +=head1 Incompatible Changes -One caveat that module authors ought to be aware of is that the numeric -operators now pass a fifth TRUE argument to overload methods. Any methods -that check the number of operands may croak if they do not expect so many. -XS authors in particular should be aware that this: +XXX For a release on a stable branch, this section aspires to be: - SV * - bitop_handler (lobj, robj, swap) + 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. -may need to be changed to this: +[ List each incompatible change as a =head2 entry ] - SV * - bitop_handler (lobj, robj, swap, ...) +=head1 Deprecations -=head1 Incompatible Changes +XXX Any deprecated features, syntax, modules etc. should be listed here. -=head2 Smartmatch and switch reversion +=head2 Module removals -The changes to the experimental smart match operator (C<~~>) and switch -(C<given>/C<when>) constructs that were made in Perl 5.27.7 have been -reverted due to the extent of the trouble caused to CPAN modules. -It is expected that smartmatch will be changed again in the future, -but preceded by some kind of explicit deprecation. +XXX Remove this section if not applicable. -=head2 Subroutine attribute and signature order +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. -The experimental subroutine signatures feature has been changed so that -subroutine attributes must now come before the signature rather than -after. This is because attributes like C<:lvalue> can affect the -compilation of code within the signature, for example: +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. - sub f :lvalue ($a = do { $x = "abc"; return substr($x,0,1)}) { ...} +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. -Note that this the second time they have been flipped: +=over - sub f :lvalue ($a, $b) { 1 }; # 5.20; 5.28 onwards - sub f ($a, $b) :lvalue { 1 }; # 5.22 - 5.26 +=item XXX -=head1 Deprecations +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. -=head2 Use of code points over 0xFF in string bitwise operators +=back -Some uses of these already are illegal after a previous deprecation -cycle. This deprecates the remaining uses. See L<perldeprecation>. +[ List each other deprecation as a =head2 entry ] -=head2 Use of unescaped C<"{"> immediately after a C<"("> in regular -expression patterns +=head1 Performance Enhancements -Using unescaped left braces is officially deprecated everywhere, but it -is not enforced in contexts where their use does not interfere with -expected extensions to the language. A deprecation is added in this -release when the brace appears immediately after an opening parenthesis. -Before this, even if the brace was part of a legal quantifier, it was -not interpreted as such, but as the literal characters, unlike other -quantifiers that follow a C<"("> which are considered errors. Now, -their use will raise a deprecation message, unless turned off. +XXX Changes which enhance performance without changing behaviour go here. +There may well be none in a stable release. -=head1 Performance Enhancements +[ List each enhancement as an =item entry ] =over 4 =item * -The performance of pattern matching C<[[:ascii:]]> and C<[[:^ascii:]]> -has been improved significantly except on EBCDIC platforms. +XXX =back =head1 Modules and Pragmata -=head2 Updated Modules and Pragmata - -=over 4 - -=item * +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. -L<B> has been upgraded from version 1.73 to 1.74. - -=item * +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.) -L<B::Deparse> has been upgraded from version 1.46 to 1.47. +[ Within each section, list entries as an =item entry ] -=item * - -L<Data::Dumper> has been upgraded from version 2.169 to 2.170. - -=item * +=head2 New Modules and Pragmata -L<Devel::PPPort> has been upgraded from version 3.37 to 3.38. - -=item * - -L<Digest::SHA> has been upgraded from version 6.00 to 6.01. - -=item * - -L<Encode> has been upgraded from version 2.93 to 2.94. - -=item * - -L<ExtUtils::Miniperl> has been upgraded from version 1.07 to 1.08. - -=item * - -L<feature> has been upgraded from version 1.50 to 1.51. - -=item * - -L<File::Spec> has been upgraded from version 3.71 to 3.72. - -=item * - -L<JSON::PP> has been upgraded from version 2.97000 to 2.97001. - -=item * - -L<Module::CoreList> has been upgraded from version 5.20171220 to 5.20180120. - -=item * - -L<Opcode> has been upgraded from version 1.42 to 1.43. - -=item * - -L<overload> has been upgraded from version 1.29 to 1.30. - -=item * - -L<Pod::Functions> has been upgraded from version 1.12 to 1.13. +=over 4 =item * -L<Pod::Html> has been upgraded from version 1.23 to 1.24. +XXX Remove this section if not applicable. -=item * +=back -The podlators bundle has been upgraded from version 4.09 to 4.10. +=head2 Updated Modules and Pragmata -Man page references and function names now follow the Linux man page -formatting standards, instead of the Solaris standard. +=over 4 =item * -L<Socket> has been upgraded from version 2.020_04 to 2.027. - -=item * +L<XXX> has been upgraded from version A.xx to B.yy. -L<Time::HiRes> has been upgraded from version 1.9748 to 1.9752. +If there was something important to note about this change, include that here. -=item * +=back -L<Unicode::UCD> has been upgraded from version 0.69 to 0.70. +=head2 Removed Modules and Pragmata -The function C<num> now accepts an optional parameter to help in -diagnosing error returns. +=over 4 =item * -L<utf8> has been upgraded from version 1.20 to 1.21. +XXX -=item * +=back -L<warnings> has been upgraded from version 1.39 to 1.40. +=head1 Documentation -=item * +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>. -L<XSLoader> has been upgraded from version 0.29 to 0.30. +=head2 New Documentation -Platforms that use C<mod2fname> to edit the names of loadable -libraries now look for bootstrap (.bs) files under the correct, -non-edited name. +XXX Changes which create B<new> files in F<pod/> go here. -=back +=head3 L<XXX> -=head1 Documentation +XXX Description of the purpose of the new file here =head2 Changes to Existing Documentation @@ -239,251 +160,250 @@ 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>. +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. + Additionally, the following selected changes have been made: -=head3 L<perlembed> +=head3 L<XXX> =over 4 =item * -An example in L<perlembed> used the string value of C<ERRSV> as a -format string when calling croak(). If that string contains format -codes such as C<%s> this could crash the program. +XXX Description of the change here -This has been changed to a call to croak_sv(). +=back -An alternative could have been to supply a trivial format string: +=head1 Diagnostics - croak("%s", SvPV_nolen(ERRSV)); +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>. -or as a special case for C<ERRSV> simply: +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. - croak(NULL); +=head2 New Diagnostics -=back +XXX Newly added diagnostic messages go under here, separated into New Errors +and New Warnings -=head3 L<perlfunc> +=head3 New Errors =over 4 =item * -Improve the documentation of C<each> with a slightly more -explicit description of the sharing of iterator state, and with -caveats regarding the fragility of while-each loops. [perl #132644] +XXX L<message|perldiag/"message"> =back -=head3 L<perlfunc>, L<perlop>, L<perlsyn> +=head3 New Warnings =over 4 =item * -Improve the documentation of while condition magic in various -places. [perl #132644] +XXX L<message|perldiag/"message"> =back -=head3 L<perlrun> +=head2 Changes to Existing Diagnostics + +XXX Changes (i.e. rewording) of diagnostic messages go here =over 4 =item * -Clarify the documentation of B<< -m >>. [perl #131518] +XXX Describe change here =back -=head1 Diagnostics +=head1 Utility Changes -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 Changes to installed programs such as F<perlbug> and F<xsubpp> go here. +Most of these are built within the directory F<utils>. -=head2 New Diagnostics +[ 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. ] -=head3 New Errors +=head2 L<XXX> =over 4 =item * -L<Can't "goto" into a binary or list expression|perldiag/"Can't E<quot>gotoE<quot> into a binary or list expression"> - -Use of C<goto> to jump into the parameter of a binary or list operator has -been prohibited, to prevent crashes and stack corruption. [perl #130936] +XXX =back -=head2 Changes to Existing Diagnostics +=head1 Configuration and Compilation + +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. + +[ List changes as an =item entry ]. =over 4 =item * -The C<< Unable to flush stdout >> error message was missing a trailing -newline. [debian #875361] +XXX =back =head1 Testing +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. + +XXX If there were no significant test changes, say this: + +Tests were added and changed to reflect the other additions and changes +in this release. + +XXX If instead there were significant changes, say this: + Tests were added and changed to reflect the other additions and changes in this release. Furthermore, these significant changes were made: +[ List each test improvement as an =item entry ] + =over 4 =item * -Allow override of watchdog timer count in F<re/pat_psycho.t>. - -This test can take a long time to run, so there is a timer to keep -this in check (currently, 5 minutes). This commit adds checking -the environment variable C<< PERL_TEST_TIME_OUT_FACTOR >>; if set, -the time out setting is multiplied by its value. +XXX =back =head1 Platform Support -=head2 Platform-Specific Notes +XXX Any changes to platform support should be listed in the sections below. + +[ Within the sections, list each platform as an =item entry with specific +changes as paragraphs below it. ] + +=head2 New Platforms + +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. =over 4 -=item Cygwin +=item XXX-some-platform -A build with the quadmath library can now be done on Cygwin. +XXX -=item FreeBSD +=back -FreeBSD's F<< /usr/share/mk/sys.mk >> specifies C<< -O2 >> for -architectures other than arm and mips. By default, compile perl -with the same optimization levels. +=head2 Discontinued Platforms -=item VMS +XXX List any platforms that this version of perl no longer compiles on. + +=over 4 -Several fix-ups for F<configure.com>, marking function VMS has -(or doesn't have). +=item XXX-some-platform +XXX =back -=head1 Internal Changes +=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 * +=item XXX-some-platform -The format of the non-utf8 transliteration table attached to the C<op_pv> -field of C<OP_TRANS>/C<OP_TRANSR> ops has changed. It's now a -C<struct OPtrans_map>. +XXX =back -=head1 Selected Bug Fixes +=head1 Internal Changes -=over 4 +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. -=item * +[ List each change as an =item entry ] -The C<printf> format specifier C<%.0f> no longer rounds incorrectly -[perl #47602], and now shows the correct sign for a negative zero. +=over 4 =item * -Fixed a use after free bug in pp_list introduced in 5.27.1. [perl #131954] - -=item * +XXX -Don't stringify numeric first arguments to -C<< system() >> on Windows or VMS. [perl #132633] +=back -=item * +=head1 Selected Bug Fixes -Fixed an issue where the error C<< Scalar value @arrayname[0] better -written as $arrayname >> would give an error C<< Cannot printf Inf with 'c' >> -when arrayname starts with C<< Inf >>. [perl #132645] +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>. -=item * +[ List each fix as an =item entry ] -The Perl implementation of C<< getcwd() >> in C<< Cwd >> in the PathTools -distribution now behaves the same as XS implementation on errors: it -returns an error, and sets C<< $! >>. [perl #132648] +=over 4 =item * -Fixed argument counting in multiconcat when concatenating adjacent constants. -[perl #132646] - -=item * +XXX -Vivify array elements when putting them on the stack. -Fixes [perl #8910] (reported in April 2002). +=back -=item * +=head1 Known Problems -Fixed parsing of braced subscript after parens. Fixes [perl #8045] -(reported in December 2001). +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<tr/non_utf8/long_non_utf8/c> could give the wrong results when the -length of the replacement character list was greater than 0x7fff. +=over 4 =item * -C<tr/non_utf8/non_utf8/cd> failed to add the implied -C<\x{100}-\x{7fffffff}> to the search character list. +XXX =back -=head1 Known Problems +=head1 Errata From Previous Releases =over 4 =item * -The bugfix for [perl #2754] in Perl 5.27.7 turned out to cause so much -trouble on CPAN [perl #132577] that it is being postponed. The bug has -been restored, so C<exit(0)> in a C<UNITCHECK> or C<CHECK> block now -once again permits the main program to run, and C<exit(0)> in a C<BEGIN> -block once again permits C<INIT> blocks to run before exiting. The bug -will be fixed again for Perl 5.30. +XXX Add anything here that we forgot to add, or were mistaken about, in +the perldelta of a previous release. =back -=head1 Acknowledgements - -Perl 5.27.8 represents approximately 4 weeks of development since Perl -5.27.7 and contains approximately 33,000 lines of changes across 290 files -from 17 authors. - -Excluding auto-generated files, documentation and release tools, there were -approximately 25,000 lines of changes to 160 .pm, .t, .c and .h files. +=head1 Obituary -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.27.8: +XXX If any significant core contributor or member of the CPAN community has +died, add a short obituary here. -Abigail, Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn Ilmari Mannsåker, -David Mitchell, Father Chrysostomos, James E Keenan, Karen Etheridge, Karl -Williamson, Niko Tyni, Pali, Peter John Acklam, Scott Lanning, Tomasz -Konojacki, Tom Hukins, Tony Cook, Zefram. - -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 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.27.8..HEAD =head1 Reporting Bugs diff --git a/vms/descrip_mms.template b/vms/descrip_mms.template index 2fcfad4dd4..891ad01ed0 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]perl5278delta.pod +PERLDELTA_CURRENT = [.pod]perl5279delta.pod $(PERLDELTA_CURRENT) : [.pod]perldelta.pod Copy/NoConfirm/Log $(MMS$SOURCE) $(PERLDELTA_CURRENT) diff --git a/win32/GNUmakefile b/win32/GNUmakefile index ede1b05723..b79a148a57 100644 --- a/win32/GNUmakefile +++ b/win32/GNUmakefile @@ -1654,7 +1654,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\perl5278delta.pod + copy ..\pod\perldelta.pod ..\pod\perl5279delta.pod $(MINIPERL) -I..\lib $(PL2BAT) $(UTILS) $(MINIPERL) -I..\lib ..\autodoc.pl .. $(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q .. @@ -1751,7 +1751,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 \ - perl5278delta.pod perlaix.pod perlamiga.pod perlandroid.pod \ + perl5279delta.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 be2a18147c..281635d6e0 100644 --- a/win32/Makefile +++ b/win32/Makefile @@ -1274,7 +1274,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\perl5278delta.pod + copy ..\pod\perldelta.pod ..\pod\perl5279delta.pod cd ..\win32 $(PERLEXE) $(PL2BAT) $(UTILS) $(MINIPERL) -I..\lib ..\autodoc.pl .. @@ -1373,7 +1373,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 \ - perl5278delta.pod perlaix.pod perlamiga.pod perlandroid.pod \ + perl5279delta.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 d17ae7c09c..59cf49e561 100644 --- a/win32/makefile.mk +++ b/win32/makefile.mk @@ -1596,7 +1596,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\perl5278delta.pod + copy ..\pod\perldelta.pod ..\pod\perl5279delta.pod $(MINIPERL) -I..\lib $(PL2BAT) $(UTILS) $(MINIPERL) -I..\lib ..\autodoc.pl .. $(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q .. @@ -1694,7 +1694,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 \ - perl5278delta.pod perlaix.pod perlamiga.pod perlandroid.pod \ + perl5279delta.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 db2d3071d5..83c1d3144b 100644 --- a/win32/pod.mak +++ b/win32/pod.mak @@ -60,6 +60,7 @@ POD = perl.pod \ perl5276delta.pod \ perl5277delta.pod \ perl5278delta.pod \ + perl5279delta.pod \ perl561delta.pod \ perl56delta.pod \ perl581delta.pod \ @@ -215,6 +216,7 @@ MAN = perl.man \ perl5276delta.man \ perl5277delta.man \ perl5278delta.man \ + perl5279delta.man \ perl561delta.man \ perl56delta.man \ perl581delta.man \ @@ -369,6 +371,7 @@ HTML = perl.html \ perl5276delta.html \ perl5277delta.html \ perl5278delta.html \ + perl5279delta.html \ perl561delta.html \ perl56delta.html \ perl581delta.html \ @@ -524,6 +527,7 @@ TEX = perl.tex \ perl5276delta.tex \ perl5277delta.tex \ perl5278delta.tex \ + perl5279delta.tex \ perl561delta.tex \ perl56delta.tex \ perl581delta.tex \ |