This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
new delta for 5.25.2
authorSawyer X <xsawyerx@cpan.org>
Fri, 20 May 2016 22:03:08 +0000 (00:03 +0200)
committerSawyer X <xsawyerx@cpan.org>
Fri, 20 May 2016 22:03:08 +0000 (00:03 +0200)
MANIFEST
Makefile.SH
pod/.gitignore
pod/perl.pod
pod/perl5251delta.pod [new file with mode: 0644]
pod/perldelta.pod
vms/descrip_mms.template
win32/GNUmakefile
win32/Makefile
win32/makefile.mk
win32/pod.mak

index eaeb89c..cb53872 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -4740,6 +4740,7 @@ pod/perl5221delta.pod             Perl changes in version 5.22.1
 pod/perl5222delta.pod          Perl changes in version 5.22.2
 pod/perl5240delta.pod          Perl changes in version 5.24.0
 pod/perl5250delta.pod          Perl changes in version 5.25.0
+pod/perl5251delta.pod          Perl changes in version 5.25.1
 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
index f398359..ea50da2 100755 (executable)
@@ -522,7 +522,7 @@ miniperl_objs = $(miniperl_objs_nodt) $(DTRACE_MINI_O)
 perllib_objs  = $(perllib_objs_nodt) $(DTRACE_PERLLIB_O)
 perlmain_objs = perlmain$(OBJ_EXT) $(DTRACE_MAIN_O)
 
-perltoc_pod_prereqs = extra.pods pod/perl5251delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod
+perltoc_pod_prereqs = extra.pods pod/perl5252delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod
 generated_pods = pod/perltoc.pod $(perltoc_pod_prereqs)
 generated_headers = uudmap.h bitcount.h mg_data.h
 
@@ -1085,9 +1085,9 @@ pod/perlintern.pod: $(MINIPERL_EXE) autodoc.pl embed.fnc
 pod/perlmodlib.pod: $(MINIPERL_EXE) pod/perlmodlib.PL MANIFEST
        $(MINIPERL) pod/perlmodlib.PL -q
 
-pod/perl5251delta.pod: pod/perldelta.pod
-       $(RMS) pod/perl5251delta.pod
-       $(LNS) perldelta.pod pod/perl5251delta.pod
+pod/perl5252delta.pod: pod/perldelta.pod
+       $(RMS) pod/perl5252delta.pod
+       $(LNS) perldelta.pod pod/perl5252delta.pod
 
 extra.pods: $(MINIPERL_EXE)
        -@test ! -f extra.pods || rm -f `cat extra.pods`
index bf8ebee..a305636 100644 (file)
@@ -53,7 +53,7 @@
 /roffitall
 
 # generated
-/perl5251delta.pod
+/perl5252delta.pod
 /perlapi.pod
 /perlintern.pod
 *.html
index 14e78ac..dbf57ec 100644 (file)
@@ -180,6 +180,7 @@ aux c2ph h2ph h2xs perlbug pl2pm pod2html pod2man splain xsubpp
 
     perlhist           Perl history records
     perldelta          Perl changes since previous version
+    perl5251delta      Perl changes in version 5.25.1
     perl5250delta      Perl changes in version 5.25.0
     perl5240delta      Perl changes in version 5.24.0
     perl5222delta      Perl changes in version 5.22.2
diff --git a/pod/perl5251delta.pod b/pod/perl5251delta.pod
new file mode 100644 (file)
index 0000000..b615112
--- /dev/null
@@ -0,0 +1,421 @@
+=encoding utf8
+
+=head1 NAME
+
+perl5251delta - what is new for perl v5.25.1
+
+=head1 DESCRIPTION
+
+This document describes differences between the 5.25.0 release and the 5.25.1
+release.
+
+If you are upgrading from an earlier release such as 5.24.0, first read
+L<perl5250delta>, which describes differences between 5.24.0 and 5.25.0.
+
+=head1 Core Enhancements
+
+=head2 POSIX::tmpnam() has been removed
+
+The fundamentally unsafe C<tmpnam()> interface was deprecated in
+Perl 5.22.0 and has now been removed.  In its place you can use
+for example the L<File::Temp> interfaces.
+
+=head2 require ::Foo::Bar is now illegal.
+
+Formerly, C<require ::Foo::Bar> would try to read F</Foo/Bar.pm>. Now any
+bareword require which starts with a double colon dies instead.
+
+=head2 Unescaped literal C<"{"> characters in regular expression
+patterns are no longer permissible
+
+You have to now say something like C<"\{"> or C<"[{]"> to specify to
+match a LEFT CURLY BRACKET.  This will allow future extensions to the
+language.  This restriction is not enforced, nor are there current plans
+to enforce it, if the C<"{"> is the first character in the pattern.
+
+These have been deprecated since v5.16, with a deprecation message
+displayed starting in v5.22.
+
+=head2 Literal control character variable names are no longer permissible
+
+A variable name may no longer contain a literal control character under
+any circumstances.  These previously were allowed in single-character
+names on ASCII platforms, but have been deprecated there since Perl
+v5.20.  This affects things like C<$I<\cT>>, where I<\cT> is a literal
+control (such as a C<NAK> or C<NEGATIVE ACKNOWLEDGE> character) in the
+source code.
+
+=head2 C<qr//xx> is no longer permissible
+
+Using more than one C</x> regular expression pattern modifier on a
+single pattern is now forbidden.  This is to allow a future enhancement
+to the language.  This usage has been deprecated since v5.22.
+
+=head2 C<NBSP> is no longer permissible in C<\N{...}>
+
+The name of a character may no longer contain non-breaking spaces.  It
+has been deprecated to do so since Perl v5.22.
+
+=head1 Performance Enhancements
+
+=over 4
+
+=item *
+
+Bareword constant strings are now permitted to take part in constant
+folding. They were originally exempted from constant folding in August 1999,
+during the development of Perl 5.6, to ensure that C<use strict "subs">
+would still apply to bareword constants. That has now been accomplished a
+different way, so barewords, like other constants, now gain the performance
+benefits of constant folding.
+
+This also means that void-context warnings on constant expressions of
+barewords now report the folded constant operand, rather than the operation;
+this matches the behaviour for non-bareword constants.
+
+=back
+
+=head1 Modules and Pragmata
+
+=head2 Updated Modules and Pragmata
+
+=over 4
+
+=item *
+
+L<Archive::Tar> has been upgraded from version 2.04 to 2.08.
+
+=item *
+
+L<Carp> has been upgraded from version 1.40 to 1.41.
+
+=item *
+
+L<charnames> has been upgraded from version 1.43 to 1.44.
+
+=item *
+
+L<Config::Perl::V> has been upgraded from version 0.25 to 0.26.
+
+=item *
+
+L<DB_File> has been upgraded from version 1.835 to 1.838.
+
+=item *
+
+L<Digest::MD5> has been upgraded from version 2.54 to 2.55.
+
+=item *
+
+L<IPC::Cmd> has been upgraded from version 0.92 to 0.94.
+
+=item *
+
+L<IPC::SysV> has been upgraded from version 2.06_01 to 2.07.
+
+=item *
+
+L<List::Util> has been upgraded from version 1.42_02 to 1.45_01.
+
+=item *
+
+L<Locale::Codes> has been upgraded from version 3.37 to 3.38.
+
+=item *
+
+L<Locale::Maketext> has been upgraded from version 1.26 to 1.27.
+
+=item *
+
+L<Module::CoreList> has been upgraded from version 5.20160507 to 5.20160520.
+
+=item *
+
+L<Module::Metadata> has been upgraded from version 1.000031 to 1.000032.
+
+=item *
+
+L<perlfaq> has been upgraded from version 5.021010 to 5.021011.
+
+=item *
+
+L<POSIX> has been upgraded from version 1.65 to 1.69. This remedies several
+defects in making its symbols exportable. [perl #127821]
+The C<POSIX::tmpnam()> interface has been removed,
+see L</"POSIX::tmpnam() has been removed">.
+Trying to import POSIX subs that have no real implementations
+(like C<POSIX::atend()>) now fails at import time, instead of
+waiting until runtime.
+
+=item *
+
+L<re> has been upgraded from version 0.32 to 0.33.
+
+=item *
+
+L<Scalar::Util> has been upgraded from version 1.42_02 to 1.45_01.
+
+=item *
+
+L<Sys::Syslog> has been upgraded from version 0.33 to 0.34.
+
+=item *
+
+L<Term::ANSIColor> has been upgraded from version 4.04 to 4.05.
+
+=item *
+
+L<Test::Simple> has been upgraded from version 1.001014 to 1.302015.
+
+=item *
+
+L<threads> has been upgraded from version 2.07 to 2.08. Compatibility
+with 5.8 has been restored.
+
+=item *
+
+L<threads::shared> has been upgraded from version 1.51 to 1.52.
+Compatibility with 5.8 has been restored.
+
+=back
+
+=head1 Documentation
+
+=head2 Changes to Existing Documentation
+
+=over 4
+
+=item *
+
+Fixed link to Crosby paper on hash complexity attack in L<perlsec>.
+
+=back
+
+=head1 Diagnostics
+
+=head2 New Diagnostics
+
+=head3 New Errors
+
+=over 4
+
+=item *
+
+L<Bareword in require contains "%s"|perldiag/"Bareword in require contains "%s"">
+
+=item *
+
+L<Bareword in require maps to empty filename|perldiag/"Bareword in require maps to empty filename">
+
+=item *
+
+L<Bareword in require maps to disallowed filename "%s"|perldiag/"Bareword in require maps to disallowed filename "%s"">
+
+=item *
+
+L<Bareword in require must not start with a double-colon: "%s"|perldiag/"Bareword in require must not start with a double-colon: "%s"">
+
+=back
+
+=head2 Changes to Existing Diagnostics
+
+=over 4
+
+=item *
+
+Code like C<$x = $x . "a"> was incorrectly failing to yield a
+L<use of uninitialized value|perldiag/"Use of uninitialized value%s">
+warning when C<$x> was a lexical variable with an undefined value. That has
+now been fixed. [perl #127877]
+
+=item *
+
+When the error "Experimental push on scalar is now forbidden" is raised for
+the hash functions C<keys>, C<each>, and C<values>, it is now followed by
+the more helpful message, "Type of arg 1 to whatever must be hash or
+array". [perl #127976]
+
+=item *
+
+C<undef *_; shift> or C<undef *_; pop> inside a subroutine, with no
+argument to C<shift> or C<pop>, began crashing in Perl 5.14.0, but has now
+been fixed.
+
+=item *
+
+C<< "string$scalar-E<gt>$*" >> now correctly prefers concat overloading to
+string overloading if C<< $scalar-E<gt>$* >> returns an overloaded object,
+bringing it into consistency with C<$$scalar>.
+
+=item *
+
+C<< /@0{0*-E<gt>@*/*0 >> and similar contortions used to crash, but no longer
+do, but merely produce a syntax error. [perl #128171]
+
+=item *
+
+C<do> or C<require> with a reference or typeglob which, when stringified,
+contains a null character started crashing in Perl 5.20.0, but has now been
+fixed. [perl #128182]
+
+=back
+
+=head1 Utility Changes
+
+=head2 L<perlbug>
+
+=over 4
+
+=item *
+
+Long lines in the message body are now wrapped at 900 characters, to stay
+well within the 1000-character limit imposed by SMTP mail transfer agents.
+This is particularly likely to be important for the list of arguments to
+C<Configure>, which can readily exceed the limit if, for example, it names
+several non-default installation paths. This change also adds the first unit
+tests for perlbug. [perl #128020]
+
+=back
+
+=head1 Configuration and Compilation
+
+=over 4
+
+=item *
+
+C<Configure> now builds C<miniperl> and C<generate_uudmap> if you
+invoke it with C<-Dusecrosscompiler> but not C<-Dtargethost=somehost>.
+This means you can supply your target platform C<config.sh>, generate
+the headers and proceed to build your cross-target perl.  [perl #127234]
+
+=item *
+
+Builds with C<-Accflags=-DPERL_TRACE_OPS> now only dump the operator
+counts when the environment variable C<PERL_TRACE_OPS> to be set to a
+non-zero integer.  This allows C<make test> to pass on such a build.
+
+=item *
+
+When building with GCC 6 and link-time optimization (the C<-flto> option to
+C<gcc>), C<Configure> was treating all probed symbols as present on the
+system, regardless of whether they actually exist. This has been fixed.
+[perl #128131]
+
+=item *
+
+The F<t/test.pl> library is used for internal testing of Perl itself, and
+also copied by several CPAN modules. Some of those modules must work on
+older versions of Perl, so F<t/test.pl> must in turn avoid newer Perl
+features. Compatibility with Perl 5.8 was inadvertently removed some time
+ago; it has now been restored. [perl #128052]
+
+=item *
+
+The build process no longer emits an extra blank line before building each
+"simple" extension (those with only F<*.pm> and F<*.pod> files).
+
+=back
+
+=head1 Internal Changes
+
+=over 4
+
+=item *
+
+Perl is now built with the C<PERL_OP_PARENT> compiler define enabled by
+default. To disable it, use the C<PERL_NO_OP_PARENT> compiler define.
+This flag alters how the C<op_sibling> field is used in C<OP> structures,
+and has been available optionally since perl 5.22.0.
+
+See L<perl5220delta/"Internal Changes"> for more details of what this
+build option does.
+
+=back
+
+=head1 Selected Bug Fixes
+
+=over 4
+
+=item *
+
+Expressions containing an C<&&> or C<||> operator (or their synonyms C<and>
+and C<or>) were being compiled incorrectly in some cases. If the left-hand
+side consisted of either a negated bareword constant or a negated C<do {}>
+block containing a constant expression, and the right-hand side consisted of
+a negated non-foldable expression, one of the negations was effectively
+ignored. The same was true of C<if> and C<unless> statement modifiers,
+though with the left-hand and right-hand sides swapped. This long-standing
+bug has now been fixed. [perl #127952]
+
+=item *
+
+C<reset> with an argument no longer crashes when encountering stash entries
+other than globs. [perl #128106]
+
+=item *
+
+Assignment of hashes to, and deletion of, typeglobs named C<*::::::> no
+longer causes crashes. [perl #128086]
+
+=back
+
+=head1 Acknowledgements
+
+Perl 5.25.1 represents approximately 2 weeks of development since Perl 5.25.0
+and contains approximately 46,000 lines of changes across 630 files from 24
+authors.
+
+Excluding auto-generated files, documentation and release tools, there were
+approximately 40,000 lines of changes to 510 .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.1:
+
+Aaron Crane, Andreas Voegele, Chad Granum, Chris 'BinGOs' Williams, Craig A.
+Berry, David Mitchell, Doug Bell, Father Chrysostomos, H.Merijn Brand, Hugo van
+der Sanden, Jarkko Hietaniemi, Jerry D. Hedden, Jim Cromie, John Lightsey,
+Karen Etheridge, Karl Williamson, Lukas Mai, Maxwell Carey, Nicholas Clark,
+Niko Tyni, Ricardo Signes, Sawyer X, Tony Cook, Yves Orton.
+
+The list above is almost certainly incomplete as it is automatically generated
+from version control history. In particular, it does not include the names of
+the (very much appreciated) contributors who reported issues to the Perl bug
+tracker.
+
+Many of the changes included in this version originated in the CPAN modules
+included in Perl's core. We're grateful to the entire CPAN community for
+helping Perl to flourish.
+
+For a more complete list of all of Perl's historical contributors, please see
+the F<AUTHORS> file in the Perl source distribution.
+
+=head1 Reporting Bugs
+
+If you find what you think is a bug, you might check the articles recently
+posted to the comp.lang.perl.misc newsgroup and the perl bug database at
+L<https://rt.perl.org/> .  There may also be information at
+L<http://www.perl.org/> , the Perl Home Page.
+
+If you believe you have an unreported bug, please run the L<perlbug> program
+included with your release.  Be sure to trim your bug down to a tiny but
+sufficient test case.  Your bug report, along with the output of C<perl -V>,
+will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
+
+If the bug you are reporting has security implications which make it
+inappropriate to send to a publicly archived mailing list, then see
+L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
+for details of how to report the issue.
+
+=head1 SEE ALSO
+
+The F<Changes> file for an explanation of how to view exhaustive details on
+what changed.
+
+The F<INSTALL> file for how to build Perl.
+
+The F<README> file for general stuff.
+
+The F<Artistic> and F<Copying> files for copyright information.
+
+=cut
index eee8529..f5bcd6a 100644 (file)
 
 =head1 NAME
 
-perldelta - what is new for perl v5.25.1
+[ 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.2
 
 =head1 DESCRIPTION
 
-This document describes differences between the 5.25.0 release and the 5.25.1
+This document describes differences between the 5.25.1 release and the 5.25.2
 release.
 
-If you are upgrading from an earlier release such as 5.24.0, first read
-L<perl5250delta>, which describes differences between 5.24.0 and 5.25.0.
+If you are upgrading from an earlier release such as 5.25.0, first read
+L<perl5251delta>, which describes differences between 5.25.0 and 5.25.1.
+
+=head1 Notice
+
+XXX Any important notices here
 
 =head1 Core Enhancements
 
-=head2 POSIX::tmpnam() has been removed
+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 fundamentally unsafe C<tmpnam()> interface was deprecated in
-Perl 5.22.0 and has now been removed.  In its place you can use
-for example the L<File::Temp> interfaces.
+[ List each enhancement as a =head2 entry ]
 
-=head2 require ::Foo::Bar is now illegal.
+=head1 Security
 
-Formerly, C<require ::Foo::Bar> would try to read F</Foo/Bar.pm>. Now any
-bareword require which starts with a double colon dies instead.
+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.
 
-=head2 Unescaped literal C<"{"> characters in regular expression
-patterns are no longer permissible
+[ List each security issue as a =head2 entry ]
 
-You have to now say something like C<"\{"> or C<"[{]"> to specify to
-match a LEFT CURLY BRACKET.  This will allow future extensions to the
-language.  This restriction is not enforced, nor are there current plans
-to enforce it, if the C<"{"> is the first character in the pattern.
+=head1 Incompatible Changes
 
-These have been deprecated since v5.16, with a deprecation message
-displayed starting in v5.22.
+XXX For a release on a stable branch, this section aspires to be:
 
-=head2 Literal control character variable names are no longer permissible
+    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.
 
-A variable name may no longer contain a literal control character under
-any circumstances.  These previously were allowed in single-character
-names on ASCII platforms, but have been deprecated there since Perl
-v5.20.  This affects things like C<$I<\cT>>, where I<\cT> is a literal
-control (such as a C<NAK> or C<NEGATIVE ACKNOWLEDGE> character) in the
-source code.
+[ List each incompatible change as a =head2 entry ]
 
-=head2 C<qr//xx> is no longer permissible
+=head1 Deprecations
 
-Using more than one C</x> regular expression pattern modifier on a
-single pattern is now forbidden.  This is to allow a future enhancement
-to the language.  This usage has been deprecated since v5.22.
+XXX Any deprecated features, syntax, modules etc. should be listed here.
 
-=head2 C<NBSP> is no longer permissible in C<\N{...}>
+=head2 Module removals
 
-The name of a character may no longer contain non-breaking spaces.  It
-has been deprecated to do so since Perl v5.22.
+XXX Remove this section if inapplicable.
 
-=head1 Performance Enhancements
+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.
 
-=over 4
+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.
+
+=over
 
-Bareword constant strings are now permitted to take part in constant
-folding. They were originally exempted from constant folding in August 1999,
-during the development of Perl 5.6, to ensure that C<use strict "subs">
-would still apply to bareword constants. That has now been accomplished a
-different way, so barewords, like other constants, now gain the performance
-benefits of constant folding.
+=item XXX
 
-This also means that void-context warnings on constant expressions of
-barewords now report the folded constant operand, rather than the operation;
-this matches the behaviour for non-bareword constants.
+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
+[ List each other deprecation as a =head2 entry ]
 
-=head2 Updated Modules and Pragmata
+=head1 Performance Enhancements
+
+XXX Changes which enhance performance without changing behaviour go here.
+There may well be none in a stable release.
+
+[ List each enhancement as a =item entry ]
 
 =over 4
 
 =item *
 
-L<Archive::Tar> has been upgraded from version 2.04 to 2.08.
+XXX
 
-=item *
+=back
 
-L<Carp> has been upgraded from version 1.40 to 1.41.
+=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<charnames> has been upgraded from version 1.43 to 1.44.
+[ Within each section, list entries as a =item entry ]
 
-=item *
+=head2 New Modules and Pragmata
 
-L<Config::Perl::V> has been upgraded from version 0.25 to 0.26.
+=over 4
 
 =item *
 
-L<DB_File> has been upgraded from version 1.835 to 1.838.
+XXX
 
-=item *
+=back
 
-L<Digest::MD5> has been upgraded from version 2.54 to 2.55.
+=head2 Updated Modules and Pragmata
+
+=over 4
 
 =item *
 
-L<IPC::Cmd> has been upgraded from version 0.92 to 0.94.
+L<XXX> has been upgraded from version A.xx to B.yy.
 
-=item *
+=back
+
+=head2 Removed Modules and Pragmata
 
-L<IPC::SysV> has been upgraded from version 2.06_01 to 2.07.
+=over 4
 
 =item *
 
-L<List::Util> has been upgraded from version 1.42_02 to 1.45_01.
+XXX
 
-=item *
+=back
 
-L<Locale::Codes> has been upgraded from version 3.37 to 3.38.
+=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<Locale::Maketext> has been upgraded from version 1.26 to 1.27.
+=head2 New Documentation
 
-=item *
+XXX Changes which create B<new> files in F<pod/> go here.
 
-L<Module::CoreList> has been upgraded from version 5.20160507 to 5.20160520.
+=head3 L<XXX>
 
-=item *
+XXX Description of the purpose of the new file here
 
-L<Module::Metadata> has been upgraded from version 1.000031 to 1.000032.
+=head2 Changes to Existing Documentation
 
-=item *
+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>
 
-L<perlfaq> has been upgraded from version 5.021010 to 5.021011.
+=over 4
 
 =item *
 
-L<POSIX> has been upgraded from version 1.65 to 1.69. This remedies several
-defects in making its symbols exportable. [perl #127821]
-The C<POSIX::tmpnam()> interface has been removed,
-see L</"POSIX::tmpnam() has been removed">.
-Trying to import POSIX subs that have no real implementations
-(like C<POSIX::atend()>) now fails at import time, instead of
-waiting until runtime.
+XXX Description of the change here
 
-=item *
+=back
 
-L<re> has been upgraded from version 0.32 to 0.33.
+=head1 Diagnostics
 
-=item *
+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>.
 
-L<Scalar::Util> has been upgraded from version 1.42_02 to 1.45_01.
+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.
 
-=item *
+=head2 New Diagnostics
 
-L<Sys::Syslog> has been upgraded from version 0.33 to 0.34.
+XXX Newly added diagnostic messages go under here, separated into New Errors
+and New Warnings
 
-=item *
+=head3 New Errors
 
-L<Term::ANSIColor> has been upgraded from version 4.04 to 4.05.
+=over 4
 
 =item *
 
-L<Test::Simple> has been upgraded from version 1.001014 to 1.302015.
+XXX L<message|perldiag/"message">
 
-=item *
+=back
+
+=head3 New Warnings
 
-L<threads> has been upgraded from version 2.07 to 2.08. Compatibility
-with 5.8 has been restored.
+=over 4
 
 =item *
 
-L<threads::shared> has been upgraded from version 1.51 to 1.52.
-Compatibility with 5.8 has been restored.
+XXX L<message|perldiag/"message">
 
 =back
 
-=head1 Documentation
+=head2 Changes to Existing Diagnostics
 
-=head2 Changes to Existing Documentation
+XXX Changes (i.e. rewording) of diagnostic messages go here
 
 =over 4
 
 =item *
 
-Fixed link to Crosby paper on hash complexity attack in L<perlsec>.
+XXX Describe change here
 
 =back
 
-=head1 Diagnostics
+=head1 Utility Changes
 
-=head2 New Diagnostics
+XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
+Most of these are built within the directory F<utils>.
 
-=head3 New Errors
+[ 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 *
 
-L<Bareword in require contains "%s"|perldiag/"Bareword in require contains "%s"">
+XXX
 
-=item *
+=back
 
-L<Bareword in require maps to empty filename|perldiag/"Bareword in require maps to empty filename">
+=head1 Configuration and Compilation
 
-=item *
+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.
 
-L<Bareword in require maps to disallowed filename "%s"|perldiag/"Bareword in require maps to disallowed filename "%s"">
+[ List changes as a =item entry ].
+
+=over 4
 
 =item *
 
-L<Bareword in require must not start with a double-colon: "%s"|perldiag/"Bareword in require must not start with a double-colon: "%s"">
+XXX
 
 =back
 
-=head2 Changes to Existing Diagnostics
+=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 ]
 
-Code like C<$x = $x . "a"> was incorrectly failing to yield a
-L<use of uninitialized value|perldiag/"Use of uninitialized value%s">
-warning when C<$x> was a lexical variable with an undefined value. That has
-now been fixed. [perl #127877]
+=over 4
 
 =item *
 
-When the error "Experimental push on scalar is now forbidden" is raised for
-the hash functions C<keys>, C<each>, and C<values>, it is now followed by
-the more helpful message, "Type of arg 1 to whatever must be hash or
-array". [perl #127976]
+XXX
 
-=item *
+=back
 
-C<undef *_; shift> or C<undef *_; pop> inside a subroutine, with no
-argument to C<shift> or C<pop>, began crashing in Perl 5.14.0, but has now
-been fixed.
+=head1 Platform Support
 
-=item *
+XXX Any changes to platform support should be listed in the sections below.
 
-C<< "string$scalar-E<gt>$*" >> now correctly prefers concat overloading to
-string overloading if C<< $scalar-E<gt>$* >> returns an overloaded object,
-bringing it into consistency with C<$$scalar>.
+[ Within the sections, list each platform as a =item entry with specific
+changes as paragraphs below it. ]
 
-=item *
+=head2 New Platforms
 
-C<< /@0{0*-E<gt>@*/*0 >> and similar contortions used to crash, but no longer
-do, but merely produce a syntax error. [perl #128171]
+XXX List any platforms that this version of perl compiles on, that previous
+versions did not.  These will either be enabled by new files in the F<hints/>
+directories, or new subdirectories and F<README> files at the top level of the
+source tree.
 
-=item *
+=over 4
+
+=item XXX-some-platform
 
-C<do> or C<require> with a reference or typeglob which, when stringified,
-contains a null character started crashing in Perl 5.20.0, but has now been
-fixed. [perl #128182]
+XXX
 
 =back
 
-=head1 Utility Changes
+=head2 Discontinued Platforms
 
-=head2 L<perlbug>
+XXX List any platforms that this version of perl no longer compiles on.
 
 =over 4
 
-=item *
+=item XXX-some-platform
 
-Long lines in the message body are now wrapped at 900 characters, to stay
-well within the 1000-character limit imposed by SMTP mail transfer agents.
-This is particularly likely to be important for the list of arguments to
-C<Configure>, which can readily exceed the limit if, for example, it names
-several non-default installation paths. This change also adds the first unit
-tests for perlbug. [perl #128020]
+XXX
 
 =back
 
-=head1 Configuration and Compilation
+=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
 
-C<Configure> now builds C<miniperl> and C<generate_uudmap> if you
-invoke it with C<-Dusecrosscompiler> but not C<-Dtargethost=somehost>.
-This means you can supply your target platform C<config.sh>, generate
-the headers and proceed to build your cross-target perl.  [perl #127234]
+XXX
 
-=item *
+=back
 
-Builds with C<-Accflags=-DPERL_TRACE_OPS> now only dump the operator
-counts when the environment variable C<PERL_TRACE_OPS> to be set to a
-non-zero integer.  This allows C<make test> to pass on such a build.
+=head1 Internal Changes
 
-=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.
 
-When building with GCC 6 and link-time optimization (the C<-flto> option to
-C<gcc>), C<Configure> was treating all probed symbols as present on the
-system, regardless of whether they actually exist. This has been fixed.
-[perl #128131]
+[ List each change as a =item entry ]
 
-=item *
-
-The F<t/test.pl> library is used for internal testing of Perl itself, and
-also copied by several CPAN modules. Some of those modules must work on
-older versions of Perl, so F<t/test.pl> must in turn avoid newer Perl
-features. Compatibility with Perl 5.8 was inadvertently removed some time
-ago; it has now been restored. [perl #128052]
+=over 4
 
 =item *
 
-The build process no longer emits an extra blank line before building each
-"simple" extension (those with only F<*.pm> and F<*.pod> files).
+XXX
 
 =back
 
-=head1 Internal Changes
+=head1 Selected Bug Fixes
+
+XXX Important bug fixes in the core language are summarized here.  Bug fixes in
+files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
+
+[ List each fix as a =item entry ]
 
 =over 4
 
 =item *
 
-Perl is now built with the C<PERL_OP_PARENT> compiler define enabled by
-default. To disable it, use the C<PERL_NO_OP_PARENT> compiler define.
-This flag alters how the C<op_sibling> field is used in C<OP> structures,
-and has been available optionally since perl 5.22.0.
-
-See L<perl5220delta/"Internal Changes"> for more details of what this
-build option does.
+XXX
 
 =back
 
-=head1 Selected Bug Fixes
+=head1 Known Problems
 
-=over 4
+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 ]
 
-Expressions containing an C<&&> or C<||> operator (or their synonyms C<and>
-and C<or>) were being compiled incorrectly in some cases. If the left-hand
-side consisted of either a negated bareword constant or a negated C<do {}>
-block containing a constant expression, and the right-hand side consisted of
-a negated non-foldable expression, one of the negations was effectively
-ignored. The same was true of C<if> and C<unless> statement modifiers,
-though with the left-hand and right-hand sides swapped. This long-standing
-bug has now been fixed. [perl #127952]
+=over 4
 
 =item *
 
-C<reset> with an argument no longer crashes when encountering stash entries
-other than globs. [perl #128106]
+XXX
 
-=item *
+=back
 
-Assignment of hashes to, and deletion of, typeglobs named C<*::::::> no
-longer causes crashes. [perl #128086]
+=head1 Errata From Previous Releases
 
-=back
+=over 4
 
-=head1 Acknowledgements
+=item *
 
-Perl 5.25.1 represents approximately 2 weeks of development since Perl 5.25.0
-and contains approximately 46,000 lines of changes across 630 files from 24
-authors.
+XXX Add anything here that we forgot to add, or were mistaken about, in
+the perldelta of a previous release.
 
-Excluding auto-generated files, documentation and release tools, there were
-approximately 40,000 lines of changes to 510 .pm, .t, .c and .h files.
+=back
 
-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.1:
+=head1 Obituary
 
-Aaron Crane, Andreas Voegele, Chad Granum, Chris 'BinGOs' Williams, Craig A.
-Berry, David Mitchell, Doug Bell, Father Chrysostomos, H.Merijn Brand, Hugo van
-der Sanden, Jarkko Hietaniemi, Jerry D. Hedden, Jim Cromie, John Lightsey,
-Karen Etheridge, Karl Williamson, Lukas Mai, Maxwell Carey, Nicholas Clark,
-Niko Tyni, Ricardo Signes, Sawyer X, Tony Cook, Yves Orton.
+XXX If any significant core contributor has died, we've added a short obituary
+here.
 
-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.1..HEAD
 
 =head1 Reporting Bugs
 
index 2f6908a..6971e08 100644 (file)
@@ -307,7 +307,7 @@ utils : $(utils1) $(utils2) $(utils3) $(utils4) $(utils5)
 extra.pods : miniperl
        @ @extra_pods.com
 
-PERLDELTA_CURRENT = [.pod]perl5251delta.pod
+PERLDELTA_CURRENT = [.pod]perl5252delta.pod
 
 $(PERLDELTA_CURRENT) : [.pod]perldelta.pod
        Copy/NoConfirm/Log $(MMS$SOURCE) $(PERLDELTA_CURRENT)
index 070f5d8..decf706 100644 (file)
@@ -1544,7 +1544,7 @@ utils: $(HAVEMINIPERL) ..\utils\Makefile
        copy ..\README.tw       ..\pod\perltw.pod
        copy ..\README.vos      ..\pod\perlvos.pod
        copy ..\README.win32    ..\pod\perlwin32.pod
-       copy ..\pod\perldelta.pod ..\pod\perl5251delta.pod
+       copy ..\pod\perldelta.pod ..\pod\perl5252delta.pod
        $(MINIPERL) -I..\lib $(PL2BAT) $(UTILS)
        $(MINIPERL) -I..\lib ..\autodoc.pl ..
        $(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q ..
@@ -1641,7 +1641,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 \
-           perl5251delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
+           perl5252delta.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 \
index 33207b0..08add33 100644 (file)
@@ -1215,7 +1215,7 @@ utils: $(PERLEXE) ..\utils\Makefile
        copy ..\README.tw       ..\pod\perltw.pod
        copy ..\README.vos      ..\pod\perlvos.pod
        copy ..\README.win32    ..\pod\perlwin32.pod
-       copy ..\pod\perldelta.pod ..\pod\perl5251delta.pod
+       copy ..\pod\perldelta.pod ..\pod\perl5252delta.pod
        cd ..\win32
        $(PERLEXE) $(PL2BAT) $(UTILS)
        $(MINIPERL) -I..\lib ..\autodoc.pl ..
@@ -1314,7 +1314,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 \
-           perl5251delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
+           perl5252delta.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 \
index fff0787..1972f63 100644 (file)
@@ -1511,7 +1511,7 @@ utils: $(HAVEMINIPERL) ..\utils\Makefile
        copy ..\README.tw       ..\pod\perltw.pod
        copy ..\README.vos      ..\pod\perlvos.pod
        copy ..\README.win32    ..\pod\perlwin32.pod
-       copy ..\pod\perldelta.pod ..\pod\perl5251delta.pod
+       copy ..\pod\perldelta.pod ..\pod\perl5252delta.pod
        $(MINIPERL) -I..\lib $(PL2BAT) $(UTILS)
        $(MINIPERL) -I..\lib ..\autodoc.pl ..
        $(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q ..
@@ -1609,7 +1609,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 \
-           perl5251delta.pod perlaix.pod perlamiga.pod perlandroid.pod \
+           perl5252delta.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 \
index 5180108..569c88f 100644 (file)
@@ -46,6 +46,7 @@ POD = perl.pod        \
        perl5240delta.pod       \
        perl5250delta.pod       \
        perl5251delta.pod       \
+       perl5252delta.pod       \
        perl561delta.pod        \
        perl56delta.pod \
        perl581delta.pod        \
@@ -186,6 +187,7 @@ MAN = perl.man      \
        perl5240delta.man       \
        perl5250delta.man       \
        perl5251delta.man       \
+       perl5252delta.man       \
        perl561delta.man        \
        perl56delta.man \
        perl581delta.man        \
@@ -326,6 +328,7 @@ HTML = perl.html    \
        perl5240delta.html      \
        perl5250delta.html      \
        perl5251delta.html      \
+       perl5252delta.html      \
        perl561delta.html       \
        perl56delta.html        \
        perl581delta.html       \
@@ -466,6 +469,7 @@ TEX = perl.tex      \
        perl5240delta.tex       \
        perl5250delta.tex       \
        perl5251delta.tex       \
+       perl5252delta.tex       \
        perl561delta.tex        \
        perl56delta.tex \
        perl581delta.tex        \