In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/f04d27738ee6adaecc621ab34af012bf3eeefd8c?hp=1946ca1569f5d47e6ceffab716bce3a4169646fe>
- Log ----------------------------------------------------------------- commit f04d27738ee6adaecc621ab34af012bf3eeefd8c Author: Aaron Crane <[email protected]> Date: Thu Oct 20 13:33:35 2016 +0100 perldelta: delete unneeded sections M pod/perldelta.pod commit a6a32e9640ddebe08752e0f7357295d30420bf10 Author: Aaron Crane <[email protected]> Date: Thu Oct 20 13:33:00 2016 +0100 perldelta: draft for commits up to 3cc6a05eed M pod/perldelta.pod ----------------------------------------------------------------------- Summary of changes: pod/perldelta.pod | 267 ++++++++++-------------------------------------------- 1 file changed, 50 insertions(+), 217 deletions(-) diff --git a/pod/perldelta.pod b/pod/perldelta.pod index c218051..9efb9ab 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -2,9 +2,6 @@ =head1 NAME -[ this is a template for a new perldelta file. Any text flagged as XXX needs -to be processed before release. ] - perldelta - what is new for perl v5.25.6 =head1 DESCRIPTION @@ -15,69 +12,6 @@ release. If you are upgrading from an earlier release such as 5.25.4, first read L<perl5255delta>, which describes differences between 5.25.4 and 5.25.5. -=head1 Notice - -XXX Any important notices here - -=head1 Core Enhancements - -XXX New core language features go here. Summarize user-visible core language -enhancements. Particularly prominent performance optimisations could go -here, but most should go in the L</Performance Enhancements> section. - -[ List each enhancement as a =head2 entry ] - -=head1 Security - -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. - -[ List each security issue as a =head2 entry ] - -=head1 Incompatible Changes - -XXX For a release on a stable branch, this section aspires to be: - - 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. - -[ List each incompatible change as a =head2 entry ] - -=head1 Deprecations - -XXX Any deprecated features, syntax, modules etc. should be listed here. - -=head2 Module removals - -XXX Remove this section if inapplicable. - -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 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 - -=item XXX - -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 - -[ List each other deprecation as a =head2 entry ] - =head1 Performance Enhancements =over 4 @@ -141,73 +75,30 @@ XXX =back -=head1 Documentation - -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>. - -=head2 New Documentation - -XXX Changes which create B<new> files in F<pod/> go here. - -=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 * - -XXX Description of the change here - -=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>. -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 * -XXX L<message|perldiag/"message"> - -=back - -=head3 New Warnings - -=over 4 - -=item * - -XXX L<message|perldiag/"message"> +Using the empty pattern (which re-executes the last successfully-matched +pattern) inside a code block in another regex, as in C</(?{ s!!new! })/>, has +always previously yielded a segfault. It now produces an error: L<Use of the +empty pattern inside of a regex code block is forbidden|perldiag/"Use of the +empty pattern inside of a regex code block is forbidden">. =back =head2 Changes to Existing Diagnostics -XXX Changes (i.e. rewording) of diagnostic messages go here - =over 4 =item * @@ -224,34 +115,8 @@ tied/magical code. =back -=head1 Utility Changes - -XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here. -Most of these are built within the directory F<utils>. - -[ 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. ] - -=head2 L<XXX> - -=over 4 - -=item * - -XXX - -=back - =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 a =item entry ]. - =over 4 =item * @@ -263,14 +128,6 @@ bit-rotted. =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. - -[ List each test improvement as a =item entry ] - =over 4 =item * @@ -281,14 +138,17 @@ minutes. On slow systems they could otherwise take several hours, without significantly improving our understanding of the correctness of the code under test. -=back +In addition, some of those test cases have been split into more files, to +allow them to be run in parallel on suitable systems. -=head1 Platform Support +=item * -XXX Any changes to platform support should be listed in the sections below. +A new internal facility allows analysing the time taken by the individual +tests in Perl's own test suite; see F<Porting/harness-timer-report.pl>. -[ Within the sections, list each platform as a =item entry with specific -changes as paragraphs below it. ] +=back + +=head1 Platform Support =head2 New Platforms @@ -305,41 +165,8 @@ The C<make test> passes 98% of tests. =back -=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 ] - =over 4 =item * @@ -384,20 +211,45 @@ that apply various restrictions to the UTF-8 recognized as valid. =item * +A new API function C<sv_setvpv_bufsize()> allows simultaneously setting the +length and allocated size of the buffer in an C<SV>, growing the buffer if +necessary. + +=item * + +A new API macro C<SvPVCLEAR()> sets its C<SV> argument to an empty string, +like Perl-space C<$x = ''>, but with several optimisations. + +=item * + All parts of the internals now agree that the C<sassign> op is a C<BINOP>; previously it was listed as a C<BASEOP> in F<regen/opcodes>, which meant that several parts of the internals had to be special-cased to accommodate it. This oddity's original motivation was to handle code like C<$x ||= 1>; that is now handled in a simpler way. -=back +=item * -=head1 Selected Bug Fixes +Several new internal C macros have been added that take a string literal as +arguments, alongside existing routines that take the equivalent value as two +arguments, a character pointer and a length. The advantage of this is that +the length of the string is calculated automatically, rather than having to +be done manually. These routines are now used where appropriate across the +entire codebase. -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 * + +The code in F<gv.c> that determines whether a variable has a special meaning +to Perl has been simplified. + +=item * -[ List each fix as a =item entry ] +The C<DEBUGGING>-mode output for regex compilation and execution has been +enhanced. + +=back + +=head1 Selected Bug Fixes =over 4 @@ -418,40 +270,21 @@ Previously, a shebang line like C<#!perl -i u> could be erroneously interpreted as requesting the C<-u> option. This has been fixed. [perl #129336] -=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 * -XXX - -=back - -=head1 Errata From Previous Releases - -=over 4 +The regex engine was previously producing incorrect results in some rare +situations when backtracking past a trie that matches only one thing; this +showed up as capture buffers (C<$1>, C<$2>, etc) erroneously containing data +from regex execution paths that weren't actually executed for the final +match. [perl #129897] =item * -XXX Add anything here that we forgot to add, or were mistaken about, in -the perldelta of a previous release. +Certain regexes making use of the experimental C<regex_sets> feature could +trigger an assertion failure. This has been fixed. [perl #129322] =back -=head1 Obituary - -XXX If any significant core contributor has died, we've added a short obituary -here. - =head1 Acknowledgements XXX Generate this with: -- Perl5 Master Repository
