Create new perldelta for Perl 5.19.6
authorSteve Hay <steve.m.hay@googlemail.com>
Sun, 20 Oct 2013 14:40:05 +0000 (15:40 +0100)
committerSteve Hay <steve.m.hay@googlemail.com>
Sun, 20 Oct 2013 14:40:05 +0000 (15:40 +0100)
MANIFEST
Makefile.SH
pod/.gitignore
pod/perl.pod
pod/perl5195delta.pod [new file with mode: 0644]
pod/perldelta.pod
vms/descrip_mms.template
win32/Makefile
win32/makefile.mk
win32/pod.mak

index 6e4599c..b919d6d 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -4506,6 +4506,7 @@ pod/perl5191delta.pod             Perl changes in version 5.19.1
 pod/perl5192delta.pod          Perl changes in version 5.19.2
 pod/perl5193delta.pod          Perl changes in version 5.19.3
 pod/perl5194delta.pod          Perl changes in version 5.19.4
+pod/perl5195delta.pod          Perl changes in version 5.19.5
 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 9d7a125..25dcb81 100755 (executable)
@@ -503,7 +503,7 @@ mini_obj = $(minindt_obj) $(MINIDTRACE_O)
 ndt_obj = $(obj0) $(obj1) $(obj2) $(obj3) $(ARCHOBJS)
 obj = $(ndt_obj) $(DTRACE_O)
 
-perltoc_pod_prereqs = extra.pods pod/perl5195delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod
+perltoc_pod_prereqs = extra.pods pod/perl5196delta.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
 
@@ -981,9 +981,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/perl5195delta.pod: pod/perldelta.pod
-       $(RMS) pod/perl5195delta.pod
-       $(LNS) perldelta.pod pod/perl5195delta.pod
+pod/perl5196delta.pod: pod/perldelta.pod
+       $(RMS) pod/perl5196delta.pod
+       $(LNS) perldelta.pod pod/perl5196delta.pod
 
 extra.pods: $(MINIPERL_EXE)
        -@test ! -f extra.pods || rm -f `cat extra.pods`
index 6e2449c..8a1b1d3 100644 (file)
@@ -57,7 +57,7 @@
 /roffitall
 
 # generated
-/perl5195delta.pod
+/perl5196delta.pod
 /perlapi.pod
 /perlintern.pod
 *.html
index 996f791..dd5f76f 100644 (file)
@@ -179,6 +179,7 @@ aux a2p c2ph h2ph h2xs perlbug pl2pm pod2html pod2man s2p splain xsubpp
 
     perlhist           Perl history records
     perldelta          Perl changes since previous version
+    perl5195delta      Perl changes in version 5.19.5
     perl5194delta      Perl changes in version 5.19.4
     perl5193delta      Perl changes in version 5.19.3
     perl5192delta      Perl changes in version 5.19.2
diff --git a/pod/perl5195delta.pod b/pod/perl5195delta.pod
new file mode 100644 (file)
index 0000000..0bf844c
--- /dev/null
@@ -0,0 +1,525 @@
+=encoding utf8
+
+=head1 NAME
+
+perl5195delta - what is new for perl v5.19.5
+
+=head1 DESCRIPTION
+
+This document describes differences between the 5.19.4 release and the 5.19.5
+release.
+
+If you are upgrading from an earlier release such as 5.19.3, first read
+L<perl5194delta>, which describes differences between 5.19.3 and 5.19.4.
+
+=head1 Core Enhancements
+
+=head2 Unicode 6.3 now supported
+
+Perl now supports and is shipped with Unicode 6.3 (though Perl may be
+recompiled with any previous Unicode release as well).  A detailed list of
+Unicode 6.3 changes is at L<http://www.unicode.org/versions/Unicode6.3.0/>.
+
+=head2 Experimental Postfix Dereferencing
+
+When the C<postderef> feature is in effect, the following syntactical
+equivalencies are set up:
+
+  $sref->$*;  # same as ${ $sref }  # interpolates
+  $aref->@*;  # same as @{ $aref }  # interpolates
+  $href->%*;  # same as %{ $href }
+  $cref->&*;  # same as &{ $cref }
+  $gref->**;  # same as *{ $gref }
+
+  $gref->*{ $slot }; # same as *{ $gref }{ $slot }
+
+  $aref->@[ ... ];  # same as @$aref[ ... ]  # interpolates
+  $href->@{ ... };  # same as @$href{ ... }  # interpolates
+  $aref->%[ ... ];  # same as %$aref[ ... ]
+  $href->%{ ... };  # same as %$href{ ... }
+
+Those marked as interpolating only interpolate if the associated
+C<postderef_qq> feature is also enabled.  This feature is B<experimental> and
+will trigger C<experimental::postderef>-category warnings when used, unless
+they are suppressed.
+
+For more information, consult L<the Postfix Dereference Syntax section of
+perlref|perlref/Postfix Dereference Syntax>.
+
+=head2 C<sub>s now take a C<prototype> attribute
+
+When declaring or defining a C<sub>, the prototype can now be specified inside
+of a C<prototype> attribute instead of in parens following the name.
+
+For example, C<sub foo($$){}> could be rewritten as
+C<sub foo : prototype($$){}>.
+
+=head1 Incompatible Changes
+
+=head2 Functions C<PerlIO_vsprintf> and C<PerlIO_sprintf> have been removed
+
+These two functions, undocumented, unused in CPAN, and problematic, have been
+removed.
+
+=head1 Performance Enhancements
+
+=over 4
+
+=item *
+
+Perl has an optimizer for regular expression patterns.  It analyzes the pattern
+to find things such as the minimum length a string has to be to match, etc.  It
+now better handles code points that are above the Latin1 range.
+
+=back
+
+=head1 Modules and Pragmata
+
+=head2 Updated Modules and Pragmata
+
+=over 4
+
+=item *
+
+L<attributes> has been upgraded from version 0.21 to 0.22.
+
+Support has been added for the C<prototype> attribute.
+
+=item *
+
+L<autodie> has been upgraded from version 2.21 to 2.22.
+
+No changes have been made to the installed code other than the version bump to
+keep in sync with the latest CPAN release.
+
+=item *
+
+L<CPAN::Meta> has been upgraded from version 2.132620 to 2.132830.
+
+L<CPAN::Meta::Prereqs> now has a C<merged_requirements> method for combining
+requirements across multiple phases and types, and an invalid 'meta-spec' is no
+longer a fatal error.
+
+=item *
+
+L<CPAN::Meta::Requirements> has been upgraded from version 2.123 to 2.125.
+
+No changes have been made to the installed code other than the version bump to
+keep in sync with the latest CPAN release.
+
+=item *
+
+L<CPAN::Meta::YAML> has been upgraded from version 0.008 to 0.010.
+
+No material changes have been made to the installed code other than the version
+bump to keep in sync with the latest CPAN release.
+
+=item *
+
+L<Cwd> has been upgraded from version 3.44 to 3.45.
+
+An obsolete #define has been removed from the XS code.
+
+=item *
+
+L<ExtUtils::Install> has been upgraded from version 1.60 to 1.61.
+
+Some POD formatting errors in the documentation have been corrected.
+
+=item *
+
+L<ExtUtils::MakeMaker> has been upgraded from version 6.76 to 6.80.
+
+Numerous updates and bug fixes are incorporated.  See the F<Changes> file in
+the CPAN distribution for full details.
+
+=item *
+
+L<feature> has been upgraded from version 1.33 to 1.34.
+
+The new features C<postderef> and C<postderef_qq> have been added.
+
+=item *
+
+L<File::Fetch> has been upgraded from version 0.42 to 0.44.
+
+No changes have been made to the installed code other than the version bump to
+keep in sync with the latest CPAN release.
+
+=item *
+
+L<File::Glob> has been upgraded from version 1.21 to 1.22.
+
+Since Perl 5.16, code that used C<glob> inside a thread had been
+unintentionally sharing state between threads.  This has now been fixed.  [perl
+#119897/#117823]
+
+=item *
+
+L<File::Temp> has been upgraded from version 0.2301 to 0.2304.
+
+Required versions of other modules used are now listed more explicitly, L<base>
+is now used instead of L<parent>, and L<Exporter> is no longer inherited from.
+
+=item *
+
+L<Getopt::Long> has been upgraded from version 2.41 to 2.42.
+
+The floating point specifier C<name=f> no longer erroneously accepts values
+like 1.2.3.  [cpan #88707]
+
+=item *
+
+L<HTTP::Tiny> has been upgraded from version 0.035 to 0.036.
+
+No changes have been made to the installed code other than the version bump to
+keep in sync with the latest CPAN release.
+
+=item *
+
+L<IPC::Cmd> has been upgraded from version 0.84 to 0.84_01.
+
+No changes have been made to the installed code, but a test script has been
+fixed for Solaris (and potentially other SVR* variants).
+
+=item *
+
+L<JSON::PP> has been upgraded from version 2.27202_01 to 2.27203.
+
+A return/or precedence issue in C<_incr_parse> has been fixed.
+
+=item *
+
+L<List::Util> has been upgraded from version 1.32 to 1.35.
+
+The list functions C<any>, C<all>, C<none>, C<notall> and C<product> have been
+added, and C<reduce> and C<first> are now implemented even in the absence of
+MULTICALL.
+
+=item *
+
+L<Module::CoreList> has been upgraded from version 2.99 to 3.00.
+
+The list of Perl versions covered has been updated, %delta is now exported, and
+a bug in C<is_core> whereby it wrongly assumed a linear list of releases has
+been fixed.
+
+=item *
+
+L<Module::Metadata> has been upgraded from version 1.000018 to 1.000019.
+
+Warnings are now disabled during version evaluation.
+
+=item *
+
+L<Parse::CPAN::Meta> has been upgraded from version 1.4407 to 1.4409.
+
+No changes have been made to the installed code other than the version bump to
+keep in sync with the latest CPAN release.
+
+=item *
+
+L<Perl::OSType> has been upgraded from version 1.005 to 1.006.
+
+No changes have been made to the installed code other than the version bump to
+keep in sync with the latest CPAN release.
+
+=item *
+
+L<PerlIO::scalar> has been upgraded from version 0.16 to 0.17.
+
+An infinite loop when reading from a filehandle opened from a reference has
+been fixed by first stringifying the reference.  [perl #119529]
+
+=item *
+
+The podlators modules have been upgraded from version 2.5.1 to 2.5.3.
+
+Numerous updates and bug fixes are incorporated.  See the F<Changes> file in
+the CPAN distribution for full details.
+
+=item *
+
+L<Test::Harness> has been upgraded from version 3.28 to 3.29.
+
+All modules now use C<our> rather than C<use vars>, have C<use warnings>
+enabled and C<use parent> instead of @ISA.
+
+=item *
+
+L<Test::Simple> has been upgraded from version 0.98_06 to 0.99.
+
+Numerous updates and bug fixes are incorporated.  See the F<Changes> file in
+the CPAN distribution for full details.
+
+=item *
+
+L<threads> has been upgraded from version 1.87 to 1.89.
+
+The documentation of C<alarm> and C<_handle> has been updated.
+
+=item *
+
+L<Unicode::Normalize> has been upgraded from version 1.16 to 1.17.
+
+The module now C<die>s if it cannot get Unicode code points using C<unpack>.
+(There is already a similar C<die> if Unicode code points cannot be stringified
+using C<pack>.)
+
+=item *
+
+L<Unicode::UCD> has been upgraded from version 0.54 to 0.55.
+
+An internals-only change has been made to handle changes in format within some
+character database tables.
+
+=item *
+
+L<warnings> has been upgraded from version 1.19 to 1.20.
+
+The new warnings category C<experimental::postderef> has been added.
+
+=back
+
+=head1 Documentation
+
+=head2 Changes to Existing Documentation
+
+=head3 L<perlref>
+
+=over 4
+
+=item *
+
+Documentation of the new postfix dereference syntax has been added.
+
+=back
+
+=head3 L<perlreguts>
+
+=over 4
+
+=item *
+
+The documentation has been updated in the light of recent changes to
+F<regcomp.c>.
+
+=back
+
+=head3 L<perlvar>
+
+=over 4
+
+=item *
+
+Three L<English> variable names which have long been documented but do not
+actually exist have been removed from 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 New Diagnostics
+
+=head3 New Warnings
+
+=over 4
+
+=item *
+
+L<Attribute prototype(%s) discards earlier prototype attribute in same sub|perldiag/"Attribute prototype(%s) discards earlier prototype attribute in same sub">
+
+(W misc) A sub was declared as sub foo : prototype(A) : prototype(B) {}, for
+example.  Since each sub can only have one prototype, the earlier
+declaration(s) are discarded while the last one is applied.
+
+=item *
+
+L<Postfix dereference is experimental|perldiag/"Postfix dereference is experimental">
+
+(S experimental::postderef) This warning is emitted if you use the experimental
+postfix dereference syntax.  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::postderef";
+    use feature "postderef", "postderef_qq";
+    $ref->$*;
+    $aref->@*;
+    $aref->@[@indices];
+    ... etc ...
+
+=item *
+
+L<Prototype '%s' overridden by attribute 'prototype(%s)' in %s|perldiag/"Prototype '%s' overridden by attribute 'prototype(%s)' in %s">
+
+(W prototype) A prototype was declared in both the parentheses after the sub
+name and via the prototype attribute.  The prototype in parentheses is useless,
+since it will be replaced by the prototype from the attribute before it's ever
+used.
+
+=back
+
+=head1 Utility Changes
+
+=head3 L<a2p>
+
+=over 4
+
+=item *
+
+A possible crash from an off-by-one error when trying to access before the
+beginning of a buffer has been fixed.  [perl #120244]
+
+=back
+
+=head1 Testing
+
+=over 4
+
+=item *
+
+The new prototype attribute syntax is tested by a new test script,
+F<t/op/attrproto.t>.
+
+=item *
+
+The new test script F<t/io/closepid.t> tests that C<close> on the original of a
+popen handle dupped to a standard handle no longer blocks internally on
+C<waitpid(0, ...)>.
+
+=item *
+
+The new postfix dereference syntax is tested by a new test script,
+F<t/op/postfixderef.t>.
+
+=back
+
+=head1 Platform Support
+
+=head2 Platform-Specific Notes
+
+=over 4
+
+=item Windows
+
+The Windows MinGW/gcc build was broken in Perl 5.19.4 for some recent versions
+of gcc-4.8, including those from http://mingw-w64.sourceforge.net/ .  This has
+now been fixed.  [perl #120236]
+
+=back
+
+=head1 Selected Bug Fixes
+
+=over 4
+
+=item *
+
+C<last> no longer returns values that the same statement has accumulated so
+far, fixing amongst other things the long-standing bug that C<push @a, last>
+would try to return the @a, copying it like a scalar in the process and
+resulting in the error, "Bizarre copy of ARRAY in last."  [perl #3112]
+
+=item *
+
+An optimization in Perl 5.18 made incorrect assumptions causing a bad
+interaction with the L<Devel::CallParser> CPAN module.  This was partially
+fixed in Perl 5.19.4, but the fix was not sufficient and another fault has now
+been corrected.
+
+=item *
+
+In some cases, closing file handles opened to pipe to or from a process, which
+had been duplicated into a standard handle, would call perl's internal waitpid
+wrapper with a pid of zero.  With the fix for [perl #85228] this zero pid was
+passed to C<waitpid>, possibly blocking the process.  This wait for process
+zero no longer occurs.  [perl #119893]
+
+=item *
+
+The code that parses regex backrefs (or ambiguous backref/octals) such as \123
+did a simple atoi(), which could wrap round to negative values on long digit
+strings and cause segmentation faults.  This has now been fixed.  [perl
+#119505]
+
+=item *
+
+C<select> used to ignore magic on the fourth (timeout) argument, leading to
+effects such as C<select> blocking indefinitely rather than the expected sleep
+time.  This has now been fixed.  [perl #120102]
+
+=item *
+
+The class name in C<for my class $foo> is now parsed correctly.  In the case of
+the second character of the class name being followed by a digit (e.g. 'a1b')
+this used to give the error "Missing $ on loop variable".  [perl #120112]
+
+=back
+
+=head1 Acknowledgements
+
+Perl 5.19.5 represents approximately 4 weeks of development since Perl 5.19.4
+and contains approximately 76,000 lines of changes across 710 files from 27
+authors.
+
+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.19.5:
+
+Andy Dougherty, Brian Fraser, Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn
+Ilmari MannsÃ¥ker, Daniel Dragan, David Golden, David Mitchell, David Nicol,
+Dominic Hargreaves, Eric Brine, Father Chrysostomos, Gideon Israel Dsouza, Hio,
+James E Keenan, Jerry D. Hedden, Jesse Luehrs, Karl Williamson, Matthew
+Horsfall, Max Maischein, Neil Bowers, Nicholas Clark, Peter Martini, Philip
+Guenther, Ricardo Signes, Steve Hay, Tony Cook.
+
+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
+http://rt.perl.org/perlbug/ .  There may also be information at
+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 please send it
+to perl5-security-report@perl.org.  This points to a closed subscription
+unarchived mailing list, which includes all the core committers, who will be
+able to help assess the impact of issues, figure out a resolution, and help
+co-ordinate the release of patches to mitigate or fix the problem across all
+platforms on which Perl is supported.  Please only use this address for
+security issues in the Perl core, not for modules independently distributed on
+CPAN.
+
+=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 ec007a6..0655265 100644 (file)
 
 =head1 NAME
 
-perldelta - what is new for perl v5.19.5
+[ 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.19.6
 
 =head1 DESCRIPTION
 
-This document describes differences between the 5.19.4 release and the 5.19.5
+This document describes differences between the 5.19.5 release and the 5.19.6
 release.
 
-If you are upgrading from an earlier release such as 5.19.3, first read
-L<perl5194delta>, which describes differences between 5.19.3 and 5.19.4.
-
-=head1 Core Enhancements
-
-=head2 Unicode 6.3 now supported
-
-Perl now supports and is shipped with Unicode 6.3 (though Perl may be
-recompiled with any previous Unicode release as well).  A detailed list of
-Unicode 6.3 changes is at L<http://www.unicode.org/versions/Unicode6.3.0/>.
+If you are upgrading from an earlier release such as 5.19.4, first read
+L<perl5195delta>, which describes differences between 5.19.4 and 5.19.5.
 
-=head2 Experimental Postfix Dereferencing
+=head1 Notice
 
-When the C<postderef> feature is in effect, the following syntactical
-equivalencies are set up:
+XXX Any important notices here
 
-  $sref->$*;  # same as ${ $sref }  # interpolates
-  $aref->@*;  # same as @{ $aref }  # interpolates
-  $href->%*;  # same as %{ $href }
-  $cref->&*;  # same as &{ $cref }
-  $gref->**;  # same as *{ $gref }
-
-  $gref->*{ $slot }; # same as *{ $gref }{ $slot }
-
-  $aref->@[ ... ];  # same as @$aref[ ... ]  # interpolates
-  $href->@{ ... };  # same as @$href{ ... }  # interpolates
-  $aref->%[ ... ];  # same as %$aref[ ... ]
-  $href->%{ ... };  # same as %$href{ ... }
+=head1 Core Enhancements
 
-Those marked as interpolating only interpolate if the associated
-C<postderef_qq> feature is also enabled.  This feature is B<experimental> and
-will trigger C<experimental::postderef>-category warnings when used, unless
-they are suppressed.
+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.
 
-For more information, consult L<the Postfix Dereference Syntax section of
-perlref|perlref/Postfix Dereference Syntax>.
+[ List each enhancement as a =head2 entry ]
 
-=head2 C<sub>s now take a C<prototype> attribute
+=head1 Security
 
-When declaring or defining a C<sub>, the prototype can now be specified inside
-of a C<prototype> attribute instead of in parens following the name.
+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.
 
-For example, C<sub foo($$){}> could be rewritten as
-C<sub foo : prototype($$){}>.
+[ List each security issue as a =head2 entry ]
 
 =head1 Incompatible Changes
 
-=head2 Functions C<PerlIO_vsprintf> and C<PerlIO_sprintf> have been removed
-
-These two functions, undocumented, unused in CPAN, and problematic, have been
-removed.
+XXX For a release on a stable branch, this section aspires to be:
 
-=head1 Performance Enhancements
+    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.
 
-=over 4
+[ List each incompatible change as a =head2 entry ]
 
-=item *
+=head1 Deprecations
 
-Perl has an optimizer for regular expression patterns.  It analyzes the pattern
-to find things such as the minimum length a string has to be to match, etc.  It
-now better handles code points that are above the Latin1 range.
+XXX Any deprecated features, syntax, modules etc. should be listed here.
 
-=back
+=head2 Module removals
 
-=head1 Modules and Pragmata
+XXX Remove this section if inapplicable.
 
-=head2 Updated Modules and Pragmata
+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.
 
-L<attributes> has been upgraded from version 0.21 to 0.22.
+=over
 
-Support has been added for the C<prototype> attribute.
+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.
 
-=item *
-
-L<autodie> has been upgraded from version 2.21 to 2.22.
-
-No changes have been made to the installed code other than the version bump to
-keep in sync with the latest CPAN release.
-
-=item *
-
-L<CPAN::Meta> has been upgraded from version 2.132620 to 2.132830.
-
-L<CPAN::Meta::Prereqs> now has a C<merged_requirements> method for combining
-requirements across multiple phases and types, and an invalid 'meta-spec' is no
-longer a fatal error.
-
-=item *
+=back
 
-L<CPAN::Meta::Requirements> has been upgraded from version 2.123 to 2.125.
+[ List each other deprecation as a =head2 entry ]
 
-No changes have been made to the installed code other than the version bump to
-keep in sync with the latest CPAN release.
+=head1 Performance Enhancements
 
-=item *
+XXX Changes which enhance performance without changing behaviour go here.
+There may well be none in a stable release.
 
-L<CPAN::Meta::YAML> has been upgraded from version 0.008 to 0.010.
+[ List each enhancement as a =item entry ]
 
-No material changes have been made to the installed code other than the version
-bump to keep in sync with the latest CPAN release.
+=over 4
 
 =item *
 
-L<Cwd> has been upgraded from version 3.44 to 3.45.
-
-An obsolete #define has been removed from the XS code.
+XXX
 
-=item *
+=back
 
-L<ExtUtils::Install> has been upgraded from version 1.60 to 1.61.
+=head1 Modules and Pragmata
 
-Some POD formatting errors in the documentation have been corrected.
+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>, which prints stub
+entries to STDOUT.  Results can be pasted in place of the '=head2' entries
+below.  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.
 
-=item *
+[ Within each section, list entries as a =item entry ]
 
-L<ExtUtils::MakeMaker> has been upgraded from version 6.76 to 6.80.
+=head2 New Modules and Pragmata
 
-Numerous updates and bug fixes are incorporated.  See the F<Changes> file in
-the CPAN distribution for full details.
+=over 4
 
 =item *
 
-L<feature> has been upgraded from version 1.33 to 1.34.
-
-The new features C<postderef> and C<postderef_qq> have been added.
+XXX
 
-=item *
+=back
 
-L<File::Fetch> has been upgraded from version 0.42 to 0.44.
+=head2 Updated Modules and Pragmata
 
-No changes have been made to the installed code other than the version bump to
-keep in sync with the latest CPAN release.
+=over 4
 
 =item *
 
-L<File::Glob> has been upgraded from version 1.21 to 1.22.
-
-Since Perl 5.16, code that used C<glob> inside a thread had been
-unintentionally sharing state between threads.  This has now been fixed.  [perl
-#119897/#117823]
+L<XXX> has been upgraded from version A.xx to B.yy.
 
-=item *
+=back
 
-L<File::Temp> has been upgraded from version 0.2301 to 0.2304.
+=head2 Removed Modules and Pragmata
 
-Required versions of other modules used are now listed more explicitly, L<base>
-is now used instead of L<parent>, and L<Exporter> is no longer inherited from.
+=over 4
 
 =item *
 
-L<Getopt::Long> has been upgraded from version 2.41 to 2.42.
+XXX
 
-The floating point specifier C<name=f> no longer erroneously accepts values
-like 1.2.3.  [cpan #88707]
+=back
 
-=item *
+=head1 Documentation
 
-L<HTTP::Tiny> has been upgraded from version 0.035 to 0.036.
+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>.
 
-No changes have been made to the installed code other than the version bump to
-keep in sync with the latest CPAN release.
+=head2 New Documentation
 
-=item *
+XXX Changes which create B<new> files in F<pod/> go here.
 
-L<IPC::Cmd> has been upgraded from version 0.84 to 0.84_01.
+=head3 L<XXX>
 
-No changes have been made to the installed code, but a test script has been
-fixed for Solaris (and potentially other SVR* variants).
+XXX Description of the purpose of the new file here
 
-=item *
-
-L<JSON::PP> has been upgraded from version 2.27202_01 to 2.27203.
+=head2 Changes to Existing Documentation
 
-A return/or precedence issue in C<_incr_parse> has been fixed.
+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.
 
-=item *
+=head3 L<XXX>
 
-L<List::Util> has been upgraded from version 1.32 to 1.35.
-
-The list functions C<any>, C<all>, C<none>, C<notall> and C<product> have been
-added, and C<reduce> and C<first> are now implemented even in the absence of
-MULTICALL.
+=over 4
 
 =item *
 
-L<Module::CoreList> has been upgraded from version 2.99 to 3.00.
-
-The list of Perl versions covered has been updated, %delta is now exported, and
-a bug in C<is_core> whereby it wrongly assumed a linear list of releases has
-been fixed.
-
-=item *
+XXX Description of the change here
 
-L<Module::Metadata> has been upgraded from version 1.000018 to 1.000019.
+=back
 
-Warnings are now disabled during version evaluation.
+=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<Parse::CPAN::Meta> has been upgraded from version 1.4407 to 1.4409.
+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.
 
-No changes have been made to the installed code other than the version bump to
-keep in sync with the latest CPAN release.
+=head2 New Diagnostics
 
-=item *
+XXX Newly added diagnostic messages go under here, separated into New Errors
+and New Warnings
 
-L<Perl::OSType> has been upgraded from version 1.005 to 1.006.
+=head3 New Errors
 
-No changes have been made to the installed code other than the version bump to
-keep in sync with the latest CPAN release.
+=over 4
 
 =item *
 
-L<PerlIO::scalar> has been upgraded from version 0.16 to 0.17.
-
-An infinite loop when reading from a filehandle opened from a reference has
-been fixed by first stringifying the reference.  [perl #119529]
+XXX L<message|perldiag/"message">
 
-=item *
+=back
 
-The podlators modules have been upgraded from version 2.5.1 to 2.5.3.
+=head3 New Warnings
 
-Numerous updates and bug fixes are incorporated.  See the F<Changes> file in
-the CPAN distribution for full details.
+=over 4
 
 =item *
 
-L<Test::Harness> has been upgraded from version 3.28 to 3.29.
+XXX L<message|perldiag/"message">
 
-All modules now use C<our> rather than C<use vars>, have C<use warnings>
-enabled and C<use parent> instead of @ISA.
+=back
 
-=item *
+=head2 Changes to Existing Diagnostics
 
-L<Test::Simple> has been upgraded from version 0.98_06 to 0.99.
+XXX Changes (i.e. rewording) of diagnostic messages go here
 
-Numerous updates and bug fixes are incorporated.  See the F<Changes> file in
-the CPAN distribution for full details.
+=over 4
 
 =item *
 
-L<threads> has been upgraded from version 1.87 to 1.89.
+XXX Describe change here
 
-The documentation of C<alarm> and C<_handle> has been updated.
-
-=item *
+=back
 
-L<Unicode::Normalize> has been upgraded from version 1.16 to 1.17.
+=head1 Utility Changes
 
-The module now C<die>s if it cannot get Unicode code points using C<unpack>.
-(There is already a similar C<die> if Unicode code points cannot be stringified
-using C<pack>.)
+XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
+Most of these are built within the directories F<utils> and F<x2p>.
 
-=item *
+[ List utility changes as a =head3 entry for each utility and =item
+entries for each change
+Use L<XXX> with program names to get proper documentation linking. ]
 
-L<Unicode::UCD> has been upgraded from version 0.54 to 0.55.
+=head3 L<XXX>
 
-An internals-only change has been made to handle changes in format within some
-character database tables.
+=over 4
 
 =item *
 
-L<warnings> has been upgraded from version 1.19 to 1.20.
-
-The new warnings category C<experimental::postderef> has been added.
+XXX
 
 =back
 
-=head1 Documentation
+=head1 Configuration and Compilation
 
-=head2 Changes to Existing Documentation
+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 L<perlref>
+[ List changes as a =item entry ].
 
 =over 4
 
 =item *
 
-Documentation of the new postfix dereference syntax has been added.
+XXX
 
 =back
 
-=head3 L<perlreguts>
-
-=over 4
-
-=item *
-
-The documentation has been updated in the light of recent changes to
-F<regcomp.c>.
+=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.
 
-=head3 L<perlvar>
+[ List each test improvement as a =item entry ]
 
 =over 4
 
 =item *
 
-Three L<English> variable names which have long been documented but do not
-actually exist have been removed from the documentation.
+XXX
 
 =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 Warnings
-
-=over 4
-
-=item *
-
-L<Attribute prototype(%s) discards earlier prototype attribute in same sub|perldiag/"Attribute prototype(%s) discards earlier prototype attribute in same sub">
-
-(W misc) A sub was declared as sub foo : prototype(A) : prototype(B) {}, for
-example.  Since each sub can only have one prototype, the earlier
-declaration(s) are discarded while the last one is applied.
+=head1 Platform Support
 
-=item *
+XXX Any changes to platform support should be listed in the sections below.
 
-L<Postfix dereference is experimental|perldiag/"Postfix dereference is experimental">
+[ Within the sections, list each platform as a =item entry with specific
+changes as paragraphs below it. ]
 
-(S experimental::postderef) This warning is emitted if you use the experimental
-postfix dereference syntax.  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:
+=head2 New Platforms
 
-    no warnings "experimental::postderef";
-    use feature "postderef", "postderef_qq";
-    $ref->$*;
-    $aref->@*;
-    $aref->@[@indices];
-    ... etc ...
+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
 
-L<Prototype '%s' overridden by attribute 'prototype(%s)' in %s|perldiag/"Prototype '%s' overridden by attribute 'prototype(%s)' in %s">
+=item XXX-some-platform
 
-(W prototype) A prototype was declared in both the parentheses after the sub
-name and via the prototype attribute.  The prototype in parentheses is useless,
-since it will be replaced by the prototype from the attribute before it's ever
-used.
+XXX
 
 =back
 
-=head1 Utility Changes
+=head2 Discontinued Platforms
 
-=head3 L<a2p>
+XXX List any platforms that this version of perl no longer compiles on.
 
 =over 4
 
-=item *
+=item XXX-some-platform
 
-A possible crash from an off-by-one error when trying to access before the
-beginning of a buffer has been fixed.  [perl #120244]
+XXX
 
 =back
 
-=head1 Testing
-
-=over 4
-
-=item *
-
-The new prototype attribute syntax is tested by a new test script,
-F<t/op/attrproto.t>.
+=head2 Platform-Specific Notes
 
-=item *
+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.
 
-The new test script F<t/io/closepid.t> tests that C<close> on the original of a
-popen handle dupped to a standard handle no longer blocks internally on
-C<waitpid(0, ...)>.
+=over 4
 
-=item *
+=item XXX-some-platform
 
-The new postfix dereference syntax is tested by a new test script,
-F<t/op/postfixderef.t>.
+XXX
 
 =back
 
-=head1 Platform Support
+=head1 Internal Changes
 
-=head2 Platform-Specific Notes
+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 Windows
+=item *
 
-The Windows MinGW/gcc build was broken in Perl 5.19.4 for some recent versions
-of gcc-4.8, including those from http://mingw-w64.sourceforge.net/ .  This has
-now been fixed.  [perl #120236]
+XXX
 
 =back
 
 =head1 Selected Bug Fixes
 
-=over 4
+XXX Important bug fixes in the core language are summarized here.  Bug fixes in
+files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
 
-=item *
+[ List each fix as a =item entry ]
 
-C<last> no longer returns values that the same statement has accumulated so
-far, fixing amongst other things the long-standing bug that C<push @a, last>
-would try to return the @a, copying it like a scalar in the process and
-resulting in the error, "Bizarre copy of ARRAY in last."  [perl #3112]
+=over 4
 
 =item *
 
-An optimization in Perl 5.18 made incorrect assumptions causing a bad
-interaction with the L<Devel::CallParser> CPAN module.  This was partially
-fixed in Perl 5.19.4, but the fix was not sufficient and another fault has now
-been corrected.
-
-=item *
+XXX
 
-In some cases, closing file handles opened to pipe to or from a process, which
-had been duplicated into a standard handle, would call perl's internal waitpid
-wrapper with a pid of zero.  With the fix for [perl #85228] this zero pid was
-passed to C<waitpid>, possibly blocking the process.  This wait for process
-zero no longer occurs.  [perl #119893]
+=back
 
-=item *
+=head1 Known Problems
 
-The code that parses regex backrefs (or ambiguous backref/octals) such as \123
-did a simple atoi(), which could wrap round to negative values on long digit
-strings and cause segmentation faults.  This has now been fixed.  [perl
-#119505]
+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 ]
 
-C<select> used to ignore magic on the fourth (timeout) argument, leading to
-effects such as C<select> blocking indefinitely rather than the expected sleep
-time.  This has now been fixed.  [perl #120102]
+=over 4
 
 =item *
 
-The class name in C<for my class $foo> is now parsed correctly.  In the case of
-the second character of the class name being followed by a digit (e.g. 'a1b')
-this used to give the error "Missing $ on loop variable".  [perl #120112]
+XXX
 
 =back
 
-=head1 Acknowledgements
-
-Perl 5.19.5 represents approximately 4 weeks of development since Perl 5.19.4
-and contains approximately 76,000 lines of changes across 710 files from 27
-authors.
+=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.19.5:
+XXX If any significant core contributor has died, we've added a short obituary
+here.
 
-Andy Dougherty, Brian Fraser, Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn
-Ilmari MannsÃ¥ker, Daniel Dragan, David Golden, David Mitchell, David Nicol,
-Dominic Hargreaves, Eric Brine, Father Chrysostomos, Gideon Israel Dsouza, Hio,
-James E Keenan, Jerry D. Hedden, Jesse Luehrs, Karl Williamson, Matthew
-Horsfall, Max Maischein, Neil Bowers, Nicholas Clark, Peter Martini, Philip
-Guenther, Ricardo Signes, Steve Hay, Tony Cook.
-
-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.19.5..HEAD
 
 =head1 Reporting Bugs
 
index 71ca61c..00027cc 100644 (file)
@@ -318,7 +318,7 @@ x2p : [.x2p]$(DBG)a2p$(E) [.x2p]s2p.com [.x2p]find2perl.com
 extra.pods : miniperl
        @ @extra_pods.com
 
-PERLDELTA_CURRENT = [.pod]perl5195delta.pod
+PERLDELTA_CURRENT = [.pod]perl5196delta.pod
 
 $(PERLDELTA_CURRENT) : [.pod]perldelta.pod
        Copy/NoConfirm/Log $(MMS$SOURCE) $(PERLDELTA_CURRENT)
index 6931b2e..988a064 100644 (file)
@@ -1156,7 +1156,7 @@ utils: $(PERLEXE) $(X2P) ..\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\perl5195delta.pod
+       copy ..\pod\perldelta.pod ..\pod\perl5196delta.pod
        cd ..\win32
        $(PERLEXE) $(PL2BAT) $(UTILS)
        $(MINIPERL) -I..\lib ..\autodoc.pl ..
@@ -1254,7 +1254,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 \
-           perl5195delta.pod perlaix.pod perlamiga.pod perlapi.pod \
+           perl5196delta.pod perlaix.pod perlamiga.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 perllinux.pod \
index 6b7cd77..ad2678a 100644 (file)
@@ -1338,7 +1338,7 @@ utils: $(PERLEXE) $(X2P) ..\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\perl5195delta.pod
+       copy ..\pod\perldelta.pod ..\pod\perl5196delta.pod
        $(PERLEXE) $(PL2BAT) $(UTILS)
        $(MINIPERL) -I..\lib ..\autodoc.pl ..
        $(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q ..
@@ -1435,7 +1435,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 \
-           perl5195delta.pod perlaix.pod perlamiga.pod perlapi.pod \
+           perl5196delta.pod perlaix.pod perlamiga.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 perllinux.pod \
index eb56c56..d49a8e7 100644 (file)
@@ -40,6 +40,7 @@ POD = perl.pod        \
        perl5193delta.pod       \
        perl5194delta.pod       \
        perl5195delta.pod       \
+       perl5196delta.pod       \
        perl561delta.pod        \
        perl56delta.pod \
        perl581delta.pod        \
@@ -173,6 +174,7 @@ MAN = perl.man      \
        perl5193delta.man       \
        perl5194delta.man       \
        perl5195delta.man       \
+       perl5196delta.man       \
        perl561delta.man        \
        perl56delta.man \
        perl581delta.man        \
@@ -306,6 +308,7 @@ HTML = perl.html    \
        perl5193delta.html      \
        perl5194delta.html      \
        perl5195delta.html      \
+       perl5196delta.html      \
        perl561delta.html       \
        perl56delta.html        \
        perl581delta.html       \
@@ -439,6 +442,7 @@ TEX = perl.tex      \
        perl5193delta.tex       \
        perl5194delta.tex       \
        perl5195delta.tex       \
+       perl5196delta.tex       \
        perl561delta.tex        \
        perl56delta.tex \
        perl581delta.tex        \