diff options
author | Steve Hay <steve.m.hay@googlemail.com> | 2016-07-20 17:46:48 +0100 |
---|---|---|
committer | Steve Hay <steve.m.hay@googlemail.com> | 2016-07-20 17:46:48 +0100 |
commit | c0ea32941a45c51071d793e208c290a31247c767 (patch) | |
tree | 322b3f2415c8478e0157adb302e70ee4a5fec149 /pod | |
parent | 9722322b15fd1f6d6c3503cbd9b2f4bbcc73b1f0 (diff) | |
download | perl-c0ea32941a45c51071d793e208c290a31247c767.tar.gz |
Create new perldelta for 5.25.4
Diffstat (limited to 'pod')
-rw-r--r-- | pod/.gitignore | 2 | ||||
-rw-r--r-- | pod/perl.pod | 1 | ||||
-rw-r--r-- | pod/perl5253delta.pod | 492 | ||||
-rw-r--r-- | pod/perldelta.pod | 456 |
4 files changed, 681 insertions, 270 deletions
diff --git a/pod/.gitignore b/pod/.gitignore index 286d32d0c6..50266bbeab 100644 --- a/pod/.gitignore +++ b/pod/.gitignore @@ -53,7 +53,7 @@ /roffitall # generated -/perl5253delta.pod +/perl5254delta.pod /perlapi.pod /perlintern.pod *.html diff --git a/pod/perl.pod b/pod/perl.pod index 0cbaa8d990..f8bf742daa 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 + perl5253delta Perl changes in version 5.25.3 perl5252delta Perl changes in version 5.25.2 perl5251delta Perl changes in version 5.25.1 perl5250delta Perl changes in version 5.25.0 diff --git a/pod/perl5253delta.pod b/pod/perl5253delta.pod new file mode 100644 index 0000000000..bc1b3758b5 --- /dev/null +++ b/pod/perl5253delta.pod @@ -0,0 +1,492 @@ +=encoding utf8 + +=head1 NAME + +perl5253delta - what is new for perl v5.25.3 + +=head1 DESCRIPTION + +This document describes differences between the 5.25.2 release and the 5.25.3 +release. + +If you are upgrading from an earlier release such as 5.25.1, first read +L<perl5252delta>, which describes differences between 5.25.1 and 5.25.2. + +=head1 Core Enhancements + +=head2 Unicode 9.0 is now supported + +A list of changes is at L<http://www.unicode.org/versions/Unicode9.0.0/>. +Modules that are shipped with core Perl but not maintained by p5p do not +necessarily support Unicode 9.0. L<Unicode::Normalize> does work on 9.0. + +=head2 Use of C<\p{I<script>}> uses the improved Script_Extensions property + +Unicode 6.0 introduced an improved form of the Script (C<sc>) property, and +called it Script_Extensions (C<scx>). As of now, Perl uses this improved +version when a property is specified as just C<\p{I<script>}>. The meaning of +compound forms, like C<\p{sc=I<script>}> are unchanged. This should make +programs be more accurate when determining if a character is used in a given +script, but there is a slight chance of breakage for programs that very +specifically needed the old behavior. See L<perlunicode/Scripts>. + +=head2 Declaring a reference to a variable + +As an experimental feature, Perl now allows the referencing operator to come +after L<C<my()>|perlfunc/my>, L<C<state()>|perlfunc/state>, +L<C<our()>|perlfunc/our>, or L<C<local()>|perlfunc/local>. This syntax must +be enabled with C<use feature 'declared_refs'>. It is experimental, and will +warn by default unless C<no warnings 'experimental::refaliasing'> is in effect. +It is intended mainly for use in assignments to references. For example: + + use experimental 'refaliasing', 'declared_refs'; + my \$a = \$b; + +See L<perlref/Assigning to References> for slightly more detail. + +=head1 Incompatible Changes + +=head2 C<${^ENCODING}> has been removed + +Consequently, the L<encoding> pragma's default mode is no longer supported. If +you still need to write your source code in encodings other than UTF-8, use a +source filter such as L<Filter::Encoding> on CPAN or L<encoding>'s C<Filter> +option. + +=head2 C<scalar(%hash)> return signature changed + +The value returned for C<scalar(%hash)> will no longer show information about +the buckets allocated in the hash. It will simply return the count of used +keys. It is thus equivalent to C<0+keys(%hash)>. + +A form of backwards compatibility is provided via C<Hash::Util::bucket_ratio()> +which provides the same behavior as C<scalar(%hash)> provided prior to Perl +5.25. + +=head1 Modules and Pragmata + +=head2 Updated Modules and Pragmata + +=over 4 + +=item * + +L<bignum> has been upgraded from version 0.42 to 0.43. + +=item * + +L<Data::Dumper> has been upgraded from version 2.160 to 2.161. + +=item * + +L<Devel::PPPort> has been upgraded from version 3.32 to 3.35. + +=item * + +L<Encode> has been upgraded from version 2.80 to 2.84. + +=item * + +L<encoding> has been upgraded from version 2.17 to 2.17_01. + +This module's default mode is no longer supported as of Perl 5.25.3. It now +dies when imported, unless the C<Filter> option is being used. + +=item * + +L<encoding::warnings> has been upgraded from version 0.12 to 0.13. + +This module is no longer supported as of Perl 5.25.3. It emits a warning to +that effect and then does nothing. + +=item * + +L<ExtUtils::ParseXS> has been upgraded from version 3.32 to 3.33. + +=item * + +L<ExtUtils::Typemaps> has been upgraded from version 3.32 to 3.33. + +=item * + +L<feature> has been upgraded from version 1.44 to 1.45. + +=item * + +L<Hash::Util> has been upgraded from version 0.19 to 0.20. + +=item * + +L<Math::BigInt> has been upgraded from version 1.999715 to 1.999726. + +=item * + +L<Math::BigInt::FastCalc> has been upgraded from version 0.40 to 0.42. + +=item * + +L<Math::BigRat> has been upgraded from version 0.260802 to 0.260804. + +=item * + +L<Module::CoreList> has been upgraded from version 5.20160620 to 5.20160720. + +=item * + +L<Parse::CPAN::Meta> has been upgraded from version 1.4417 to 1.4422. + +=item * + +L<Perl::OSType> has been upgraded from version 1.009 to 1.010. + +=item * + +L<Test::Simple> has been upgraded from version 1.302026 to 1.302045. + +=item * + +L<Time::HiRes> has been upgraded from version 1.9734 to 1.9739. + +=item * + +L<Unicode::UCD> has been upgraded from version 0.65 to 0.66. + +=item * + +L<version> has been upgraded from version 0.9916 to 0.9917. + +=item * + +L<warnings> has been upgraded from version 1.36 to 1.37. + +=item * + +L<XSLoader> has been upgraded from version 0.21 to 0.22, fixing a security hole +in which binary files could be loaded from a path outside of +L<C<@INC>|perlvar/@INC>. + +=back + +=head1 Documentation + +=head2 Changes to Existing Documentation + +=head3 L<perldata> and L<perltie> + +=over 4 + +=item * + +Updated documentation of C<scalar(%hash)>. See L</scalar(%hash) return +signature changed> above. + +=back + +=head3 L<perlexperiment> and L<perlref> + +=over 4 + +=item * + +Documented new feature: See L</Declaring a reference to a variable> above. + +=back + +=head3 L<perlfunc> + +=over 4 + +=item * + +Clarified documentation of L<C<seek()>|perlfunc/seek>, +L<C<tell()>|perlfunc/tell> and L<C<sysseek()>|perlfunc/sysseek>. +L<[perl #128607]|https://rt.perl.org/Public/Bug/Display.html?id=128607> + +=item * + +Removed obsolete documentation of L<C<study()>|perlfunc/study>. + +=back + +=head3 L<perlunicode> + +=over 4 + +=item * + +Documented change to C<\p{I<script>}> to now use the improved Script_Extensions +property. See L</Use of \p{script} uses the improved Script_Extensions +property> above. + +=item * + +Updated the text to correspond with changes in Unicode UTS#18, concerning +regular expressions, and Perl compatibility with what it says. + +=back + +=head3 L<perlvar> + +=over 4 + +=item * + +Removed obsolete documentation of C<${^ENCODING}>. See L</${^ENCODING} has +been removed> above. + +=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<The experimental declared_refs feature is not enabled|perldiag/"The experimental declared_refs feature is not enabled"> + +(F) To declare references to variables, as in C<my \%x>, you must first enable +the feature: + + no warnings "experimental::declared_refs"; + use feature "declared_refs"; + +=back + +=head3 New Warnings + +=over 4 + +=item * + +L<Declaring references is experimental|perldiag/"Declaring references is experimental"> + +(S experimental::declared_refs) This warning is emitted if you use a reference +constructor on the right-hand side of C<my()>, C<state()>, C<our()>, or +C<local()>. Simply suppress the warning if you want to use the feature, but +know that in doing so you are taking the risk of using an experimental feature +which may change or be removed in a future Perl version: + + no warnings "experimental::declared_refs"; + use feature "declared_refs"; + $fooref = my \$foo; + +=item * + +L<C<${^ENCODING}> is no longer supported|perldiag/"${^ENCODING} is no longer supported"> + +(D deprecated) The special variable C<${^ENCODING}>, formerly used to implement +the C<encoding> pragma, is no longer supported as of Perl 5.26.0. + +=back + +=head1 Configuration and Compilation + +=over 4 + +=item * + +F<Configure> now aborts if both "-Duselongdouble" and "-Dusequadmath" are +requested. +L<[perl #126203]|https://rt.perl.org/Public/Bug/Display.html?id=126203> + +=item * + +Fixed a bug in which F<Configure> could append "-quadmath" to the archname even +if it was already present. +L<[perl #128538]|https://rt.perl.org/Public/Bug/Display.html?id=128538> + +=item * + +Clang builds with "-DPERL_GLOBAL_STRUCT" or "-DPERL_GLOBAL_STRUCT_PRIVATE" have +been fixed (by disabling Thread Safety Analysis for these configurations). + +=back + +=head1 Testing + +=over 4 + +=item * + +A new test script, F<t/op/decl-refs.t>, has been added to test the new feature, +"Declaring a reference to a variable". + +=item * + +A new test script, F<t/re/anyof.t>, has been added to test that the ANYOF nodes +generated by bracketed character classes are as expected. + +=back + +=head1 Platform Support + +=head2 Platform-Specific Notes + +=over 4 + +=item VAX + +VAX floating point formats are now supported. + +=back + +=head1 Selected Bug Fixes + +=over 4 + +=item * + +An assertion failure with C<%: = 0> has been fixed. +L<[perl #128238]|https://rt.perl.org/Public/Bug/Display.html?id=128238> + +=item * + +In Perl 5.18, the parsing of C<"$foo::$bar"> was accidentally changed, such +that it would be treated as C<$foo."::".$bar>. The previous behavior, which +was to parse it as C<$foo:: . $bar>, has been restored. +L<[perl #128478]|https://rt.perl.org/Public/Bug/Display.html?id=128478> + +=item * + +Since Perl 5.20, line numbers have been off by one when perl is invoked with +the B<-x> switch. This has been fixed. +L<[perl #128508]|https://rt.perl.org/Public/Bug/Display.html?id=128508> + +=item * + +Vivifying a subroutine stub in a deleted stash (e.g., C<delete $My::{"Foo::"}; +\&My::Foo::foo>) no longer crashes. It had begun crashing in Perl 5.18. +L<[perl #128532]|https://rt.perl.org/Public/Bug/Display.html?id=128532> + +=item * + +Some obscure cases of subroutines and file handles being freed at the same time +could result in crashes, but have been fixed. The crash was introduced in Perl +5.22. +L<[perl #128597]|https://rt.perl.org/Public/Bug/Display.html?id=128597> + +=item * + +Code that looks for a variable name associated with an uninitialized value +could cause an assertion in cases where magic is involved, such as +C<$ISA[0][0]>. This has now been fixed. +L<[perl #128253]|https://rt.perl.org/Public/Bug/Display.html?id=128253> + +=item * + +A crash caused by code generating the warning "Subroutine STASH::NAME +redefined" in cases such as C<sub P::f{} undef *P::; *P::f =sub{};> has been +fixed. In these cases, where the STASH is missing, the warning will now appear +as "Subroutine NAME redefined". +L<[perl #128257]|https://rt.perl.org/Public/Bug/Display.html?id=128257> + +=item * + +Fixed an assertion triggered by some code that handles deprecated behavior in +formats, e.g. in cases like this: + + format STDOUT = + @ + 0"$x" + +L<[perl #128255]|https://rt.perl.org/Public/Bug/Display.html?id=128255> + +=item * + +A possible divide by zero in string transformation code on Windows has been +avoided, fixing a crash when collating an empty string. +L<[perl #128618]|https://rt.perl.org/Public/Bug/Display.html?id=128618> + +=item * + +Some regular expression parsing glitches could lead to assertion failures with +regular expressions such as C</(?<=/> and C</(?<!/>. This has now been fixed. +L<[perl #128170]|https://rt.perl.org/Public/Bug/Display.html?id=128170> + +=back + +=head1 Errata From Previous Releases + +=over 4 + +=item * + +Parsing bad POSIX charclasses no longer leaks memory. This was fixed in Perl +5.25.2 +L<[perl #128313]|https://rt.perl.org/Public/Bug/Display.html?id=128313> + +=item * + +Fixed issues with recursive regexes. The behavior was fixed in Perl 5.24.0. +L<[perl #126182]|https://rt.perl.org/Public/Bug/Display.html?id=126182> + +=back + +=head1 Acknowledgements + +Perl 5.25.3 represents approximately 4 weeks of development since Perl 5.25.2 +and contains approximately 67,000 lines of changes across 510 files from 25 +authors. + +Excluding auto-generated files, documentation and release tools, there were +approximately 40,000 lines of changes to 290 .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.3: + +Aaron Crane, Ævar Arnfjörð Bjarmason, Alex Vandiver, Aristotle Pagaltzis, +Chad Granum, Chris 'BinGOs' Williams, Chris Lamb, Craig A. Berry, Dan Collins, +David Mitchell, Father Chrysostomos, H.Merijn Brand, Jarkko Hietaniemi, Karl +Williamson, Lukas Mai, Matthew Horsfall, Salvador Fandiño, Sawyer X, +Sébastien Aperghis-Tramoni, Steffen Müller, Steve Hay, Todd Rinaldo, Tony +Cook, Unicode Consortium, 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 2607446c7d..1fd242a02d 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -2,414 +2,359 @@ =head1 NAME -perldelta - what is new for perl v5.25.3 +[ this is a template for a new perldelta file. Any text flagged as XXX needs +to be processed before release. ] + +perldelta - what is new for perl v5.25.4 =head1 DESCRIPTION -This document describes differences between the 5.25.2 release and the 5.25.3 +This document describes differences between the 5.25.3 release and the 5.25.4 release. -If you are upgrading from an earlier release such as 5.25.1, first read -L<perl5252delta>, which describes differences between 5.25.1 and 5.25.2. - -=head1 Core Enhancements +If you are upgrading from an earlier release such as 5.25.2, first read +L<perl5253delta>, which describes differences between 5.25.2 and 5.25.3. -=head2 Unicode 9.0 is now supported +=head1 Notice -A list of changes is at L<http://www.unicode.org/versions/Unicode9.0.0/>. -Modules that are shipped with core Perl but not maintained by p5p do not -necessarily support Unicode 9.0. L<Unicode::Normalize> does work on 9.0. +XXX Any important notices here -=head2 Use of C<\p{I<script>}> uses the improved Script_Extensions property +=head1 Core Enhancements -Unicode 6.0 introduced an improved form of the Script (C<sc>) property, and -called it Script_Extensions (C<scx>). As of now, Perl uses this improved -version when a property is specified as just C<\p{I<script>}>. The meaning of -compound forms, like C<\p{sc=I<script>}> are unchanged. This should make -programs be more accurate when determining if a character is used in a given -script, but there is a slight chance of breakage for programs that very -specifically needed the old behavior. See L<perlunicode/Scripts>. +XXX New core language features go here. Summarize user-visible core language +enhancements. Particularly prominent performance optimisations could go +here, but most should go in the L</Performance Enhancements> section. -=head2 Declaring a reference to a variable +[ List each enhancement as a =head2 entry ] -As an experimental feature, Perl now allows the referencing operator to come -after L<C<my()>|perlfunc/my>, L<C<state()>|perlfunc/state>, -L<C<our()>|perlfunc/our>, or L<C<local()>|perlfunc/local>. This syntax must -be enabled with C<use feature 'declared_refs'>. It is experimental, and will -warn by default unless C<no warnings 'experimental::refaliasing'> is in effect. -It is intended mainly for use in assignments to references. For example: +=head1 Security - use experimental 'refaliasing', 'declared_refs'; - my \$a = \$b; +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. -See L<perlref/Assigning to References> for slightly more detail. +[ List each security issue as a =head2 entry ] =head1 Incompatible Changes -=head2 C<${^ENCODING}> has been removed - -Consequently, the L<encoding> pragma's default mode is no longer supported. If -you still need to write your source code in encodings other than UTF-8, use a -source filter such as L<Filter::Encoding> on CPAN or L<encoding>'s C<Filter> -option. - -=head2 C<scalar(%hash)> return signature changed - -The value returned for C<scalar(%hash)> will no longer show information about -the buckets allocated in the hash. It will simply return the count of used -keys. It is thus equivalent to C<0+keys(%hash)>. - -A form of backwards compatibility is provided via C<Hash::Util::bucket_ratio()> -which provides the same behavior as C<scalar(%hash)> provided prior to Perl -5.25. +XXX For a release on a stable branch, this section aspires to be: -=head1 Modules and Pragmata - -=head2 Updated Modules and Pragmata - -=over 4 - -=item * + 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. -L<bignum> has been upgraded from version 0.42 to 0.43. +[ List each incompatible change as a =head2 entry ] -=item * +=head1 Deprecations -L<Data::Dumper> has been upgraded from version 2.160 to 2.161. +XXX Any deprecated features, syntax, modules etc. should be listed here. -=item * +=head2 Module removals -L<Devel::PPPort> has been upgraded from version 3.32 to 3.35. +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. -L<Encode> has been upgraded from version 2.80 to 2.84. +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. -L<encoding> has been upgraded from version 2.17 to 2.17_01. +=over -This module's default mode is no longer supported as of Perl 5.25.3. It now -dies when imported, unless the C<Filter> option is being used. +=item XXX -=item * +XXX Note that deprecated modules should be listed here even if they are listed +as an updated module in the L</Modules and Pragmata> section. -L<encoding::warnings> has been upgraded from version 0.12 to 0.13. +=back -This module is no longer supported as of Perl 5.25.3. It emits a warning to -that effect and then does nothing. +[ List each other deprecation as a =head2 entry ] -=item * +=head1 Performance Enhancements -L<ExtUtils::ParseXS> has been upgraded from version 3.32 to 3.33. +XXX Changes which enhance performance without changing behaviour go here. +There may well be none in a stable release. -=item * +[ List each enhancement as a =item entry ] -L<ExtUtils::Typemaps> has been upgraded from version 3.32 to 3.33. +=over 4 =item * -L<feature> has been upgraded from version 1.44 to 1.45. +XXX -=item * +=back -L<Hash::Util> has been upgraded from version 0.19 to 0.20. +=head1 Modules and Pragmata -=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<Math::BigInt> has been upgraded from version 1.999715 to 1.999726. +[ Within each section, list entries as a =item entry ] -=item * +=head2 New Modules and Pragmata -L<Math::BigInt::FastCalc> has been upgraded from version 0.40 to 0.42. +=over 4 =item * -L<Math::BigRat> has been upgraded from version 0.260802 to 0.260804. - -=item * +XXX -L<Module::CoreList> has been upgraded from version 5.20160620 to 5.20160720. +=back -=item * +=head2 Updated Modules and Pragmata -L<Parse::CPAN::Meta> has been upgraded from version 1.4417 to 1.4422. +=over 4 =item * -L<Perl::OSType> has been upgraded from version 1.009 to 1.010. +L<XXX> has been upgraded from version A.xx to B.yy. -=item * - -L<Test::Simple> has been upgraded from version 1.302026 to 1.302045. +=back -=item * +=head2 Removed Modules and Pragmata -L<Time::HiRes> has been upgraded from version 1.9734 to 1.9739. +=over 4 =item * -L<Unicode::UCD> has been upgraded from version 0.65 to 0.66. +XXX -=item * +=back -L<version> has been upgraded from version 0.9916 to 0.9917. +=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<warnings> has been upgraded from version 1.36 to 1.37. +=head2 New Documentation -=item * +XXX Changes which create B<new> files in F<pod/> go here. -L<XSLoader> has been upgraded from version 0.21 to 0.22, fixing a security hole -in which binary files could be loaded from a path outside of -L<C<@INC>|perlvar/@INC>. +=head3 L<XXX> -=back - -=head1 Documentation +XXX Description of the purpose of the new file here =head2 Changes to Existing Documentation -=head3 L<perldata> and L<perltie> +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 * -Updated documentation of C<scalar(%hash)>. See L</scalar(%hash) return -signature changed> above. +XXX Description of the change here =back -=head3 L<perlexperiment> and L<perlref> +=head1 Diagnostics -=over 4 +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. -Documented new feature: See L</Declaring a reference to a variable> above. +=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 * -Clarified documentation of L<C<seek()>|perlfunc/seek>, -L<C<tell()>|perlfunc/tell> and L<C<sysseek()>|perlfunc/sysseek>. -L<[perl #128607]|https://rt.perl.org/Public/Bug/Display.html?id=128607> - -=item * - -Removed obsolete documentation of L<C<study()>|perlfunc/study>. +XXX L<message|perldiag/"message"> =back -=head3 L<perlunicode> +=head3 New Warnings =over 4 =item * -Documented change to C<\p{I<script>}> to now use the improved Script_Extensions -property. See L</Use of \p{script} uses the improved Script_Extensions -property> above. - -=item * - -Updated the text to correspond with changes in Unicode UTS#18, concerning -regular expressions, and Perl compatibility with what it says. +XXX L<message|perldiag/"message"> =back -=head3 L<perlvar> +=head2 Changes to Existing Diagnostics + +XXX Changes (i.e. rewording) of diagnostic messages go here =over 4 =item * -Removed obsolete documentation of C<${^ENCODING}>. See L</${^ENCODING} has -been removed> above. +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<The experimental declared_refs feature is not enabled|perldiag/"The experimental declared_refs feature is not enabled"> +XXX -(F) To declare references to variables, as in C<my \%x>, you must first enable -the feature: +=back - no warnings "experimental::declared_refs"; - use feature "declared_refs"; +=head1 Configuration and Compilation -=back +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. -=head3 New Warnings +[ List changes as a =item entry ]. =over 4 =item * -L<Declaring references is experimental|perldiag/"Declaring references is experimental"> - -(S experimental::declared_refs) This warning is emitted if you use a reference -constructor on the right-hand side of C<my()>, C<state()>, C<our()>, or -C<local()>. Simply suppress the warning if you want to use the feature, but -know that in doing so you are taking the risk of using an experimental feature -which may change or be removed in a future Perl version: - - no warnings "experimental::declared_refs"; - use feature "declared_refs"; - $fooref = my \$foo; +XXX -=item * - -L<C<${^ENCODING}> is no longer supported|perldiag/"${^ENCODING} is no longer supported"> +=back -(D deprecated) The special variable C<${^ENCODING}>, formerly used to implement -the C<encoding> pragma, is no longer supported as of Perl 5.26.0. +=head1 Testing -=back +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. -=head1 Configuration and Compilation +[ List each test improvement as a =item entry ] =over 4 =item * -F<Configure> now aborts if both "-Duselongdouble" and "-Dusequadmath" are -requested. -L<[perl #126203]|https://rt.perl.org/Public/Bug/Display.html?id=126203> +XXX -=item * +=back -Fixed a bug in which F<Configure> could append "-quadmath" to the archname even -if it was already present. -L<[perl #128538]|https://rt.perl.org/Public/Bug/Display.html?id=128538> +=head1 Platform Support -=item * +XXX Any changes to platform support should be listed in the sections below. -Clang builds with "-DPERL_GLOBAL_STRUCT" or "-DPERL_GLOBAL_STRUCT_PRIVATE" have -been fixed (by disabling Thread Safety Analysis for these configurations). +[ Within the sections, list each platform as a =item entry with specific +changes as paragraphs below it. ] -=back +=head2 New Platforms -=head1 Testing +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 * - -A new test script, F<t/op/decl-refs.t>, has been added to test the new feature, -"Declaring a reference to a variable". - -=item * +=item XXX-some-platform -A new test script, F<t/re/anyof.t>, has been added to test that the ANYOF nodes -generated by bracketed character classes are as expected. +XXX =back -=head1 Platform Support +=head2 Discontinued Platforms -=head2 Platform-Specific Notes +XXX List any platforms that this version of perl no longer compiles on. =over 4 -=item VAX +=item XXX-some-platform -VAX floating point formats are now supported. +XXX =back -=head1 Selected Bug Fixes +=head2 Platform-Specific Notes -=over 4 +XXX List any changes for specific platforms. This could include configuration +and compilation changes or changes in portability/compatibility. However, +changes within modules for platforms should generally be listed in the +L</Modules and Pragmata> section. -=item * +=over 4 -An assertion failure with C<%: = 0> has been fixed. -L<[perl #128238]|https://rt.perl.org/Public/Bug/Display.html?id=128238> +=item XXX-some-platform -=item * +XXX -In Perl 5.18, the parsing of C<"$foo::$bar"> was accidentally changed, such -that it would be treated as C<$foo."::".$bar>. The previous behavior, which -was to parse it as C<$foo:: . $bar>, has been restored. -L<[perl #128478]|https://rt.perl.org/Public/Bug/Display.html?id=128478> +=back -=item * +=head1 Internal Changes -Since Perl 5.20, line numbers have been off by one when perl is invoked with -the B<-x> switch. This has been fixed. -L<[perl #128508]|https://rt.perl.org/Public/Bug/Display.html?id=128508> +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 a =item entry ] -Vivifying a subroutine stub in a deleted stash (e.g., C<delete $My::{"Foo::"}; -\&My::Foo::foo>) no longer crashes. It had begun crashing in Perl 5.18. -L<[perl #128532]|https://rt.perl.org/Public/Bug/Display.html?id=128532> +=over 4 =item * -Some obscure cases of subroutines and file handles being freed at the same time -could result in crashes, but have been fixed. The crash was introduced in Perl -5.22. -L<[perl #128597]|https://rt.perl.org/Public/Bug/Display.html?id=128597> +XXX -=item * +=back -Code that looks for a variable name associated with an uninitialized value -could cause an assertion in cases where magic is involved, such as -C<$ISA[0][0]>. This has now been fixed. -L<[perl #128253]|https://rt.perl.org/Public/Bug/Display.html?id=128253> +=head1 Selected Bug Fixes -=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>. + +[ List each fix as a =item entry ] -A crash caused by code generating the warning "Subroutine STASH::NAME -redefined" in cases such as C<sub P::f{} undef *P::; *P::f =sub{};> has been -fixed. In these cases, where the STASH is missing, the warning will now appear -as "Subroutine NAME redefined". -L<[perl #128257]|https://rt.perl.org/Public/Bug/Display.html?id=128257> +=over 4 =item * -Fixed an assertion triggered by some code that handles deprecated behavior in -formats, e.g. in cases like this: +XXX + +=back - format STDOUT = - @ - 0"$x" +=head1 Known Problems -L<[perl #128255]|https://rt.perl.org/Public/Bug/Display.html?id=128255> +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 ] -A possible divide by zero in string transformation code on Windows has been -avoided, fixing a crash when collating an empty string. -L<[perl #128618]|https://rt.perl.org/Public/Bug/Display.html?id=128618> +=over 4 =item * -Some regular expression parsing glitches could lead to assertion failures with -regular expressions such as C</(?<=/> and C</(?<!/>. This has now been fixed. -L<[perl #128170]|https://rt.perl.org/Public/Bug/Display.html?id=128170> +XXX =back @@ -419,53 +364,26 @@ L<[perl #128170]|https://rt.perl.org/Public/Bug/Display.html?id=128170> =item * -Parsing bad POSIX charclasses no longer leaks memory. This was fixed in Perl -5.25.2 -L<[perl #128313]|https://rt.perl.org/Public/Bug/Display.html?id=128313> - -=item * - -Fixed issues with recursive regexes. The behavior was fixed in Perl 5.24.0. -L<[perl #126182]|https://rt.perl.org/Public/Bug/Display.html?id=126182> +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.3 represents approximately 4 weeks of development since Perl 5.25.2 -and contains approximately 67,000 lines of changes across 510 files from 25 -authors. +=head1 Obituary -Excluding auto-generated files, documentation and release tools, there were -approximately 40,000 lines of changes to 290 .pm, .t, .c and .h files. +XXX If any significant core contributor has died, we've added a short obituary +here. -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.3: - -Aaron Crane, Ævar Arnfjörð Bjarmason, Alex Vandiver, Aristotle Pagaltzis, -Chad Granum, Chris 'BinGOs' Williams, Chris Lamb, Craig A. Berry, Dan Collins, -David Mitchell, Father Chrysostomos, H.Merijn Brand, Jarkko Hietaniemi, Karl -Williamson, Lukas Mai, Matthew Horsfall, Salvador Fandiño, Sawyer X, -Sébastien Aperghis-Tramoni, Steffen Müller, Steve Hay, Todd Rinaldo, Tony -Cook, Unicode Consortium, 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.3..HEAD =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 +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 @@ -475,8 +393,8 @@ will be sent off to perlbug@perl.org to be analysed by the Perl porting team. If the bug you are reporting has security implications which make it inappropriate to send to a publicly archived mailing list, then see -L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> for details of how to -report the issue. +L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> +for details of how to report the issue. =head1 SEE ALSO |