Create new perldelta for 5.19.4
authorSteve Hay <steve.m.hay@googlemail.com>
Tue, 20 Aug 2013 16:43:35 +0000 (17:43 +0100)
committerSteve Hay <steve.m.hay@googlemail.com>
Tue, 20 Aug 2013 16:43:35 +0000 (17:43 +0100)
MANIFEST
Makefile.SH
pod/.gitignore
pod/perl.pod
pod/perl5193delta.pod [new file with mode: 0644]
pod/perldelta.pod
vms/descrip_mms.template
win32/Makefile
win32/makefile.mk
win32/pod.mak

index ea98364..1a42a1f 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -4613,6 +4613,7 @@ pod/perl5180delta.pod             Perl changes in version 5.18.0
 pod/perl5190delta.pod          Perl changes in version 5.19.0
 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/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 9d44c2c..17298fa 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/perl5193delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod
+perltoc_pod_prereqs = extra.pods pod/perl5194delta.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/perl5193delta.pod: pod/perldelta.pod
-       $(RMS) pod/perl5193delta.pod
-       $(LNS) perldelta.pod pod/perl5193delta.pod
+pod/perl5194delta.pod: pod/perldelta.pod
+       $(RMS) pod/perl5194delta.pod
+       $(LNS) perldelta.pod pod/perl5194delta.pod
 
 extra.pods: $(MINIPERL_EXE)
        -@test ! -f extra.pods || rm -f `cat extra.pods`
index 7997525..5a54c7f 100644 (file)
@@ -57,7 +57,7 @@
 /roffitall
 
 # generated
-/perl5193delta.pod
+/perl5194delta.pod
 /perlapi.pod
 /perlintern.pod
 *.html
index f86accb..5a8b911 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
+    perl5193delta      Perl changes in version 5.19.3
     perl5192delta      Perl changes in version 5.19.2
     perl5191delta      Perl changes in version 5.19.1
     perl5190delta      Perl changes in version 5.19.0
diff --git a/pod/perl5193delta.pod b/pod/perl5193delta.pod
new file mode 100644 (file)
index 0000000..0ff5baa
--- /dev/null
@@ -0,0 +1,729 @@
+=encoding utf8
+
+=head1 NAME
+
+perl5193delta - what is new for perl v5.19.3
+
+=head1 DESCRIPTION
+
+This document describes differences between the 5.19.2 release and the 5.19.3
+release.
+
+If you are upgrading from an earlier release such as 5.19.1, first read
+L<perl5192delta>, which describes differences between 5.19.1 and 5.19.2.
+
+=head1 Core Enhancements
+
+=head2 B<-F> now implies B<-a> and B<-a> implies B<-n>
+
+Previously B<-F> without B<-a> was a no-op, and B<-a> without B<-n> or B<-p>
+was a no-op, with this change, if you supply B<-F> then both B<-a> and B<-n>
+are implied and if you supply B<-a> then B<-n> is implied.
+
+You can still use B<-p> for its extra behaviour. [perl #116190]
+
+=head1 Security
+
+=head2 Avoid possible read of free()d memory during parsing
+
+It was possible that free()d memory could be read during parsing in the unusual
+circumstance of the Perl program ending with a heredoc and the last line of the
+file on disk having no terminating newline character.  This has now been fixed.
+
+=head1 Performance Enhancements
+
+=over 4
+
+=item *
+
+A performance regression introduced in Perl 5.11.2 in non-Unicode
+case-insensitive pattern matching has been largely resolved.  In particular,
+the disabled optimization is now restored for every ASCII-range character.
+[perl #107816]
+
+=back
+
+=head1 Modules and Pragmata
+
+=head2 Updated Modules and Pragmata
+
+=over 4
+
+=item *
+
+L<B> has been upgraded from version 1.44 to 1.45.
+
+Calling the C<GV> method on C<B::CV> objects created from a lexical sub would
+return nonsense, possibly crashing perl.  C<GV> now returns C<undef> for
+lexical subs. [perl #118525]
+
+Added the C<NAME_HEK> method to return the name of a lexical sub.
+
+=item *
+
+L<bignum> has been upgraded from version 0.33 to 0.36.
+
+L<bigrat> wasn't correctly updating an internal variable when C<use>d with a
+C<lib> option.
+
+=item *
+
+L<Carp> has been upgraded from 1.30 to 1.31
+
+L<Carp> now handles objects with string overloads.  It also allows objects to
+specify how they appear in the stack dump with a C<CARP_TRACE> method, and also
+allows the user to specify their own formatter for objects without
+C<CARP_TRACE> as well as other references. [perl #92446]
+
+=item *
+
+L<Compress::Raw::Bzip2> has been upgraded from 2.061 to 2.062.
+
+No changes have been made other than the version bump to keep in sync with
+other related modules.
+
+=item *
+
+L<Compress::Raw::Zlib> has been upgraded from 2.061 to 2.062.
+
+A minor typo has been fixed in the documentation.
+
+=item *
+
+L<Config::Perl::V> has been upgraded from version 0.18 to 0.19.
+
+The list of build options has been updated.
+
+=item *
+
+L<constant> has been upgraded from version 1.27 to 1.28.
+
+Note that list constants will be inlined and may be read-only in future Perl
+versions.
+
+=item *
+
+L<CPAN::Meta> has been upgraded from version 2.131560 to 2.132140.
+
+Some documentation typos have been fixed.
+
+=item *
+
+L<Data::Dumper> has been upgraded from version 2.147 to 2.148.
+
+The compatibility of the XS implementation with the pure perl version under
+C<Useqq> has been improved. [perl #118933]
+
+=item *
+
+L<DB> has been upgraded from 1.41 to 1.42.
+
+The Perl debugger no longer crashes with C<PERLDB_OPTS="noTTY frame=2">.
+
+=item *
+
+L<Devel::Peek> has been upgraded from version 1.12 to 1.13.
+
+C<SvREFCNT_inc> and C<SvREFCNT_dec> have been removed and C<SvREFCNT> will now
+work on non-scalars. [perl #117793]
+
+C<Dump> now checks its arguments at compile time.  Both arguments are now
+evaluated in scalar context, with exceptions for @arrays and %hashes, allowing
+aggregates to be dumped directly.  The first argument is evaluated in rvalue
+scalar context, allowing rvalue C<pos> and C<substr> to be dumped.
+
+C<fill_mstats> no longer crashes if its argument is not already a string.
+[perl #92260]
+
+=item *
+
+L<Devel::PPPort> has been upgraded from version 3.20 to 3.21.
+
+Numerous updates and bug fixes are incorporated.  See the F<Changes> file for
+full details.
+
+=item *
+
+L<diagnostics> has been upgraded from version 1.31 to 1.32.
+
+Wrapped links are no longer truncated.
+
+=item *
+
+L<DynaLoader> has been upgraded from version 1.18 to 1.19.
+
+The $dl_dlext variable is now documented.
+
+=item *
+
+L<Encode> has been upgraded from version 2.51 to 2.52.
+
+Encoding "0" with MIME-Headers no longer gets a blank string.
+
+=item *
+
+L<English> has been upgraded from version 1.07 to 1.08.
+
+The documentation of a performance fix has been corrected.
+
+=item *
+
+L<Exporter> has been upgraded from version 5.68 to 5.69.
+
+L<Exporter> would ignore custom $SIG{__WARN__} handlers in C<Exporter::Heavy>.
+[perl #39739]
+
+=item *
+
+L<ExtUtils::MakeMaker> has been upgraded from 6.68 to 6.72.
+
+The C<dist> target now reports the file created, an infinite loop in
+C<clean_subdirs> has been fixed, an invisible interactive question is now
+avoided when rebuilding Makefile, issues with F</cygdrive> on Cygwin have been
+resolved, C<LD> and C<OPTIMIZE> are now used in recursive F<Makefile.PL>
+invocations, C<VERSION> and C<VERSION_FROM> now handle v-strings correctly, and
+control characters are now stripped from C<ABSTRACT>.
+
+=item *
+
+L<File::Spec> has been upgraded from 3.41 to 3.44.
+
+The module is now partly implemented in XS, for performance.
+
+=item *
+
+L<Getopt::Std> has been upgraded from version 1.09 to 1.10.
+
+Clarified documentation of what happens when a switch is expecting an argument
+but fails to be provided with one.
+
+=item *
+
+The IO-Compress module collection has been upgraded from 2.061 to 2.062.
+
+Some documentation typos have been fixed.
+
+=item *
+
+L<IPC::Cmd> has been upgraded from version 0.82 to 0.84.
+
+C<run_forked> has various fixes/improvements, L<Socket> is only used where
+needed and a regression introduced in 0.78 has been fixed.
+
+=item *
+
+L<IPC::Open3> has been upgraded from version 1.14 to 1.15.
+
+C<open3> would leak a zombie process if the child process I/O redirection or
+C<exec> failed. [perl #114722]
+
+=item *
+
+L<IPC::SysV> has been upgraded from version 2.03 to 2.04.
+
+$EXPORT_TAGS{all} has been added and a couple of typos have been fixed.
+
+=item *
+
+The libnet module collection has been upgraded from version 1.22 to 1.23.
+
+Numerous bug fixes and documentation improvements have been made.  See the
+F<Changes> file for full details.
+
+=item *
+
+L<List::Util> has been upgraded from version 1.27 to 1.31.
+
+L<List::Util> now includes C<pairgrep>, C<pairmap>, C<pairs>, C<pairkeys>,
+C<pairvalues> and C<pairfirst> functions that operate on even-sized lists of
+pairs.
+
+=item *
+
+L<Module::Build> has been upgraded from 0.4005 to 0.4007.
+
+The test suite has been significantly sped up, Unicode man page support has
+been enhanced and hash argument parsing in subclasses has been fixed.
+
+=item *
+
+L<Module::CoreList> has been upgraded from 2.92 to 2.97.
+
+The list of Perl versions covered has been updated.
+
+=item *
+
+L<mro> has been upgraded from version 1.12 to 1.13.
+
+A minor typo has been fixed in the documentation.
+
+=item *
+
+L<parent> has been upgraded from version 0.225 to 0.226.
+
+Internal changes only have been made to the test suite.
+
+=item *
+
+L<PerlIO> has been upgraded from version 1.07 to 1.08.
+
+Although not a security vulnerability, it was possible to inject code via
+C<PerlIO-E<gt>import()>.  This has now been fixed. [perl #119287]
+
+=item *
+
+L<Pod::Functions> has been upgraded from version 1.07 to 1.08.
+
+Internal changes only have been made to the test suite.
+
+=item *
+
+L<Socket> has been upgraded from version 2.010 to 2.011.
+
+Handle FreeBSD (or other platforms) returning shorter AF_UNIX sockaddr
+structures due to embedded sun_len. [cpan #86613]
+
+=item *
+
+L<Storable> has been upgraded from version 2.45 to 2.46.
+
+Avoid creating temporary objects for STORABLE_attach when they aren't required.
+[perl #118907]
+
+=item *
+
+L<Time::HiRes> has been upgraded from version 1.9725 to 1.9726.
+
+An C<lstat> function is now provided and various bugs have been fixed.  See the
+F<Changes> file for full details.
+
+=item *
+
+L<Time::Piece> has been upgraded from version 1.21 to 1.22.
+
+A minor documentation encoding problem has been fixed.
+
+=item *
+
+L<utf8> has been upgraded from version 1.12 to 1.13.
+
+A minor clarification has been made in the documentation.
+
+=item *
+
+L<version> has been upgraded from version 0.9902 to 0.9903.
+
+Various installation, testing and documentation changes have been made.
+
+=back
+
+=head1 Documentation
+
+=head2 Changes to Existing Documentation
+
+=head3 L<perlfunc>
+
+=over 4
+
+=item *
+
+The documentation of C<ref> has been updated to recommend the use of
+C<blessed>, C<isa> and C<reftype> when dealing with references to blessed
+objects.
+
+=back
+
+=head3 L<perlguts>
+
+=over 4
+
+=item *
+
+The explanation of the use of the C<SVs_PADMY> and C<SVs_PADTMP> flags in
+determining whether an SV lives on a scratchpad has been clarified.
+
+=back
+
+=head3 L<perlopentut>
+
+=over 4
+
+=item *
+
+The C<open> tutorial has been completely rewritten by Tom Christiansen, and now
+focuses on covering only the basics, rather than providing a comprehensive
+reference to all things openable.  This rewrite came as the result of a
+vigorous discussion on perl5-porters kicked off by a set of improvements
+written by Alexander Hartmaier to the existing L<perlopentut>.  A "more than
+you ever wanted to know about C<open>" document may follow in subsequent
+versions of perl.
+
+=back
+
+=head3 L<perlre>
+
+=over 4
+
+=item *
+
+The C</r> modifier (for non-destructive substitution) is now documented. [perl
+#119151]
+
+=back
+
+=head3 L<perlsub>
+
+=over 4
+
+=item *
+
+The need to predeclare recursive functions with prototypes in order for the
+prototype to be honoured in the recursive call is now documented. [perl #2726]
+
+=back
+
+=head3 L<perlvar>
+
+=over 4
+
+=item *
+
+A new section explaining the performance issues of $`, $& and $', including
+workarounds and changes in different versions of Perl, has been added.
+
+=back
+
+=head3 L<perlxs>
+
+=over 4
+
+=item *
+
+Several problems in the C<MY_CXT> example have been fixed.
+
+=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<Magical list constants are not supported|perldiag/"Magical list constants are
+not supported">
+
+(F) You assigned a magical array to a stash element, and then tried to use the
+subroutine from the same slot.  You are asking Perl to do something it cannot
+do, details subject to change between Perl versions.
+
+=back
+
+=head3 New Warnings
+
+=over 4
+
+=item *
+
+L<Argument "%s" treated as 0 in increment (++)|perldiag/"Argument "%s" treated
+as 0 in increment (++)">
+
+(W numeric) The indicated string was fed as an argument to the C<++> operator
+which expects either a number or a string matching C</^[a-zA-Z]*[0-9]*\z/>.
+See L<perlop/Auto-increment and Auto-decrement> for details.
+
+=item *
+
+L<Unexpected exit %u|perldiag/"Unexpected exit %u">
+
+(S) exit() was called or the script otherwise finished gracefully when
+C<PERL_EXIT_WARN> was set in C<PL_exit_flags>.
+
+=item *
+
+L<Unexpected exit failure %u|perldiag/"Unexpected exit failure %u">
+
+(S) An uncaught die() was called when C<PERL_EXIT_WARN> was set in
+C<PL_exit_flags>.
+
+=back
+
+=head1 Testing
+
+=over 4
+
+=item *
+
+The behaviour of C<pos> on very large strings is now tested in the new test
+script F<t/bigmem/pos.t>.
+
+=item *
+
+The test script F<t/porting/ss_dup.t> has been created to test that ss_dup()
+handles all savestack items.
+
+=item *
+
+The new behaviour of B<-F> and B<-a> (see the L</Core Enhancements> section) is
+tested in the new test script F<t/run/switchF2.t>.
+
+=back
+
+=head1 Internal Changes
+
+=over 4
+
+=item *
+
+C<sv_pos_b2u_flags> has been added to the API.  It is similar to C<sv_pos_b2u>,
+but supports long strings on 64-bit platforms.
+
+=item *
+
+C<PL_exit_flags> can now be used by perl embedders or other XS code to have
+perl C<warn> or C<abort> on an attempted exit. [perl #52000]
+
+=back
+
+=head1 Selected Bug Fixes
+
+=over 4
+
+=item *
+
+Autovivifying a subroutine stub via C<\&$glob> started causing crashes in Perl
+5.18.0 if the $glob was merely a copy of a real glob, i.e., a scalar that had
+had a glob assigned to it.  This has been fixed. [perl #119051]
+
+=item *
+
+On 64-bit platforms C<pos> can now be set to a value higher than 2**31-1.
+[perl #72766]
+
+=item *
+
+Perl used to leak an implementation detail when it came to referencing the
+return values of certain operators.  C<for ($a+$b) { warn \$_; warn \$_ }> used
+to display two different memory addresses, because the C<\> operator was
+copying the variable.  Under threaded builds, it would also happen for
+constants (C<for(1) { ... }>).  This has been fixed. [perl #21979, #78194,
+#89188, #109746, #114838, #115388]
+
+=item *
+
+The range operator C<..> was returning the same modifiable scalars with each
+call, unless it was the only thing in a C<foreach> loop header.  This meant
+that changes to values within the list returned would be visible the next time
+the operator was executed. [perl #3105]
+
+=item *
+
+Constant folding and subroutine inlining no longer cause operations that would
+normally return new modifiable scalars to return read-only values instead.
+
+=item *
+
+Closures of the form C<sub () { $some_variable }> are no longer inlined,
+causing changes to the variable to be ignored by callers of the subroutine.
+[perl #79908]
+
+=item *
+
+Return values of certain operators such as C<ref> would sometimes be shared
+between recursive calls to the same subroutine, causing the inner call to
+modify the value returned by C<ref> in the outer call.  This has been fixed.
+
+=item *
+
+C<__PACKAGE__> and constants returning a package name or hash key are now
+consistently read-only.  In various previous Perl releases, they have become
+mutable under certain circumstances.
+
+=item *
+
+C</$qr/p> was broken in Perl 5.18.0; the C</p> flag was ignored.  This has been
+fixed. [perl #118213]
+
+=item *
+
+Starting in Perl 5.18.0, a construct like C</[#](?{})/x> would have its C<#>
+incorrectly interpreted as a comment.  The code block would be skipped,
+unparsed.  This has been corrected.
+
+=item *
+
+Starting in Perl 5.001, a regular expression like C</[#$a]/x> or C</[#]$a/x>
+would have its C<#> incorrectly interpreted as a comment, so the variable would
+not interpolate.  This has been corrected. [perl #45667]
+
+=item *
+
+On non-threaded builds, setting C<${"_E<lt>filename"}> to a reference or
+typeglob no longer causes C<__FILE__> and some error messages to produce a
+corrupt string, and no longer prevents C<#line> directives in string evals from
+providing the source lines to the debugger.  Threaded builds were unaffected.
+
+=item *
+
+Enabling "used once" warnings no longer causes crashes on stash circularities
+created at compile time (C<*Foo::Bar::Foo:: = *Foo::>).
+
+=item *
+
+Undef constants used in hash keys (C<use constant u =E<gt> undef; $h{+u}>) no
+longer produce "uninitialized" warnings at compile time.
+
+=item *
+
+Modifying a substitution target inside the substitution replacement no longer
+causes crashes.
+
+=item *
+
+The first statement inside a string eval used to use the wrong pragma setting
+sometimes during constant folding.  C<eval 'uc chr 0xe0'> would randomly choose
+between Unicode, byte, and locale semantics.  This has been fixed.
+
+=item *
+
+The handling of return values of @INC filters (subroutines returned by
+subroutines in @INC) has been fixed in various ways.  Previously tied variables
+were mishandled, and setting $_ to a reference or typeglob could result in
+crashes.
+
+=item *
+
+The C<SvPVbyte> XS function has been fixed to work with tied scalars returning
+something other than a string.  It used to return utf8 in those cases where
+C<SvPV> would.
+
+=item *
+
+Perl 5.18.0 inadvertently made dereferenced regular expressions
+S<(C<${ qr// }>)> false as booleans.  This has been fixed.
+
+=item *
+
+Perl 5.18.0 inadvertently made C<--> and C<++> crash on dereferenced regular
+expressions, and stopped C<++> from flattening vstrings.
+
+=item *
+
+C<bless> no longer dies with "Can't bless non-reference value" if its first
+argument is a tied reference.
+
+=item *
+
+C<reset> with an argument no longer skips copy-on-write scalars, regular
+expressions, typeglob copies, and vstrings.  Also, when encountering those or
+read-only values, it no longer skips any array or hash with the same name.
+
+=item *
+
+C<reset> with an argument now skips scalars aliased to typeglobs
+(C<for $z (*foo) { reset "z" }>).  Previously it would corrupt memory or crash.
+
+=item *
+
+C<ucfirst> and C<lcfirst> were not respecting the bytes pragma.  This was a
+regression from Perl 5.12. [perl #117355]
+
+=item *
+
+The use of C<\G> in regular expressions, where it's not at the start of the
+pattern, is now slightly less buggy (although it is still somewhat
+problematic).
+
+=item *
+
+Where a regular expression included code blocks (C</(?{...})/>), and where the
+use of constant overloading triggered a re-compilation of the code block, the
+second compilation didn't see its outer lexical scope.  This was a regression
+in Perl 5.18.0.
+
+=item *
+
+Changes to C<UNIVERSAL::DESTROY> now update DESTROY caches in all classes,
+instead of causing classes that have already had objects destroyed to continue
+using the old sub.  This was a regression in Perl 5.18. [perl #114864]
+
+=item *
+
+All known false-positive occurrences of the deprecation warning "Useless use of
+'\'; doesn't escape metacharacter '%c'", added in Perl 5.18.0, have been
+removed. [perl #119101]
+
+=back
+
+=head1 Acknowledgements
+
+Perl 5.19.3 represents approximately 4 weeks of development since Perl 5.19.2
+and contains approximately 24,000 lines of changes across 710 files from 36
+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.3:
+
+Alexander Voronov, Andy Dougherty, Aristotle Pagaltzis, Brendan Byrd, Chris
+'BinGOs' Williams, Colin Kuskie, Craig A. Berry, Daniel Dragan, Darin McBride,
+David Mitchell, Father Chrysostomos, H.Merijn Brand, James E Keenan, John
+Gardiner Myers, John Peacock, Karl Williamson, Lukas Mai, Marcus
+Holland-Moritz, Nathan Trapuzzano, Neil Bowers, Nicholas Clark, Peter Martini,
+Philip Boulain, Ricardo Signes, Sergey Alekseev, Shlomi Fish, Smylers, Steffen
+Müller, Steve Hay, Tom Christiansen, Tony Cook, Victor Efimov, Viktor Turskyi,
+Vladimir Timofeev, Yves Orton, Zefram.
+
+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 19fe645..a3fa197 100644 (file)
 
 =head1 NAME
 
-perldelta - what is new for perl v5.19.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.19.4
 
 =head1 DESCRIPTION
 
-This document describes differences between the 5.19.2 release and the 5.19.3
+This document describes differences between the 5.19.3 release and the 5.19.4
 release.
 
-If you are upgrading from an earlier release such as 5.19.1, first read
-L<perl5192delta>, which describes differences between 5.19.1 and 5.19.2.
-
-=head1 Core Enhancements
-
-=head2 B<-F> now implies B<-a> and B<-a> implies B<-n>
-
-Previously B<-F> without B<-a> was a no-op, and B<-a> without B<-n> or B<-p>
-was a no-op, with this change, if you supply B<-F> then both B<-a> and B<-n>
-are implied and if you supply B<-a> then B<-n> is implied.
-
-You can still use B<-p> for its extra behaviour. [perl #116190]
-
-=head1 Security
-
-=head2 Avoid possible read of free()d memory during parsing
-
-It was possible that free()d memory could be read during parsing in the unusual
-circumstance of the Perl program ending with a heredoc and the last line of the
-file on disk having no terminating newline character.  This has now been fixed.
-
-=head1 Performance Enhancements
-
-=over 4
-
-=item *
-
-A performance regression introduced in Perl 5.11.2 in non-Unicode
-case-insensitive pattern matching has been largely resolved.  In particular,
-the disabled optimization is now restored for every ASCII-range character.
-[perl #107816]
-
-=back
-
-=head1 Modules and Pragmata
-
-=head2 Updated Modules and Pragmata
-
-=over 4
-
-=item *
-
-L<B> has been upgraded from version 1.44 to 1.45.
-
-Calling the C<GV> method on C<B::CV> objects created from a lexical sub would
-return nonsense, possibly crashing perl.  C<GV> now returns C<undef> for
-lexical subs. [perl #118525]
-
-Added the C<NAME_HEK> method to return the name of a lexical sub.
-
-=item *
-
-L<bignum> has been upgraded from version 0.33 to 0.36.
-
-L<bigrat> wasn't correctly updating an internal variable when C<use>d with a
-C<lib> option.
-
-=item *
-
-L<Carp> has been upgraded from 1.30 to 1.31
-
-L<Carp> now handles objects with string overloads.  It also allows objects to
-specify how they appear in the stack dump with a C<CARP_TRACE> method, and also
-allows the user to specify their own formatter for objects without
-C<CARP_TRACE> as well as other references. [perl #92446]
-
-=item *
-
-L<Compress::Raw::Bzip2> has been upgraded from 2.061 to 2.062.
-
-No changes have been made other than the version bump to keep in sync with
-other related modules.
-
-=item *
-
-L<Compress::Raw::Zlib> has been upgraded from 2.061 to 2.062.
-
-A minor typo has been fixed in the documentation.
-
-=item *
-
-L<Config::Perl::V> has been upgraded from version 0.18 to 0.19.
-
-The list of build options has been updated.
-
-=item *
-
-L<constant> has been upgraded from version 1.27 to 1.28.
-
-Note that list constants will be inlined and may be read-only in future Perl
-versions.
-
-=item *
-
-L<CPAN::Meta> has been upgraded from version 2.131560 to 2.132140.
-
-Some documentation typos have been fixed.
-
-=item *
-
-L<Data::Dumper> has been upgraded from version 2.147 to 2.148.
-
-The compatibility of the XS implementation with the pure perl version under
-C<Useqq> has been improved. [perl #118933]
-
-=item *
-
-L<DB> has been upgraded from 1.41 to 1.42.
-
-The Perl debugger no longer crashes with C<PERLDB_OPTS="noTTY frame=2">.
-
-=item *
-
-L<Devel::Peek> has been upgraded from version 1.12 to 1.13.
-
-C<SvREFCNT_inc> and C<SvREFCNT_dec> have been removed and C<SvREFCNT> will now
-work on non-scalars. [perl #117793]
-
-C<Dump> now checks its arguments at compile time.  Both arguments are now
-evaluated in scalar context, with exceptions for @arrays and %hashes, allowing
-aggregates to be dumped directly.  The first argument is evaluated in rvalue
-scalar context, allowing rvalue C<pos> and C<substr> to be dumped.
-
-C<fill_mstats> no longer crashes if its argument is not already a string.
-[perl #92260]
-
-=item *
-
-L<Devel::PPPort> has been upgraded from version 3.20 to 3.21.
-
-Numerous updates and bug fixes are incorporated.  See the F<Changes> file for
-full details.
-
-=item *
-
-L<diagnostics> has been upgraded from version 1.31 to 1.32.
-
-Wrapped links are no longer truncated.
-
-=item *
-
-L<DynaLoader> has been upgraded from version 1.18 to 1.19.
-
-The $dl_dlext variable is now documented.
-
-=item *
-
-L<Encode> has been upgraded from version 2.51 to 2.52.
-
-Encoding "0" with MIME-Headers no longer gets a blank string.
-
-=item *
-
-L<English> has been upgraded from version 1.07 to 1.08.
-
-The documentation of a performance fix has been corrected.
-
-=item *
-
-L<Exporter> has been upgraded from version 5.68 to 5.69.
-
-L<Exporter> would ignore custom $SIG{__WARN__} handlers in C<Exporter::Heavy>.
-[perl #39739]
-
-=item *
-
-L<ExtUtils::MakeMaker> has been upgraded from 6.68 to 6.72.
-
-The C<dist> target now reports the file created, an infinite loop in
-C<clean_subdirs> has been fixed, an invisible interactive question is now
-avoided when rebuilding Makefile, issues with F</cygdrive> on Cygwin have been
-resolved, C<LD> and C<OPTIMIZE> are now used in recursive F<Makefile.PL>
-invocations, C<VERSION> and C<VERSION_FROM> now handle v-strings correctly, and
-control characters are now stripped from C<ABSTRACT>.
-
-=item *
-
-L<File::Spec> has been upgraded from 3.41 to 3.44.
-
-The module is now partly implemented in XS, for performance.
-
-=item *
-
-L<Getopt::Std> has been upgraded from version 1.09 to 1.10.
-
-Clarified documentation of what happens when a switch is expecting an argument
-but fails to be provided with one.
-
-=item *
-
-The IO-Compress module collection has been upgraded from 2.061 to 2.062.
-
-Some documentation typos have been fixed.
-
-=item *
-
-L<IPC::Cmd> has been upgraded from version 0.82 to 0.84.
-
-C<run_forked> has various fixes/improvements, L<Socket> is only used where
-needed and a regression introduced in 0.78 has been fixed.
-
-=item *
-
-L<IPC::Open3> has been upgraded from version 1.14 to 1.15.
-
-C<open3> would leak a zombie process if the child process I/O redirection or
-C<exec> failed. [perl #114722]
-
-=item *
-
-L<IPC::SysV> has been upgraded from version 2.03 to 2.04.
+If you are upgrading from an earlier release such as 5.19.2, first read
+L<perl5193delta>, which describes differences between 5.19.2 and 5.19.3.
 
-$EXPORT_TAGS{all} has been added and a couple of typos have been fixed.
+=head1 Notice
 
-=item *
-
-The libnet module collection has been upgraded from version 1.22 to 1.23.
-
-Numerous bug fixes and documentation improvements have been made.  See the
-F<Changes> file for full details.
-
-=item *
-
-L<List::Util> has been upgraded from version 1.27 to 1.31.
-
-L<List::Util> now includes C<pairgrep>, C<pairmap>, C<pairs>, C<pairkeys>,
-C<pairvalues> and C<pairfirst> functions that operate on even-sized lists of
-pairs.
-
-=item *
-
-L<Module::Build> has been upgraded from 0.4005 to 0.4007.
-
-The test suite has been significantly sped up, Unicode man page support has
-been enhanced and hash argument parsing in subclasses has been fixed.
-
-=item *
-
-L<Module::CoreList> has been upgraded from 2.92 to 2.97.
+XXX Any important notices here
 
-The list of Perl versions covered has been updated.
-
-=item *
+=head1 Core Enhancements
 
-L<mro> has been upgraded from version 1.12 to 1.13.
+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.
 
-A minor typo has been fixed in the documentation.
+[ List each enhancement as a =head2 entry ]
 
-=item *
+=head1 Security
 
-L<parent> has been upgraded from version 0.225 to 0.226.
+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.
 
-Internal changes only have been made to the test suite.
+[ List each security issue as a =head2 entry ]
 
-=item *
+=head1 Incompatible Changes
 
-L<PerlIO> has been upgraded from version 1.07 to 1.08.
+XXX For a release on a stable branch, this section aspires to be:
 
-Although not a security vulnerability, it was possible to inject code via
-C<PerlIO-E<gt>import()>.  This has now been fixed. [perl #119287]
+    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.
 
-=item *
+[ List each incompatible change as a =head2 entry ]
 
-L<Pod::Functions> has been upgraded from version 1.07 to 1.08.
+=head1 Deprecations
 
-Internal changes only have been made to the test suite.
+XXX Any deprecated features, syntax, modules etc. should be listed here.
 
-=item *
+=head2 Module removals
 
-L<Socket> has been upgraded from version 2.010 to 2.011.
+XXX Remove this section if inapplicable.
 
-Handle FreeBSD (or other platforms) returning shorter AF_UNIX sockaddr
-structures due to embedded sun_len. [cpan #86613]
+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.
 
-=item *
+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.
 
-L<Storable> has been upgraded from version 2.45 to 2.46.
+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.
 
-Avoid creating temporary objects for STORABLE_attach when they aren't required.
-[perl #118907]
+=over
 
-=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<Time::HiRes> has been upgraded from version 1.9725 to 1.9726.
-
-An C<lstat> function is now provided and various bugs have been fixed.  See the
-F<Changes> file for full details.
-
-=item *
+=back
 
-L<Time::Piece> has been upgraded from version 1.21 to 1.22.
+[ List each other deprecation as a =head2 entry ]
 
-A minor documentation encoding problem has been fixed.
+=head1 Performance Enhancements
 
-=item *
+XXX Changes which enhance performance without changing behaviour go here.
+There may well be none in a stable release.
 
-L<utf8> has been upgraded from version 1.12 to 1.13.
+[ List each enhancement as a =item entry ]
 
-A minor clarification has been made in the documentation.
+=over 4
 
 =item *
 
-L<version> has been upgraded from version 0.9902 to 0.9903.
-
-Various installation, testing and documentation changes have been made.
+XXX
 
 =back
 
-=head1 Documentation
-
-=head2 Changes to Existing Documentation
-
-=head3 L<perlfunc>
-
-=over 4
-
-=item *
+=head1 Modules and Pragmata
 
-The documentation of C<ref> has been updated to recommend the use of
-C<blessed>, C<isa> and C<reftype> when dealing with references to blessed
-objects.
+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.
 
-=back
+[ Within each section, list entries as a =item entry ]
 
-=head3 L<perlguts>
+=head2 New Modules and Pragmata
 
 =over 4
 
 =item *
 
-The explanation of the use of the C<SVs_PADMY> and C<SVs_PADTMP> flags in
-determining whether an SV lives on a scratchpad has been clarified.
+XXX
 
 =back
 
-=head3 L<perlopentut>
+=head2 Updated Modules and Pragmata
 
 =over 4
 
 =item *
 
-The C<open> tutorial has been completely rewritten by Tom Christiansen, and now
-focuses on covering only the basics, rather than providing a comprehensive
-reference to all things openable.  This rewrite came as the result of a
-vigorous discussion on perl5-porters kicked off by a set of improvements
-written by Alexander Hartmaier to the existing L<perlopentut>.  A "more than
-you ever wanted to know about C<open>" document may follow in subsequent
-versions of perl.
+L<XXX> has been upgraded from version A.xx to B.yy.
 
 =back
 
-=head3 L<perlre>
+=head2 Removed Modules and Pragmata
 
 =over 4
 
 =item *
 
-The C</r> modifier (for non-destructive substitution) is now documented. [perl
-#119151]
+XXX
 
 =back
 
-=head3 L<perlsub>
-
-=over 4
-
-=item *
+=head1 Documentation
 
-The need to predeclare recursive functions with prototypes in order for the
-prototype to be honoured in the recursive call is now documented. [perl #2726]
+XXX Changes to files in F<pod/> go here.  Consider grouping entries by
+file and be sure to link to the appropriate page, e.g. L<perlfunc>.
 
-=back
+=head2 New Documentation
 
-=head3 L<perlvar>
+XXX Changes which create B<new> files in F<pod/> go here.
 
-=over 4
+=head3 L<XXX>
 
-=item *
+XXX Description of the purpose of the new file here
 
-A new section explaining the performance issues of $`, $& and $', including
-workarounds and changes in different versions of Perl, has been added.
+=head2 Changes to Existing Documentation
 
-=back
+XXX Changes which significantly change existing files in F<pod/> go here.
+However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
+section.
 
-=head3 L<perlxs>
+=head3 L<XXX>
 
 =over 4
 
 =item *
 
-Several problems in the C<MY_CXT> example have been fixed.
+XXX Description of the change here
 
 =back
 
@@ -409,20 +168,21 @@ The following additions or changes have been made to diagnostic output,
 including warnings and fatal error messages.  For the complete list of
 diagnostic messages, see L<perldiag>.
 
+XXX New or changed warnings emitted by the core's C<C> code go here.  Also
+include any changes in L<perldiag> that reconcile it to the C<C> code.
+
 =head2 New Diagnostics
 
+XXX Newly added diagnostic messages go under here, separated into New Errors
+and New Warnings
+
 =head3 New Errors
 
 =over 4
 
 =item *
 
-L<Magical list constants are not supported|perldiag/"Magical list constants are
-not supported">
-
-(F) You assigned a magical array to a stash element, and then tried to use the
-subroutine from the same slot.  You are asking Perl to do something it cannot
-do, details subject to change between Perl versions.
+XXX L<message|perldiag/"message">
 
 =back
 
@@ -432,266 +192,182 @@ do, details subject to change between Perl versions.
 
 =item *
 
-L<Argument "%s" treated as 0 in increment (++)|perldiag/"Argument "%s" treated
-as 0 in increment (++)">
-
-(W numeric) The indicated string was fed as an argument to the C<++> operator
-which expects either a number or a string matching C</^[a-zA-Z]*[0-9]*\z/>.
-See L<perlop/Auto-increment and Auto-decrement> for details.
-
-=item *
-
-L<Unexpected exit %u|perldiag/"Unexpected exit %u">
-
-(S) exit() was called or the script otherwise finished gracefully when
-C<PERL_EXIT_WARN> was set in C<PL_exit_flags>.
-
-=item *
-
-L<Unexpected exit failure %u|perldiag/"Unexpected exit failure %u">
-
-(S) An uncaught die() was called when C<PERL_EXIT_WARN> was set in
-C<PL_exit_flags>.
+XXX L<message|perldiag/"message">
 
 =back
 
-=head1 Testing
+=head2 Changes to Existing Diagnostics
+
+XXX Changes (i.e. rewording) of diagnostic messages go here
 
 =over 4
 
 =item *
 
-The behaviour of C<pos> on very large strings is now tested in the new test
-script F<t/bigmem/pos.t>.
-
-=item *
+XXX Describe change here
 
-The test script F<t/porting/ss_dup.t> has been created to test that ss_dup()
-handles all savestack items.
+=back
 
-=item *
+=head1 Utility Changes
 
-The new behaviour of B<-F> and B<-a> (see the L</Core Enhancements> section) is
-tested in the new test script F<t/run/switchF2.t>.
+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>.
 
-=back
+[ 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. ]
 
-=head1 Internal Changes
+=head3 L<XXX>
 
 =over 4
 
 =item *
 
-C<sv_pos_b2u_flags> has been added to the API.  It is similar to C<sv_pos_b2u>,
-but supports long strings on 64-bit platforms.
+XXX
 
-=item *
+=back
 
-C<PL_exit_flags> can now be used by perl embedders or other XS code to have
-perl C<warn> or C<abort> on an attempted exit. [perl #52000]
+=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.
 
-=head1 Selected Bug Fixes
+[ List changes as a =item entry ].
 
 =over 4
 
 =item *
 
-Autovivifying a subroutine stub via C<\&$glob> started causing crashes in Perl
-5.18.0 if the $glob was merely a copy of a real glob, i.e., a scalar that had
-had a glob assigned to it.  This has been fixed. [perl #119051]
+XXX
 
-=item *
-
-On 64-bit platforms C<pos> can now be set to a value higher than 2**31-1.
-[perl #72766]
+=back
 
-=item *
+=head1 Testing
 
-Perl used to leak an implementation detail when it came to referencing the
-return values of certain operators.  C<for ($a+$b) { warn \$_; warn \$_ }> used
-to display two different memory addresses, because the C<\> operator was
-copying the variable.  Under threaded builds, it would also happen for
-constants (C<for(1) { ... }>).  This has been fixed. [perl #21979, #78194,
-#89188, #109746, #114838, #115388]
+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 ]
 
-The range operator C<..> was returning the same modifiable scalars with each
-call, unless it was the only thing in a C<foreach> loop header.  This meant
-that changes to values within the list returned would be visible the next time
-the operator was executed. [perl #3105]
+=over 4
 
 =item *
 
-Constant folding and subroutine inlining no longer cause operations that would
-normally return new modifiable scalars to return read-only values instead.
+XXX
 
-=item *
+=back
 
-Closures of the form C<sub () { $some_variable }> are no longer inlined,
-causing changes to the variable to be ignored by callers of the subroutine.
-[perl #79908]
+=head1 Platform Support
 
-=item *
+XXX Any changes to platform support should be listed in the sections below.
 
-Return values of certain operators such as C<ref> would sometimes be shared
-between recursive calls to the same subroutine, causing the inner call to
-modify the value returned by C<ref> in the outer call.  This has been fixed.
+[ Within the sections, list each platform as a =item entry with specific
+changes as paragraphs below it. ]
 
-=item *
+=head2 New Platforms
 
-C<__PACKAGE__> and constants returning a package name or hash key are now
-consistently read-only.  In various previous Perl releases, they have become
-mutable under certain circumstances.
+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
 
-C</$qr/p> was broken in Perl 5.18.0; the C</p> flag was ignored.  This has been
-fixed. [perl #118213]
+=item XXX-some-platform
 
-=item *
+XXX
 
-Starting in Perl 5.18.0, a construct like C</[#](?{})/x> would have its C<#>
-incorrectly interpreted as a comment.  The code block would be skipped,
-unparsed.  This has been corrected.
+=back
 
-=item *
+=head2 Discontinued Platforms
 
-Starting in Perl 5.001, a regular expression like C</[#$a]/x> or C</[#]$a/x>
-would have its C<#> incorrectly interpreted as a comment, so the variable would
-not interpolate.  This has been corrected. [perl #45667]
+XXX List any platforms that this version of perl no longer compiles on.
 
-=item *
+=over 4
 
-On non-threaded builds, setting C<${"_E<lt>filename"}> to a reference or
-typeglob no longer causes C<__FILE__> and some error messages to produce a
-corrupt string, and no longer prevents C<#line> directives in string evals from
-providing the source lines to the debugger.  Threaded builds were unaffected.
+=item XXX-some-platform
 
-=item *
+XXX
 
-Enabling "used once" warnings no longer causes crashes on stash circularities
-created at compile time (C<*Foo::Bar::Foo:: = *Foo::>).
+=back
 
-=item *
+=head2 Platform-Specific Notes
 
-Undef constants used in hash keys (C<use constant u =E<gt> undef; $h{+u}>) no
-longer produce "uninitialized" warnings at compile time.
+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
 
-Modifying a substitution target inside the substitution replacement no longer
-causes crashes.
+=item XXX-some-platform
 
-=item *
+XXX
 
-The first statement inside a string eval used to use the wrong pragma setting
-sometimes during constant folding.  C<eval 'uc chr 0xe0'> would randomly choose
-between Unicode, byte, and locale semantics.  This has been fixed.
+=back
 
-=item *
+=head1 Internal Changes
 
-The handling of return values of @INC filters (subroutines returned by
-subroutines in @INC) has been fixed in various ways.  Previously tied variables
-were mishandled, and setting $_ to a reference or typeglob could result in
-crashes.
+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 ]
 
-The C<SvPVbyte> XS function has been fixed to work with tied scalars returning
-something other than a string.  It used to return utf8 in those cases where
-C<SvPV> would.
+=over 4
 
 =item *
 
-Perl 5.18.0 inadvertently made dereferenced regular expressions
-S<(C<${ qr// }>)> false as booleans.  This has been fixed.
-
-=item *
+XXX
 
-Perl 5.18.0 inadvertently made C<--> and C<++> crash on dereferenced regular
-expressions, and stopped C<++> from flattening vstrings.
+=back
 
-=item *
+=head1 Selected Bug Fixes
 
-C<bless> no longer dies with "Can't bless non-reference value" if its first
-argument is a tied reference.
+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<reset> with an argument no longer skips copy-on-write scalars, regular
-expressions, typeglob copies, and vstrings.  Also, when encountering those or
-read-only values, it no longer skips any array or hash with the same name.
+=over 4
 
 =item *
 
-C<reset> with an argument now skips scalars aliased to typeglobs
-(C<for $z (*foo) { reset "z" }>).  Previously it would corrupt memory or crash.
+XXX
 
-=item *
+=back
 
-C<ucfirst> and C<lcfirst> were not respecting the bytes pragma.  This was a
-regression from Perl 5.12. [perl #117355]
+=head1 Known Problems
 
-=item *
+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.
 
-The use of C<\G> in regular expressions, where it's not at the start of the
-pattern, is now slightly less buggy (although it is still somewhat
-problematic).
+[ List each fix as a =item entry ]
 
-=item *
-
-Where a regular expression included code blocks (C</(?{...})/>), and where the
-use of constant overloading triggered a re-compilation of the code block, the
-second compilation didn't see its outer lexical scope.  This was a regression
-in Perl 5.18.0.
+=over 4
 
 =item *
 
-Changes to C<UNIVERSAL::DESTROY> now update DESTROY caches in all classes,
-instead of causing classes that have already had objects destroyed to continue
-using the old sub.  This was a regression in Perl 5.18. [perl #114864]
+XXX
 
-=item *
+=back
 
-All known false-positive occurrences of the deprecation warning "Useless use of
-'\'; doesn't escape metacharacter '%c'", added in Perl 5.18.0, have been
-removed. [perl #119101]
+=head1 Obituary
 
-=back
+XXX If any significant core contributor has died, we've added a short obituary
+here.
 
 =head1 Acknowledgements
 
-Perl 5.19.3 represents approximately 4 weeks of development since Perl 5.19.2
-and contains approximately 24,000 lines of changes across 710 files from 36
-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.3:
-
-Alexander Voronov, Andy Dougherty, Aristotle Pagaltzis, Brendan Byrd, Chris
-'BinGOs' Williams, Colin Kuskie, Craig A. Berry, Daniel Dragan, Darin McBride,
-David Mitchell, Father Chrysostomos, H.Merijn Brand, James E Keenan, John
-Gardiner Myers, John Peacock, Karl Williamson, Lukas Mai, Marcus
-Holland-Moritz, Nathan Trapuzzano, Neil Bowers, Nicholas Clark, Peter Martini,
-Philip Boulain, Ricardo Signes, Sergey Alekseev, Shlomi Fish, Smylers, Steffen
-Müller, Steve Hay, Tom Christiansen, Tony Cook, Victor Efimov, Viktor Turskyi,
-Vladimir Timofeev, Yves Orton, Zefram.
-
-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.
+XXX Generate this with:
+
+  perl Porting/acknowledgements.pl v5.19.3..HEAD
 
 =head1 Reporting Bugs
 
index c5d25e3..706a8f7 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]perl5193delta.pod
+PERLDELTA_CURRENT = [.pod]perl5194delta.pod
 
 $(PERLDELTA_CURRENT) : [.pod]perldelta.pod
        Copy/NoConfirm/Log $(MMS$SOURCE) $(PERLDELTA_CURRENT)
index 965c6ca..193f1fc 100644 (file)
@@ -1147,7 +1147,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\perl5193delta.pod
+       copy ..\pod\perldelta.pod ..\pod\perl5194delta.pod
        cd ..\win32
        $(PERLEXE) $(PL2BAT) $(UTILS)
        $(MINIPERL) -I..\lib ..\autodoc.pl ..
@@ -1246,7 +1246,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 \
-           perl5193delta.pod perlaix.pod perlamiga.pod perlapi.pod \
+           perl5194delta.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 97295f7..d75fee2 100644 (file)
@@ -1330,7 +1330,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\perl5193delta.pod
+       copy ..\pod\perldelta.pod ..\pod\perl5194delta.pod
        $(PERLEXE) $(PL2BAT) $(UTILS)
        $(MINIPERL) -I..\lib ..\autodoc.pl ..
        $(MINIPERL) -I..\lib ..\pod\perlmodlib.PL -q ..
@@ -1428,7 +1428,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 \
-           perl5193delta.pod perlaix.pod perlamiga.pod perlapi.pod \
+           perl5194delta.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 2f94cf5..1a0832a 100644 (file)
@@ -37,6 +37,7 @@ POD = perl.pod        \
        perl5191delta.pod       \
        perl5192delta.pod       \
        perl5193delta.pod       \
+       perl5194delta.pod       \
        perl561delta.pod        \
        perl56delta.pod \
        perl581delta.pod        \
@@ -166,6 +167,7 @@ MAN = perl.man      \
        perl5191delta.man       \
        perl5192delta.man       \
        perl5193delta.man       \
+       perl5194delta.man       \
        perl561delta.man        \
        perl56delta.man \
        perl581delta.man        \
@@ -295,6 +297,7 @@ HTML = perl.html    \
        perl5191delta.html      \
        perl5192delta.html      \
        perl5193delta.html      \
+       perl5194delta.html      \
        perl561delta.html       \
        perl56delta.html        \
        perl581delta.html       \
@@ -424,6 +427,7 @@ TEX = perl.tex      \
        perl5191delta.tex       \
        perl5192delta.tex       \
        perl5193delta.tex       \
+       perl5194delta.tex       \
        perl561delta.tex        \
        perl56delta.tex \
        perl581delta.tex        \