diff options
author | Chad Granum <exodist7@gmail.com> | 2016-11-20 13:30:09 -0800 |
---|---|---|
committer | Chad Granum <exodist7@gmail.com> | 2016-11-20 13:45:38 -0800 |
commit | 733dba2bbb7bed4c442a3eb17967f6ac9d1671e7 (patch) | |
tree | a15ba638d580f72833eac13f87cdbfcebdf1e235 /pod | |
parent | a32794896bfbf59d1dcfa3063a5a949e9f400391 (diff) | |
download | perl-733dba2bbb7bed4c442a3eb17967f6ac9d1671e7.tar.gz |
new perldelta
Diffstat (limited to 'pod')
-rw-r--r-- | pod/.gitignore | 2 | ||||
-rw-r--r-- | pod/perl.pod | 1 | ||||
-rw-r--r-- | pod/perl5257delta.pod | 733 | ||||
-rw-r--r-- | pod/perldelta.pod | 665 |
4 files changed, 906 insertions, 495 deletions
diff --git a/pod/.gitignore b/pod/.gitignore index 4789e085df..50e868535e 100644 --- a/pod/.gitignore +++ b/pod/.gitignore @@ -53,7 +53,7 @@ /roffitall # generated -/perl5257delta.pod +/perl5258delta.pod /perlapi.pod /perlintern.pod *.html diff --git a/pod/perl.pod b/pod/perl.pod index a8d69dad8b..bfbb74ac7a 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 + perl5257delta Perl changes in version 5.25.7 perl5256delta Perl changes in version 5.25.6 perl5255delta Perl changes in version 5.25.5 perl5254delta Perl changes in version 5.25.4 diff --git a/pod/perl5257delta.pod b/pod/perl5257delta.pod new file mode 100644 index 0000000000..65725025c3 --- /dev/null +++ b/pod/perl5257delta.pod @@ -0,0 +1,733 @@ +=encoding utf8 + +=head1 NAME + +perl5257delta - what is new for perl v5.25.7 + +=head1 DESCRIPTION + +This document describes differences between the 5.25.6 release and the 5.25.7 +release. + +If you are upgrading from an earlier release such as 5.25.5, first read +L<perl5256delta>, which describes differences between 5.25.5 and 5.25.6. + +=head1 Core Enhancements + +=head2 Indented Here-documents + +This adds a new modifier '~' to here-docs that tells the parser +that it should look for /^\s*$DELIM\n/ as the closing delimiter. + +These syntaxes are all supported: + + <<~EOF; + <<~\EOF; + <<~'EOF'; + <<~"EOF"; + <<~`EOF`; + <<~ 'EOF'; + <<~ "EOF"; + <<~ `EOF`; + +The '~' modifier will strip, from each line in the here-doc, the +same whitespace that appears before the delimiter. + +Newlines will be copied as is, and lines that don't include the +proper beginning whitespace will cause perl to croak. + +For example: + + if (1) { + print <<~EOF; + Hello there + EOF + } + +prints "Hello there\n" with no leading whitespace. + +=head2 '.' and @INC + +Perl now provides a way to build perl without C<.> in @INC by default. If you +want this feature, you can build with -Ddefault_inc_excludes_dot + +Because the testing / make process for perl modules do not function well with +C<.> missing from @INC, Perl now supports the environment variable +PERL_USE_UNSAFE_INC=1 which makes Perl behave as it previously did, returning +C<.> to @INC in all child processes. + +WARNING: PERL_USE_UNSAFE_INC has been provided during the perl 5.25 development +cycle and is not guaranteed to function in perl 5.26. + +=head2 create a safer utf8_hop() called utf8_hop_safe() + +Unlike utf8_hop(), utf8_hop_safe() won't navigate before the beginning or after +the end of the supplied buffer. + +=head2 Fix taint handling in list assignment + +commit v5.25.6-79-gb09ed99 reworked list assignment, and +accidentally broke taint handling at the same time. + +=head2 @{^CAPTURE}, %{^CAPTURE}, and %{^CAPTURE_ALL} + +@{^CAPTURE} exposes the capture buffers of the last match as an array. So $1 is +${^CAPTURE}[0]. + +%{^CAPTURE} is the equivalent to %+ (ie named captures) + +%{^CAPTURE_ALL} is the equivalent to %- (ie all named captures). + +=head2 op.c: silence compiler warning in fold_constants() + + op.c: In function ‘S_fold_constants’: + op.c:4374:28: warning: argument ‘o’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Wclobbered] + S_fold_constants(pTHX_ OP *o) + ^ + +This warning has been silenced. + +=head1 Performance Enhancements + +=over 4 + +=item * + +Reduce cost of SvVALID(). + +=item * + +C<$ref1 = $ref2> has been optimized. + +=item * + +Array and hash assignment are now faster, e.g. + + (..., @a) = (...); + (..., %h) = (...); + +especially when the RHS is empty. + +=item * + +Reduce the number of odd special cases for the SvSCREAM flag. + +=item * + +Avoid sv_catpvn() in do_vop() when unneeded. + +=item * + +Enhancements in Regex concat COW implementation. + +=item * + +Speed up AV and HV clearing/undeffing. + +=item * + +Better optimise array and hash assignment + +=back + +=head1 Modules and Pragmata + +=head2 Updated Modules and Pragmata + +=over 4 + +=item * + +L<podlators> has been upgraded from version 4.08 to 4.09. + +=item * + +L<Archive::Tar> has been upgraded from version 2.14 to 2.18. + +=item * + +L<B> has been upgraded from version 1.64 to 1.65. + +=item * + +L<Data::Dumper> has been upgraded from version 2.162 to 2.165. + +The XS implementation now supports Deparse. + +=item * + +L<Devel::Peek> has been upgraded from version 1.25 to 1.26. + +=item * + +L<DynaLoader> has been upgraded from version 1.39 to 1.40. + +=item * + +L<Errno> has been upgraded from version 1.26 to 1.27. + +Document that using C<%!> loads Errno for you. + +=item * + +L<File::Spec> has been upgraded from version 3.65 to 3.66. + +=item * + +L<Hash::Util> has been upgraded from version 0.21 to 0.22. + +=item * + +L<JSON::PP> has been upgraded from version 2.27400_01 to 2.27400_02. + +=item * + +L<List::Util> has been upgraded from version 1.46 to 1.46_02. + +=item * + +L<Math::BigInt> has been upgraded from version 1.999726(_01) to 1.999727. + +There have also been some core customizations. + +=item * + +L<Math::Complex> has been upgraded from version 1.59 to 1.5901. + +=item * + +L<Module::CoreList> has been upgraded from version 5.20161020 to 5.20161120. + +=item * + +L<mro> has been upgraded from version 1.19 to 1.20. + +=item * + +L<Net::Ping> has been upgraded from version 2.51 to 2.55. + +Remove sudo from 500_ping_icmp.t. + +Avoid stderr noise in tests + +Check for echo in new Net::Ping tests. + +=item * + +L<Opcode> has been upgraded from version 1.38 to 1.39. + +=item * + +L<POSIX> has been upgraded from version 1.73 to 1.75. + +=item * + +L<Scalar::Util> has been upgraded from version 1.46 to 1.46_02. + +=item * + +L<Storable> has been upgraded from version 2.58 to 2.59. + +=item * + +L<Term::ANSIColor> has been upgraded from version 4.05 to 4.06. + +=item * + +L<Test::Simple> has been upgraded from version 1.302059 to 1.302062. + +=item * + +L<threads> has been upgraded from version 2.09 to 2.10. + +=item * + +L<Time::HiRes> has been upgraded from version 1.9740_01 to 1.9740_03. + +Now uses clockid_t. + +=item * + +L<Unicode::Collate> has been upgraded from version 1.14 to 1.18. + +=item * + +L<Unicode::Normalize> is now maintained by p5p and has been moved to dist/ + +=item * + +L<Unicode::UCD> has been upgraded from version 0.66 to 0.67. + +=item * + +L<XS::Typemap> has been upgraded from version 0.14 to 0.15. + +=back + +=head1 Documentation + +=head2 Changes to Existing Documentation + +=head3 L<perlfunc> + +=over 4 + +=item * + +Defined on aggregates is no longer allowed. Perlfunc was still reporting it as +deprecated, and that it will be deleted in the future. + +=back + +=head3 L<perldata> + +=over 4 + +=item * + +Use of single character variables, with the variable name a non printable +character in the range \x80-\xFF is no longer allowed. Update the docs to +reflect this. + +=back + +=head3 L<perlobj> + +=over 4 + +=item * + +Added a section on calling methods using their fully qualified names. + +=item * + +Do not discourage manual @ISA. + +=back + +=head3 L<perlop> + +=over 4 + +=item * + +Clarify behavior single quote regexps. + +=back + +=head3 L<perllocale> + +=over 4 + +=item * + +Some locales aren't compatible with Perl. Note the potential bad +consequences of using them. + +=back + +=head3 L<perldiag> + +=over 4 + +=item * + +Deprecations are to be marked with a D. +C<"%s() is deprecated on :utf8 handles"> use a deprecation message, and as +such, such be marked C<"(D deprecated)"> and not C<"(W deprecated)">. + +=back + +=head3 L<perlguts> + +=over 4 + +=item * + +add pTHX_ to magic method examples. + +=back + +=head3 L<perlvar> + +=over 4 + +=item * + +Document @ISA. Was documented other places, not not in perlvar. + +=back + +=head3 L<perlootut> + +=over 4 + +=item * + +Tidy the document. + +=item * + +Mention Moo more. + +=back + +=head3 L<perlhack> + +=over 4 + +=item * + +Document Tab VS Space. + +=back + +=head3 L<perlre> + +=over 4 + +=item * + +Several minor enhancements to the documentation. + +=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 * + +Improve error for missing tie() package/method. This brings the error messages +in line with the ones used for normal method calls, despite not using +call_method(). + +=item * + +Make the sysread()/syswrite/() etc :utf8 handle warnings default. These +warnings were under 'deprecated' previously. + +=item * + +'do' errors now refer to 'do' (not 'require'). + +=back + +=head1 Utility Changes + +=over 4 + +=item * + +Porting/pod_lib.pl + +Removed spurious executable bit. + +Account for possibility of DOS file endings. + +=item * + +perf/benchmarks + +Tidy file, rename some symbols. + +=item * + +Porting/checkAUTHORS.pl + +Replace obscure character range with \w. + +=item * + +t/porting/regen.t + +try to be more helpful when tests fail. + +=item * + +utils/h2xs.PL + +Avoid infinite loop for enums. + +=back + +=head1 Configuration and Compilation + +=over 4 + +=item * + +Remove "Warning: perl appears in your path" + +This install warning is more or less obsolete, since most platforms already +*will* have a /usr/bin/perl or similar provided by the OS. + +=item * + +Reduce verbosity of "make install.man" + +Previously, two progress messages were emitted for each manpage: one by +installman itself, and one by the function in install_lib.pl that it calls to +actually install the file. Disabling the second of those in each case saves +over 750 lines of unhelpful output. + +=item * + +Cleanup for clang -Weverything support. [perl 129961] + +=item * + +Configure: signbit scan was assuming too much, stop assuming negative 0. + +=item * + +Various compiler warnings have been silenced. + +=item * + +Several smaller changes have been made to remove impediments to compiling under +C++11. + +=back + +=head1 Testing + +=over 4 + +=item * + +XS-APItest/t/utf8.t: Several small fixes and enhancements. + +=item * + +Tests for locales were erroneously using locales incompatible with Perl. + +=back + +=head1 Platform Support + +=head2 Platform-Specific Notes + +=over 4 + +=item Darwin + +don't treat -Dprefix=/usr as special, instead require an extra option +-Ddarwin_distribution to produce the same results. + +=item POSIX + +Finish removing POSIX deprecated functions. + +=item OS X + +OS X El Capitan doesn't implement the clock_gettime() or clock_getres() APIs, +emulate them as necessary. + +=item macOS + +Deprecated syscall(2) on macOS 10.12. + +=item EBCDIC + +Several tests have been updated to work (or be skipped) on EBCDIC platforms. + +=item HP-UX + +L<Net::Ping> UDP test is skipped on HP-UX. + +=item VMS + +Move _pDEPTH and _aDEPTH after config.h otherwise DEBUGGING may not be defined +yet. + +VAXC has not been a possibility for a good long while, and the versions of the +DEC/Compaq/HP/VSI C compiler that report themselves as "DEC" in a listing file +are 15 years or more out-of-date and can be safely desupported. + +=item VMS And Win32 + +Fix some breakage, add 'undef' value for default_inc_excludes_dot in build +scripts. + +=item Linux + +Drop support for Linux a.out Linux has used ELF for over twenty years. + +=item NetBSD-VAX + +Test fixes and minor updates. + +Account for lack of C<inf>, C<nan>, and C<-0.0> support. + +=item Win32 + +fp definitions have been updated. + +=item OpenBSD 6 + +OpenBSD 6 still does not support returning pid, gid or uid with SA_SIGINFO. +Make sure this is accounted for. + +=item FreeBSD + +t/uni/overload.t: Skip hanging test on FreeBSD. + +=back + +=head1 Internal Changes + +=over 4 + +=item * + +The meanings of some internal SV flags have been changed + +OPpRUNTIME, SVpbm_VALID, SVpbm_TAIL, SvTAIL_on, SvTAIL_off, SVrepl_EVAL, +SvEVALED + +=item * + +Change C<hv_fetch(…, "…", …, …)> to C<hv_fetchs(…, "…", …)> + +The dual-life dists all use Devel::PPPort, so they can use this function even +though it was only added in 5.10. + +=back + +=head1 Selected Bug Fixes + +=over 4 + +=item * + +Handle SvIMMORTALs in LHS of list assign. [perl #129991] + +=item * + +[perl #130010] a5540cf breaks texinfo + +This involved user-defined Unicode properties. + +=item * + +Fix error message for unclosed C<\N{> in regcomp. + +An unclosed C<\N{> could give the wrong error message +C<"\N{NAME} must be resolved by the lexer">. + +=item * + +List assignment in list context where the LHS contained aggregates and +where there were not enough RHS elements, used to skip scalar lvalues. +Previously, C<(($a,$b,@c,$d) = (1))> in list context returned C<($a)>; now +it returns C<($a,$b,$d)>. C<(($a,$b,$c) = (1))> is unchanged: it still +returns C<($a,$b,$c)>. This can be seen in the following: + + sub inc { $_++ for @_ } + inc(($a,$b,@c,$d) = (10)) + +Formerly, the values of C<($a,$b,$d)> would be left as C<(11,undef,undef)>; +now they are C<(11,1,1)>. + +=item * + +[perl 129903] + +The basic problem is that code like this: /(?{ s!!! })/ can trigger infinite +recursion on the C stack (not the normal perl stack) when the last successful +pattern in scope is itself. Since the C stack overflows this manifests as an +untrappable error/segfault, which then kills perl. + +We avoid the segfault by simply forbidding the use of the empty pattern when it +would resolve to the currently executing pattern. + +=item * + +[perl 128997] Avoid reading beyond the end of the line buffer when there's a +short UTF-8 character at the end. + +=item * + +[perl 129950] fix firstchar bitmap under utf8 with prefix optimisation. + +=item * + +[perl 129954] Carp/t/arg_string.t: be liberal in f/p formats. + +=item * + +[perl 129928] make do "a\0b" fail silently instead of throwing. + +=item * + +[perl 129130] make chdir allocate the stack it needs. + +=back + +=head1 Acknowledgements + +Perl 5.25.7 represents approximately 4 weeks of development since Perl 5.25.6 +and contains approximately 83,000 lines of changes across 630 files from 26 +authors. + +Excluding auto-generated files, documentation and release tools, there were +approximately 13,000 lines of changes to 340 .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.25.7: + +Aaron Crane, Abigail, Andrew Fresh, Andy Lester, Aristotle Pagaltzis, Chad +Granum, Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn Ilmari Mannsåker, Dan +Collins, Dave Rolsky, David Mitchell, Hauke D, H.Merijn Brand, Hugo van der +Sanden, James E Keenan, Jarkko Hietaniemi, Karl Williamson, Lukas Mai, Matthew +Horsfall, Nicolas R., Stefan Seifert, Steve Hay, Todd Rinaldo, 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 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 4656c569b9..9719550901 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -2,706 +2,383 @@ =head1 NAME -perldelta - what is new for perl v5.25.7 +[ 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.25.8 =head1 DESCRIPTION -This document describes differences between the 5.25.6 release and the 5.25.7 +This document describes differences between the 5.25.7 release and the 5.25.8 release. -If you are upgrading from an earlier release such as 5.25.5, first read -L<perl5256delta>, which describes differences between 5.25.5 and 5.25.6. - -=head1 Core Enhancements - -=head2 Indented Here-documents - -This adds a new modifier '~' to here-docs that tells the parser -that it should look for /^\s*$DELIM\n/ as the closing delimiter. - -These syntaxes are all supported: - - <<~EOF; - <<~\EOF; - <<~'EOF'; - <<~"EOF"; - <<~`EOF`; - <<~ 'EOF'; - <<~ "EOF"; - <<~ `EOF`; - -The '~' modifier will strip, from each line in the here-doc, the -same whitespace that appears before the delimiter. - -Newlines will be copied as is, and lines that don't include the -proper beginning whitespace will cause perl to croak. - -For example: - - if (1) { - print <<~EOF; - Hello there - EOF - } - -prints "Hello there\n" with no leading whitespace. - -=head2 '.' and @INC - -Perl now provides a way to build perl without C<.> in @INC by default. If you -want this feature, you can build with -Ddefault_inc_excludes_dot - -Because the testing / make process for perl modules do not function well with -C<.> missing from @INC, Perl now supports the environment variable -PERL_USE_UNSAFE_INC=1 which makes Perl behave as it previously did, returning -C<.> to @INC in all child processes. - -WARNING: PERL_USE_UNSAFE_INC has been provided during the perl 5.25 development -cycle and is not guaranteed to function in perl 5.26. - -=head2 create a safer utf8_hop() called utf8_hop_safe() +If you are upgrading from an earlier release such as 5.25.6, first read +L<perl5257delta>, which describes differences between 5.25.6 and 5.25.7. -Unlike utf8_hop(), utf8_hop_safe() won't navigate before the beginning or after -the end of the supplied buffer. +=head1 Notice -=head2 Fix taint handling in list assignment +XXX Any important notices here -commit v5.25.6-79-gb09ed99 reworked list assignment, and -accidentally broke taint handling at the same time. - -=head2 @{^CAPTURE}, %{^CAPTURE}, and %{^CAPTURE_ALL} - -@{^CAPTURE} exposes the capture buffers of the last match as an array. So $1 is -${^CAPTURE}[0]. - -%{^CAPTURE} is the equivalent to %+ (ie named captures) - -%{^CAPTURE_ALL} is the equivalent to %- (ie all named captures). - -=head2 op.c: silence compiler warning in fold_constants() - - op.c: In function ‘S_fold_constants’: - op.c:4374:28: warning: argument ‘o’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Wclobbered] - S_fold_constants(pTHX_ OP *o) - ^ - -This warning has been silenced. - -=head1 Performance Enhancements +=head1 Core Enhancements -=over 4 +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. -=item * +[ List each enhancement as a =head2 entry ] -Reduce cost of SvVALID(). +=head1 Security -=item * +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. -C<$ref1 = $ref2> has been optimized. +[ List each security issue as a =head2 entry ] -=item * +=head1 Incompatible Changes -Array and hash assignment are now faster, e.g. +XXX For a release on a stable branch, this section aspires to be: - (..., @a) = (...); - (..., %h) = (...); + 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. -especially when the RHS is empty. +[ List each incompatible change as a =head2 entry ] -=item * +=head1 Deprecations -Reduce the number of odd special cases for the SvSCREAM flag. +XXX Any deprecated features, syntax, modules etc. should be listed here. -=item * +=head2 Module removals -Avoid sv_catpvn() in do_vop() when unneeded. +XXX Remove this section if inapplicable. -=item * +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. -Enhancements in Regex concat COW implementation. +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. -=item * +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. -Speed up AV and HV clearing/undeffing. +=over -=item * +=item XXX -Better optimise array and hash assignment +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 Modules and Pragmata - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * - -L<podlators> has been upgraded from version 4.08 to 4.09. - -=item * - -L<Archive::Tar> has been upgraded from version 2.14 to 2.18. - -=item * - -L<B> has been upgraded from version 1.64 to 1.65. - -=item * - -L<Data::Dumper> has been upgraded from version 2.162 to 2.165. - -The XS implementation now supports Deparse. - -=item * - -L<Devel::Peek> has been upgraded from version 1.25 to 1.26. - -=item * - -L<DynaLoader> has been upgraded from version 1.39 to 1.40. +[ List each other deprecation as a =head2 entry ] -=item * - -L<Errno> has been upgraded from version 1.26 to 1.27. - -Document that using C<%!> loads Errno for you. - -=item * - -L<File::Spec> has been upgraded from version 3.65 to 3.66. - -=item * - -L<Hash::Util> has been upgraded from version 0.21 to 0.22. - -=item * - -L<JSON::PP> has been upgraded from version 2.27400_01 to 2.27400_02. - -=item * - -L<List::Util> has been upgraded from version 1.46 to 1.46_02. - -=item * - -L<Math::BigInt> has been upgraded from version 1.999726(_01) to 1.999727. - -There have also been some core customizations. - -=item * - -L<Math::Complex> has been upgraded from version 1.59 to 1.5901. - -=item * - -L<Module::CoreList> has been upgraded from version 5.20161020 to 5.20161120. - -=item * - -L<mro> has been upgraded from version 1.19 to 1.20. - -=item * - -L<Net::Ping> has been upgraded from version 2.51 to 2.55. - -Remove sudo from 500_ping_icmp.t. - -Avoid stderr noise in tests - -Check for echo in new Net::Ping tests. - -=item * - -L<Opcode> has been upgraded from version 1.38 to 1.39. - -=item * - -L<POSIX> has been upgraded from version 1.73 to 1.75. - -=item * - -L<Scalar::Util> has been upgraded from version 1.46 to 1.46_02. - -=item * - -L<Storable> has been upgraded from version 2.58 to 2.59. - -=item * - -L<Term::ANSIColor> has been upgraded from version 4.05 to 4.06. - -=item * - -L<Test::Simple> has been upgraded from version 1.302059 to 1.302062. - -=item * - -L<threads> has been upgraded from version 2.09 to 2.10. - -=item * - -L<Time::HiRes> has been upgraded from version 1.9740_01 to 1.9740_03. - -Now uses clockid_t. - -=item * - -L<Unicode::Collate> has been upgraded from version 1.14 to 1.18. - -=item * - -L<Unicode::Normalize> is now maintained by p5p and has been moved to dist/ - -=item * - -L<Unicode::UCD> has been upgraded from version 0.66 to 0.67. - -=item * - -L<XS::Typemap> has been upgraded from version 0.14 to 0.15. - -=back - -=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. -=head3 L<perlfunc> +[ List each enhancement as a =item entry ] =over 4 =item * -Defined on aggregates is no longer allowed. Perlfunc was still reporting it as -deprecated, and that it will be deleted in the future. +XXX =back -=head3 L<perldata> - -=over 4 - -=item * +=head1 Modules and Pragmata -Use of single character variables, with the variable name a non printable -character in the range \x80-\xFF is no longer allowed. Update the docs to -reflect this. +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. -=back +[ Within each section, list entries as a =item entry ] -=head3 L<perlobj> +=head2 New Modules and Pragmata =over 4 =item * -Added a section on calling methods using their fully qualified names. - -=item * - -Do not discourage manual @ISA. +XXX =back -=head3 L<perlop> +=head2 Updated Modules and Pragmata =over 4 =item * -Clarify behavior single quote regexps. +L<XXX> has been upgraded from version A.xx to B.yy. =back -=head3 L<perllocale> +=head2 Removed Modules and Pragmata =over 4 =item * -Some locales aren't compatible with Perl. Note the potential bad -consequences of using them. +XXX =back -=head3 L<perldiag> - -=over 4 - -=item * +=head1 Documentation -Deprecations are to be marked with a D. -C<"%s() is deprecated on :utf8 handles"> use a deprecation message, and as -such, such be marked C<"(D deprecated)"> and not C<"(W deprecated)">. +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>. -=back +=head2 New Documentation -=head3 L<perlguts> +XXX Changes which create B<new> files in F<pod/> go here. -=over 4 +=head3 L<XXX> -=item * +XXX Description of the purpose of the new file here -add pTHX_ to magic method examples. +=head2 Changes to Existing Documentation -=back +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<perlvar> +=head3 L<XXX> =over 4 =item * -Document @ISA. Was documented other places, not not in perlvar. +XXX Description of the change here =back -=head3 L<perlootut> - -=over 4 - -=item * +=head1 Diagnostics -Tidy the document. +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>. -=item * +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. -Mention Moo more. +=head2 New Diagnostics -=back +XXX Newly added diagnostic messages go under here, separated into New Errors +and New Warnings -=head3 L<perlhack> +=head3 New Errors =over 4 =item * -Document Tab VS Space. +XXX L<message|perldiag/"message"> =back -=head3 L<perlre> +=head3 New Warnings =over 4 =item * -Several minor enhancements to the documentation. +XXX L<message|perldiag/"message"> =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 +XXX Changes (i.e. rewording) of diagnostic messages go here -=item * - -Improve error for missing tie() package/method. This brings the error messages -in line with the ones used for normal method calls, despite not using -call_method(). - -=item * - -Make the sysread()/syswrite/() etc :utf8 handle warnings default. These -warnings were under 'deprecated' previously. +=over 4 =item * -'do' errors now refer to 'do' (not 'require'). +XXX Describe change here =back =head1 Utility Changes -=over 4 - -=item * - -Porting/pod_lib.pl +XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here. +Most of these are built within the directory F<utils>. -Removed spurious executable bit. +[ 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. ] -Account for possibility of DOS file endings. - -=item * +=head2 L<XXX> -perf/benchmarks - -Tidy file, rename some symbols. - -=item * - -Porting/checkAUTHORS.pl - -Replace obscure character range with \w. - -=item * - -t/porting/regen.t - -try to be more helpful when tests fail. +=over 4 =item * -utils/h2xs.PL - -Avoid infinite loop for enums. +XXX =back =head1 Configuration and Compilation -=over 4 - -=item * - -Remove "Warning: perl appears in your path" - -This install warning is more or less obsolete, since most platforms already -*will* have a /usr/bin/perl or similar provided by the OS. +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 * - -Reduce verbosity of "make install.man" - -Previously, two progress messages were emitted for each manpage: one by -installman itself, and one by the function in install_lib.pl that it calls to -actually install the file. Disabling the second of those in each case saves -over 750 lines of unhelpful output. - -=item * - -Cleanup for clang -Weverything support. [perl 129961] - -=item * - -Configure: signbit scan was assuming too much, stop assuming negative 0. +[ List changes as a =item entry ]. -=item * - -Various compiler warnings have been silenced. +=over 4 =item * -Several smaller changes have been made to remove impediments to compiling under -C++11. +XXX =back =head1 Testing -=over 4 +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. -=item * +[ List each test improvement as a =item entry ] -XS-APItest/t/utf8.t: Several small fixes and enhancements. +=over 4 =item * -Tests for locales were erroneously using locales incompatible with Perl. +XXX =back =head1 Platform Support -=head2 Platform-Specific Notes - -=over 4 - -=item Darwin - -don't treat -Dprefix=/usr as special, instead require an extra option --Ddarwin_distribution to produce the same results. - -=item POSIX - -Finish removing POSIX deprecated functions. - -=item OS X - -OS X El Capitan doesn't implement the clock_gettime() or clock_getres() APIs, -emulate them as necessary. - -=item macOS - -Deprecated syscall(2) on macOS 10.12. +XXX Any changes to platform support should be listed in the sections below. -=item EBCDIC +[ Within the sections, list each platform as a =item entry with specific +changes as paragraphs below it. ] -Several tests have been updated to work (or be skipped) on EBCDIC platforms. +=head2 New Platforms -=item HP-UX +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. -L<Net::Ping> UDP test is skipped on HP-UX. - -=item VMS - -Move _pDEPTH and _aDEPTH after config.h otherwise DEBUGGING may not be defined -yet. +=over 4 -VAXC has not been a possibility for a good long while, and the versions of the -DEC/Compaq/HP/VSI C compiler that report themselves as "DEC" in a listing file -are 15 years or more out-of-date and can be safely desupported. +=item XXX-some-platform -=item VMS And Win32 +XXX -Fix some breakage, add 'undef' value for default_inc_excludes_dot in build -scripts. +=back -=item Linux +=head2 Discontinued Platforms -Drop support for Linux a.out Linux has used ELF for over twenty years. +XXX List any platforms that this version of perl no longer compiles on. -=item NetBSD-VAX +=over 4 -Test fixes and minor updates. +=item XXX-some-platform -Account for lack of C<inf>, C<nan>, and C<-0.0> support. +XXX -=item Win32 +=back -fp definitions have been updated. +=head2 Platform-Specific Notes -=item OpenBSD 6 +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. -OpenBSD 6 still does not support returning pid, gid or uid with SA_SIGINFO. -Make sure this is accounted for. +=over 4 -=item FreeBSD +=item XXX-some-platform -t/uni/overload.t: Skip hanging test on FreeBSD. +XXX =back =head1 Internal Changes -=over 4 - -=item * +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. -The meanings of some internal SV flags have been changed +[ List each change as a =item entry ] -OPpRUNTIME, SVpbm_VALID, SVpbm_TAIL, SvTAIL_on, SvTAIL_off, SVrepl_EVAL, -SvEVALED +=over 4 =item * -Change C<hv_fetch(…, "…", …, …)> to C<hv_fetchs(…, "…", …)> - -The dual-life dists all use Devel::PPPort, so they can use this function even -though it was only added in 5.10. +XXX =back =head1 Selected Bug Fixes -=over 4 - -=item * +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>. -Handle SvIMMORTALs in LHS of list assign. [perl #129991] +[ List each fix as a =item entry ] -=item * - -[perl #130010] a5540cf breaks texinfo - -This involved user-defined Unicode properties. - -=item * - -Fix error message for unclosed C<\N{> in regcomp. - -An unclosed C<\N{> could give the wrong error message -C<"\N{NAME} must be resolved by the lexer">. +=over 4 =item * -List assignment in list context where the LHS contained aggregates and -where there were not enough RHS elements, used to skip scalar lvalues. -Previously, C<(($a,$b,@c,$d) = (1))> in list context returned C<($a)>; now -it returns C<($a,$b,$d)>. C<(($a,$b,$c) = (1))> is unchanged: it still -returns C<($a,$b,$c)>. This can be seen in the following: - - sub inc { $_++ for @_ } - inc(($a,$b,@c,$d) = (10)) +XXX -Formerly, the values of C<($a,$b,$d)> would be left as C<(11,undef,undef)>; -now they are C<(11,1,1)>. - -=item * - -[perl 129903] +=back -The basic problem is that code like this: /(?{ s!!! })/ can trigger infinite -recursion on the C stack (not the normal perl stack) when the last successful -pattern in scope is itself. Since the C stack overflows this manifests as an -untrappable error/segfault, which then kills perl. +=head1 Known Problems -We avoid the segfault by simply forbidding the use of the empty pattern when it -would resolve to the currently executing pattern. +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 a =item entry ] -[perl 128997] Avoid reading beyond the end of the line buffer when there's a -short UTF-8 character at the end. +=over 4 =item * -[perl 129950] fix firstchar bitmap under utf8 with prefix optimisation. - -=item * +XXX -[perl 129954] Carp/t/arg_string.t: be liberal in f/p formats. +=back -=item * +=head1 Errata From Previous Releases -[perl 129928] make do "a\0b" fail silently instead of throwing. +=over 4 =item * -[perl 129130] make chdir allocate the stack it needs. +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.25.7 represents approximately 4 weeks of development since Perl 5.25.6 -and contains approximately 83,000 lines of changes across 630 files from 26 -authors. - -Excluding auto-generated files, documentation and release tools, there were -approximately 13,000 lines of changes to 340 .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.25.7: +XXX If any significant core contributor has died, we've added a short obituary +here. -Aaron Crane, Abigail, Andrew Fresh, Andy Lester, Aristotle Pagaltzis, Chad -Granum, Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn Ilmari Mannsåker, Dan -Collins, Dave Rolsky, David Mitchell, Hauke D, H.Merijn Brand, Hugo van der -Sanden, James E Keenan, Jarkko Hietaniemi, Karl Williamson, Lukas Mai, Matthew -Horsfall, Nicolas R., Stefan Seifert, Steve Hay, Todd Rinaldo, 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. +=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.25.5..HEAD =head1 Reporting Bugs |