This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
pod/perldelta.pod: fill in Acknowledgements for 5.13.10
[perl5.git] / pod / perldelta.pod
index 1539754..4053050 100644 (file)
 
 =head1 NAME
 
-[ this is a template for a new perldelta file. Any text flagged as
-XXX needs to be processed before release. ]
-
-perldelta - what is new for perl v5.13.9
+perldelta - what is new for perl v5.13.10
 
 =head1 DESCRIPTION
 
-This document describes differences between the 5.13.8 release and
-the 5.13.9 release.
-
-If you are upgrading from an earlier release such as 5.13.7, first read
-L<perl5138delta>, which describes differences between 5.13.7 and
-5.13.8.
+This document describes differences between the 5.13.9 release and
+the 5.13.10 release.
 
-=head1 Notice
-
-XXX Any important notices here
+If you are upgrading from an earlier release such as 5.13.8, first read
+L<perl5139delta>, which describes differences between 5.13.8 and
+5.13.9.
 
 =head1 Core Enhancements
 
-XXX New core language features go here. Summarise user-visible core language
-enhancements. Particularly prominent performance optimisations could go
-here, but most should go in the L</Performance Enhancements> section.
-
-[ List each enhancement as a =head2 entry ]
-
-=head2 New regular expression modifier C</a>
-
-The C</a> regular expression modifier restricts C<\s> to match precisely
-the five characters C<[ \f\n\r\t]>, C<\d> to match precisely the 10
-characters C<[0-9]>, C<\w> to match precisely the 63 characters
-C<[A-Za-z0-9_]>, and the Posix (C<[[:posix:]]>) character classes to
-match only the appropriate ASCII characters.  The complements, of
-course, match everything but; and C<\b> and C<\B> are correspondingly
-affected.  Otherwise, C</a> behaves like the C</u> modifier, in that
-case-insensitive matching uses Unicode semantics; for example, "k" will
-match the Unicode C<\N{KELVIN SIGN}> under C</i> matching, and code
-points in the Latin1 range, above ASCII will have Unicode semantics when
-it comes to case-insensitive matching.  Like its cousins (C</u>, C</l>,
-and C</d>), and in spite of the terminology, C</a> in 5.14 will not
-actually be able to be used as a suffix at the end of a regular
-expression (this restriction is planned to be lifted in 5.16).  It must
-occur either as an infix modifier, such as C<(?a:...)> or (C<(?a)...>,
-or it can be turned on within the lexical scope of C<use re '/a'>.
-Turning on C</a> turns off the other "character set" modifiers.
-
-=head2 Any unsigned value can be encoded as a character
-
-With this release, Perl is adopting a model that any unsigned value can
-be treated as a code point and encoded internally (as utf8) without
-warnings -- not just the code points that are legal in Unicode.
-However, unless utf8 warnings have been
-explicitly lexically turned off, outputting or performing a
-Unicode-defined operation (such as upper-casing) on such a code point
-will generate a warning.  Attempting to input these using strict rules
-(such as with the C<:encoding('UTF-8')> layer) will continue to fail.
-Prior to this release the handling was very inconsistent, and incorrect
-in places.  Also, the Unicode non-characters, some of which previously were
-erroneously considered illegal in places by Perl, contrary to the Unicode
-standard, are now always legal internally.  But inputting or outputting
-them will work the same as for the non-legal Unicode code points, as the
-Unicode standard says they are illegal for "open interchange".
-
-=head2 Regular expression debugging output improvement
-
-Regular expression debugging output (turned on by C<use re 'debug';>) now
-uses hexadecimal when escaping non-ASCII characters, instead of octal.
-
-=head1 Security
+=head2 The new regular expression modifiers available in suffix form
 
-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.
+Various releases of the 5.13.x series have added new regular expression
+modifiers, C</a>, C</d>, C</l>, and C</u>.  They were only available in
+infix form (e.g., C<(?a:...)> until this release; now they are usable
+in suffix form.  This change was made too late to change all the
+affected documentation, so there are a number of places that erroneously
+say these must be used in infix form.
 
-[ List each security issue as a =head2 entry ]
+However, there is an ambiguity with the construct, C<s/foo/bar/le...>.  Due
+to backward compatibility constraints, in Perl 5.14 only, it will be
+resolved as C<s/foo/bar/ le...>, that is, as meaning to take the result
+of the substitution, and see if it is stringwise less-than-or-equal-to
+what follows. In Perl 5.16 and later, it will instead be resolved as
+meaning to do the pattern match using the rules of the current locale,
+and evaluate the rhs as an expression when doing the substitution.  In
+5.14, if you want the latter interpretation, you can write "el" instead.
 
-=head1 Incompatible Changes
+=head2 Add C<\p{Titlecase}> as a synonym for C<\p{Title}>
 
-XXX For a release on a stable branch, this section aspires to be:
+This synonym is added for symmetry with the Unicode property names
+C<\p{Uppercase}> and C<\p{Lowercase}>.
 
-    There are no changes intentionally incompatible with 5.XXX.XXX. If any
-    exist, they are bugs and reports are welcome.
+=head2 New regular expression modifier option C</aa>
 
-[ List each incompatible change as a =head2 entry ]
+Doubling the C</a> regular expression modifier increases its effect,
+so that in case-insensitive matching, no ASCII character will match a
+non-ASCII character.  For example, normally,
 
-=head2 All objects are destroyed
+    'k' =~ /\N{KELVIN SIGN}/
 
-It used to be possible to prevent a destructor from being called during
-global destruction by artificially increasing the reference count of an
-object.
+will match; it won't under C</aa>.
 
-Now such objects I<will> will be destroyed, as a result of a bug fix
-L<[perl #81230]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=81230>.
+=head2 New warnings categories for problematic (non-)Unicode code points.
 
-This has the potential to break some XS modules. (In fact, it break some.
-See L</Known Problems>, below.)
+Three new warnings subcategories of <utf8> have been added.  These
+allow you to turn off warnings for their covered events, while allowing
+the other UTF-8 warnings to remain on.  The three categories are:
+C<surrogate> when UTF-16 surrogates are encountered;
+C<nonchar> when Unicode non-character code points are encountered;
+and C<non_unicode> when code points that are above the legal Unicode
+maximum of 0x10FFFF are encountered.
 
-=head1 Deprecations
+=head1 Security
 
-XXX Any deprecated features, syntax, modules etc. should be listed here.
-In particular, deprecated modules should be listed here even if they are
-listed as an updated module in the L</Modules and Pragmata> section.
+=head1 Incompatible Changes
 
-[ List each deprecation as a =head2 entry ]
+=head2 Most C<\p{}> properties are now immune from case-insensitive matching
 
-=head1 Performance Enhancements
+For most Unicode properties, it doesn't make sense to have them match
+differently under C</i> case-insensitive matching than not.  And doing
+so leads to unexpected results and potential security holes.  For
+example
 
-XXX Changes which enhance performance without changing behaviour go here. There
-may well be none in a stable release.
+ m/\p{ASCII_Hex_Digit}+/i
 
-[ List each enhancement as a =item entry ]
+could previously match non-ASCII characters because of the Unicode
+matching rules.  There were a number of bugs in this feature until an
+earlier release in the 5.13 series.  Now this release reverts, and
+removes the feature completely except for the few properties where
+people have come to expect it, namely the ones where casing is an
+integral part of their functionality, such as C<m/\p{Uppercase}/i> and
+C<m/\p{Lowercase}/i>, both of which match the exact same code points,
+namely those matched by C<m/\p{Cased}/i>.  Details are in
+L<perlrecharclass/Unicode Properties>.
 
-=over 4
+User-defined property handlers that need to match differently under
+C</i> must change to read the new boolean parameter passed it which is
+non-zero if case-insensitive matching is in effect; 0 if not.  See
+L<perluniprops/User-Defined Character Properties>.
 
-=item *
+=head2 regex: \p{} in pattern implies Unicode semantics
 
-XXX
+Now, a Unicode property match specified in the pattern will indicate
+that the pattern is meant for matching according to Unicode rules
+(e40e74f)
 
-=back
+=head2 add GvCV_set() and GvGP_set() macros and change GvGP()
 
-=head1 Modules and Pragmata
+This allows a future commit to eliminate some backref magic between GV
+and CVs, which will require complete control over assignment to the
+gp_cv slot.
 
-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.
+If you've been using GvGP() in lvalue context this change will break
+your code, you should use GvGP_set() instead. (c43ae56)
 
-[ Within each section, list entries as a =item entry ]
+=head2 _swash_inversion_hash is no longer exported as part of the API
 
-=head2 New Modules and Pragmata
+This function shouldn't be called from XS code. (4c2e113)
 
-=over 4
+=head2 Unreferenced objects in global destruction
 
-=item *
+The fix for [perl #36347], which made sure that destructors were called on
+unreferenced objects, broke the tests for three CPAN modules, which
+apparently rely on the bug.
 
-L<CPAN::Meta::YAML> 0.003 has been added as a dual-life module.  It supports a
-subset of YAML sufficient for reading and writing META.yml and MYMETA.yml files
-included with CPAN distributions or generated by the module installation
-toolchain. It should not be used for any other general YAML parsing or
-generation task.
+To provide more time for fixing them (as this is such a minor bug), we
+have reverted the fix until after perl 5.14.0.
 
-=item *
+This resolves [perl #82542] and other related tickets.
 
-L<HTTP::Tiny> 0.009 has been added as a dual-life module.  It is a very
-small, simple HTTP/1.1 client designed for simple GET requests and file
-mirroring.  It has has been added to enable CPAN.pm and CPANPLUS to
-"bootstrap" HTTP access to CPAN using pure Perl without relying on external
-binaries like F<curl> or F<wget>.
+=head2 C<close> on shared pipes
 
-=item *
+The C<close> function no longer waits for the child process to exit if the
+underlying file descriptor is still in use by another thread, to avoid
+deadlocks. It returns true in such cases.
 
-L<JSON::PP> 2.27103 has been added as a dual-life module, for the sake of
-reading F<META.json> files in CPAN distributions.
+=head1 Deprecations
 
-=item *
+=over
 
-L<Module::Metadata> 1.000003 has been added as a dual-life module.  It gathers
-package and POD information from Perl module files.  It is a standalone module
-based on Module::Build::ModuleInfo for use by other module installation
-toolchain components.  Module::Build::ModuleInfo has been deprecated in
-favor of this module instead.
+=item Deprecated Modules
 
-=item *
+The following modules will be removed from the core distribution in a
+future release, and should be installed from CPAN instead. Distributions
+on CPAN which require these should add them to their prerequisites. The
+core versions of these modules warnings will issue a deprecation warning.
 
-L<Perl::OSType> 1.002 has been added as a dual-life module.  It maps Perl
-operating system names (e.g. 'dragonfly' or 'MSWin32') to more generic types
-with standardized names (e.g.  "Unix" or "Windows").  It has been refactored
-out of Module::Build and ExtUtils::CBuilder and consolidates such mappings into
-a single location for easier maintenance.
+If you ship a packaged version of Perl, either alone or as part of a
+larger system, then you should carefully consider the repercussions of
+core module deprecations. You may want to consider shipping your default
+build of Perl with packages for some or all deprecated modules which
+install into C<vendor> or C<site> perl library directories. This will
+inhibit the deprecation warnings.
 
-=back
+Alternatively, you may want to consider patching F<lib/deprecate.pm>
+to provide deprecation warnings specific to your packaging system
+or distribution of Perl, consistent with how your packaging system
+or distribution manages a staged transition from a release where the
+installation of a single package provides the given functionality, to
+a later release where the system administrator needs to know to install
+multiple packages to get that same functionality.
 
-=head2 Updated Modules and Pragmata
+You can silence these deprecation warnings by installing the modules
+in question from CPAN.  To install the latest version of all of them,
+just install C<Task::Deprecations::5_14>.
 
-=over 4
+=over
 
-=item *
+=item L<Devel::DProf>
 
-C<Archive::Extract> has been upgraded from version 0.46 to 0.48
+We strongly recommend that you install and used L<Devel::NYTProf> in
+preference, as it offers significantly improved profiling and reporting.
 
-=item *
+=back
 
-C<Archive::Tar> has been upgraded from version 1.74 to 1.76
+=back
 
-=item *
+=head2 User-defined case-mapping
 
-C<CGI> has been upgraded from version 3.50 to 3.51
+This feature is being deprecated due to its many issues, as documented in
+L<perlunicode/User-Defined Case Mappings (for serious hackers only)>.
+It is planned to remove this feature in Perl 5.16.  A CPAN module
+providing improved functionality is being prepared for release by the
+time 5.14 is.
 
-Further improvements have been made to guard against newline injections
-in headers.
+=head1 Modules and Pragmata
 
-=item *
+=head2 New Modules and Pragmata
 
-C<Compress::Raw::Bzip2> has been upgraded from version 2.031 to 2.033
+=over 4
 
 =item *
 
-C<Compress::Raw::Zlib> has been upgraded from version 2.030 to 2.033
+C<CPAN::Meta> version 2.110440 has been added as a dual-life module. It
+provides a standard library to read, interpret and write CPAN distribution
+metadata files (e.g. META.json and META.yml) which describes a
+distribution, its contents, and the requirements for building it and
+installing it. The latest CPAN distribution metadata specification is
+included as C<CPAN::Meta::Spec> and notes on changes in the specification
+over time are given in C<CPAN::Meta::History>.
 
 =item *
 
-C<CPAN> has been upgraded from version 1.94_62 to 1.94_63
+C<Version::Requirements> version 0.101020 has been added as a dual-life
+module.  It provides a standard library to model and manipulates module
+prerequisites and version constraints as defined in the L<CPAN::Meta::Spec>.
 
-=item *
+=back
+
+=head2 Updated Modules and Pragmata
 
-C<CPANPLUS> has been upgraded from version 0.9010 to 0.9011
+=over 4
 
 =item *
 
-C<CPANPLUS::Dist::Build> has been upgraded from version 0.50 to 0.52
+C<B> has been upgraded from version 1.27 to 1.28.
 
 =item *
 
-C<DB_File> has been upgraded from version 1.820 to 1.821
+C<Carp> has been upgraded from version 1.19 to 1.20.
+
+[perl #82854] It now avoids using regular expressions that cause perl to
+load its Unicode tables, in order to avoid the 'BEGIN not safe after
+errors' error that will ensue if there has been a syntax error.
 
 =item *
 
-C<Encode> has been upgraded from version 2.40 to 2.42.
-Now, all 66 Unicode non-characters are treated the same way U+FFFF has
-always been treated; if it was disallowed, all 66 are disallowed; if it
-warned, all 66 warn.
+C<CGI> has been upgraded from version 3.51 to 3.52
 
 =item *
 
-C<File::Fetch> has been upgraded from version 0.28 to 0.32
+C<CPAN> has been upgraded from version 1.94_64 to 1.94_65
+
+Includes support for META.json and MYMETA.json.
 
 =item *
 
-C<IO::Compress> has been upgraded from version 2.030 to 2.033
+C<CPANPLUS> has been upgraded from version 0.9011 to 0.9101
+
+Includes support for META.json and MYMETA.json and a change to
+using Digest::SHA for CPAN checksums.
 
 =item *
 
-C<IPC::Cmd> has been upgraded from version 0.66 to 0.68
+C<deprecate> has been upgraded from version 0.01 to 0.02.
 
 =item *
 
-C<Log::Message> has been upgraded from version 0.02 to 0.04
+C<diagnostics> has been upgraded from version 1.21 to 1.22.
+
+It now renders pod links slightly better, and has been taught to find
+descriptions for messages that share their descriptions with other
+messages.
 
 =item *
 
-C<Log::Message::Simple> has been upgraded from version 0.06 to 0.08
+C<Devel::DProf> has been upgraded from version 20080331.00 to 20110217.00.
 
-=item *
+Merely loading C<Devel::DProf> now no longer triggers profiling to start.
+C<use Devel::DProf> and C<perl -d:DProf ...> still behave as before and start
+the profiler.
 
-C<Module::Load::Conditional> has been upgraded from version 0.38 to 0.40
+NOTE: C<Devel::DProf> is deprecated and will be removed from a future
+version of Perl. We strongly recommend that you install and use
+L<Devel::NYTProf> instead, as it offers significantly improved
+profiling and reporting.
 
 =item *
 
-C<Object::Accessor> has been upgraded from version 0.36 to 0.38
+C<DynaLoader> has been upgraded from version 1.12 to 1.13.
+
+[perl #84358] It no longer inherits from AutoLoader; hence it no longer
+produces weird error messages for unsuccessful method calls on classes that
+inherit from DynaLoader.
 
 =item *
 
-C<Params::Check> has been upgraded from version 0.26 to 0.28
+C<IO::Select> has been upgraded from version 1.17 to 1.18.
+
+It now allows IO::Handle objects (and objects in derived classes) to be
+removed from an IO::Select set even if the underlying file descriptor is
+closed or invalid.
 
 =item *
 
-C<Pod::LaTeX> has been upgraded from version 0.58 to 0.59
+C<IPC::Cmd> has been upgraded from version 0.68 to 0.70
 
 =item *
 
-C<Term::UI> has been upgraded from version 0.20 to 0.24
+C<HTTP::Tiny> has been upgraded from version 0.009 to 0.010
 
 =item *
 
-C<Thread::Queue> has been upgraded from version 2.11 to 2.12.
+C<Math::BigInt> has been upgraded from version 1.99_04 to 1.992.
 
 =item *
 
-C<Thread::Semaphore> has been upgraded from version 2.11 to 2.12.
+C<Module::Build> has been upgraded from version 0.3607 to 0.37_05.
 
-=item *
+A notable change is the deprecation of several modules.
+Module::Build::Version has been deprecated and Module::Build now relies
+directly upon L<version>.  Module::Build::ModuleInfo has been deprecated in
+favor of a standalone copy of it called L<Module::Metadata>.
+Module::Build::YAML has been deprecated in favor of L<CPAN::Meta::YAML>.
 
-C<threads> has been upgraded from version 1.81_03 to 1.82
+Module::Build now also generates META.json and MYMETA.json files
+in accordance with version 2 of the CPAN distribution metadata specification,
+L<CPAN::Meta::Spec>.  The older format META.yml and MYMETA.yml files are
+still generated, as well.
 
 =item *
 
-C<threads::shared> has been upgraded from version 1.35 to 1.36
+C<Module::Load::Conditional> has been upgraded from version 0.40 to 0.44
 
 =item *
 
-C<Time::Local> has been upgraded from version 1.1901_01 to 1.2000.
+C<Module::Metadata> has been upgraded from version 1.000003 to 1.000004.
 
 =item *
 
-C<Unicode::Normalize> has been upgraded from version 1.07 to 1.10
+C<overload> has been upgraded from version 1.12 to 1.13.
+
+The documentation has greatly improved. See L</Documentation> below.
 
 =item *
 
-C<version> has been upgraded from 0.86 to 0.88.
+C<Parse::CPAN::Meta> has been upgraded from version 1.40 to 1.4401.
+
+The latest Parse::CPAN::Meta can now read YAML or JSON files using
+L<CPAN::Meta::YAML> and L<JSON::PP>, which are now part of the Perl core.
 
 =item *
 
-C<Win32> has been upgraded from version 0.41 to 0.44.
+C<re> has been upgraded from version 0.16 to 0.17.
 
-=back
+It now supports the double-a flag: C<use re '/aa';>
 
-=head2 Removed Modules and Pragmata
+The C<regmust> function used to crash when called on a regular expression
+belonging to a pluggable engine. Now it has been disabled for those.
 
-=over 4
+C<regmust> no longer leaks memory.
 
 =item *
 
-XXX
+C<Term::UI> has been upgraded from version 0.24 to 0.26
 
-=back
+=item *
 
-=head1 Documentation
+C<Unicode::Collate> has been upgraded from version 0.68 to 0.72
 
-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>.
+This also sees the switch from using the pure-perl version of this
+module to the XS version.`
 
-=head2 New Documentation
+=item *
 
-XXX Changes which create B<new> files in F<pod/> go here.
+C<VMS::DCLsym> has been upgraded from version 1.04 to 1.05.
 
-=head3 L<XXX>
+Two bugs have been fixed [perl #84086]:
 
-XXX Description of the purpose of the new file here
+The symbol table name was lost when tying a hash, due to a thinko in
+C<TIEHASH>. The result was that all tied hashes interacted with the
+local symbol table.
 
-=head2 Changes to Existing Documentation
+Unless a symbol table name had been explicitly specified in the call
+to the constructor, querying the special key ':LOCAL' failed to
+identify objects connected to the local symbol table.
 
-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<perlfunc>
+Added new function C<Unicode::UCD::num()>.  This function will return the
+numeric value of the string passed it; C<undef> if the string in its
+entirety has no safe numeric value.
 
-=over 4
+To be safe, a string must be a single character which has a numeric
+value, or consist entirely of characters that match \d, coming from the
+same Unicode block of digits.  Thus, a mix of  Bengali and Western
+digits would be considered unsafe, as well as a mix of half- and
+full-width digits, but strings consisting entirely of Devanagari digits
+or of "Mathematical Bold" digits would would be safe.
 
 =item *
 
-It has now been documented that C<ord> returns 0 for an empty string.
+C<CPAN> has been upgraded from version1.94_63 to 1.94_64.
 
 =back
 
-=head1 Diagnostics
-
-The following additions or changes have been made to diagnostic output,
-including warnings and fatal error messages.  For the complete list of
-diagnostic messages, see L<perldiag>.
-
-XXX New or changed warnings emitted by the core's C<C> code go here. Also
-include any changes in L<perldiag> that reconcile it to the C<C> code.
-
-[ Within each section, list entries as a =item entry ]
+=head1 Documentation
 
-=head2 New Diagnostics
+=head2 Changes to Existing Documentation
 
-XXX Newly added diagnostic messages go here
+=head3 L<overload>
 
 =over 4
 
 =item *
 
-Performing an operation requiring Unicode semantics (such as case-folding)
-on a Unicode surrogate or a non-Unicode character now triggers a warning:
-'Operation "%s" returns its argument for ...'.
+L<overload>'s documentation has practically undergone a rewrite. It
+is now much more straightforward and clear.
 
 =back
 
-=head2 Changes to Existing Diagnostics
-
-XXX Changes (i.e. rewording) of diagnostic messages go here
+=head3 L<perlhack> and perlrepository
 
 =over 4
 
 =item *
 
-Previously, if none of the C<gethostbyaddr>, C<gethostbyname> and
-C<gethostent> functions were implemented on a given platform, they would
-all die with the message 'Unsupported socket function "gethostent" called',
-with analogous messages for C<getnet*> and C<getserv*>. This has been
-corrected.
-
-=back
+The L<perlhack> and perlrepository documents have been heavily edited and
+split up into several new documents.
 
-=head1 Utility Changes
+The L<perlhack> document is now much shorter, and focuses on the Perl 5
+development process and submitting patches to Perl. The technical content has
+been moved to several new documents, L<perlsource>, L<perlinterp>,
+L<perlhacktut>, and L<perlhacktips>. This technical content has only been
+lightly edited.
 
-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>.
+The perlrepository document has been renamed to L<perlgit>. This new document
+is just a how-to on using git with the Perl source code. Any other content
+that used to be in perlrepository has been moved to perlhack.
 
-[ 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. ]
+=back
 
-=head3 L<perlbug>
+=head3 L<perlfunc>
 
 =over 4
 
 =item *
 
-C<perlbug> did not previously generate a From: header, potentially
-resulting in dropped mail. Now it does include that header.
+The documentation for the C<map> function now contains more examples,
+see B<perldoc -f map> (f947627)
 
 =back
 
-=head1 Configuration and Compilation
-
-XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
-go here.  Any other changes to the Perl build process should be listed here.
-However, any platform-specific changes should be listed in the
-L</Platform Support> section, instead.
-
-[ List changes as a =item entry ].
+=head3 L<perlfaq4>
 
 =over 4
 
 =item *
 
-XXX
+Examples in L<perlfaq4> have been updated to show the use of
+L<Time::Piece>. (9243591)
 
 =back
 
-=head1 Testing
-
-XXX Any significant changes to the testing of a freshly built perl should be
-listed here.  Changes which create B<new> files in F<t/> go here as do any
-large changes to the testing harness (e.g. when parallel testing was added).
-Changes to existing files in F<t/> aren't worth summarising, although the bugs
-that they represent may be covered elsewhere.
-
-[ List each test improvement as a =item entry ]
+=head3 Miscellaneous
 
 =over 4
 
 =item *
 
-A new test script, C<t/porting/filenames.t>, makes sure that filenames and
-paths are reasonably portable.
+Many POD related RT bugs and other issues which are too numerous to
+enumerate have been solved by Michael Stevens.
 
 =back
 
-=head1 Platform Support
-
-XXX Any changes to platform support should be listed in the sections below.
-
-[ Within the sections, list each platform as a =item entry with specific
-changes as paragraphs below it. ]
+=head1 Diagnostics
 
-=head2 New Platforms
+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 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.
+=head2 New Diagnostics
 
 =over 4
 
-=item XXX-some-platform
-
-XXX
-
-=back
-
-=head2 Discontinued Platforms
-
-XXX List any platforms that this version of perl no longer compiles on.
-
-=over 4
+=item "\b{" is deprecated; use "\b\{" instead
 
-=item Apollo DomainOS
+=item "\B{" is deprecated; use "\B\{" instead
 
-The last vestiges of support for this platform have been excised from the
-Perl distribution. It was officially discontinued in version 5.12.0. It had
-not worked for years before that.
+Use of an unescaped "{" immediately following a C<\b> or C<\B> is now
+deprecated so as to reserve its use for Perl itself in a future release.
 
-=back
+=item regcomp: Add warning if \p is used under locale. (fb2e24c)
 
-=head2 Platform-Specific Notes
+C<\p> implies Unicode matching rules, which are likely going to be
+different than the locale's.
 
-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 panic: gp_free failed to free glob pointer - something is repeatedly re-creating entries
 
-=over 4
+This new error is triggered if a destructor called on an object in a
+typeglob that is being freed creates a new typeglob entry containing an
+object with a destructor that creates a new entry containing an object....
 
-=item Solaris
+=item refcnt: fd %d%s
 
-DTrace is now supported on Solaris. There used to be build failures, but
-these have been fixed
-L<[perl #73630]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=73630>.
+This new error only occurs if a internal consistency check fails when a
+pipe is about to be closed.
 
 =back
 
-=head1 Internal Changes
-
-XXX Changes which affect the interface available to C<XS> code go here.
-Other significant internal changes for future core maintainers should
-be noted as well.
-
-[ List each test improvement as a =item entry ]
+=head2 Changes to Existing Diagnostics
 
 =over 4
 
 =item *
 
-The opcode bodies for C<chop> and C<chomp> and for C<schop> and C<schomp> have
-been merged. The implementation functions C<Perl_do_chop()> and
-C<Perl_do_chomp()>, never part of the public API, have been merged and moved to
-a static function in F<pp.c>. This shrinks the perl binary slightly, and should
-not affect any code outside the core (unless it is relying on the order of side
-effects when C<chomp> is passed a I<list> of values).
+The warning message about regex unrecognized escapes passed through is
+changed to include any literal '{' following the 2-char escape.  e.g.,
+"\q{" will include the { in the message as part of the escape
+(216bfc0).
 
 =item *
 
-Some of the flags parameters to the uvuni_to_utf8_flags() and
-utf8n_to_uvuni() have changed.  This is a result of Perl now allowing
-internal storage and manipulation of code points that are problematic
-in some situations.  Hence, the default actions for these functions has
-been complemented to allow these code points.  The new flags are
-documented in L<perlapi>.  Code that requires the problematic code
-points to be rejected needs to change to use these flags.  Some flag
-names are retained for backward source compatibility, though they do
-nothing, as they are now the default.  However the flags
-C<UNICODE_ALLOW_FDD0>, C<UNICODE_ALLOW_FFFF>, C<UNICODE_ILLEGAL>, and
-C<UNICODE_IS_ILLEGAL> have been removed, as they stem from a
-fundamentally broken model of how the Unicode non-character code points
-should be handled, which is now described in
-L<perlunicode/Non-character code points>.  See also L</Selected Bug Fixes>.
+C<binmode $fh, ':scalar'> no longer warns (8250589)
 
-=item *
-
-Certain shared flags in the C<pmop.op_pmflags> and C<regexp.extflags>
-structures have been removed.  These are: C<Rxf_Pmf_LOCALE>,
-C<Rxf_Pmf_UNICODE>, and C<PMf_LOCALE>.  Instead there are encodes and
-three static in-line functions for accessing the information:
-C<get_regex_charset()>, C<set_regex_charset()>, and C<get_regex_charset_name()>,
-which are defined in the places where the orginal flags were.
-
-=item *
+Perl will now no longer produce this warning:
 
-A new option has been added to C<pv_escape> to dump all characters above
-ASCII in hexadecimal. Before, one could get all characters as hexadecimal
-or the Latin1 non-ASCII as octal
+    $ perl -we 'open my $f, ">", \my $x; binmode $f, "scalar"'
+    Use of uninitialized value in binmode at -e line 1.
 
 =back
 
-=head1 Selected Bug Fixes
-
-XXX Important bug fixes in the core language are summarised here.
-Bug fixes in files in F<ext/> and F<lib/> are best summarised in
-L</Modules and Pragmata>.
+=head1 Utility Changes
 
-[ List each fix as a =item entry ]
+=head3 L<perlbug>
 
 =over 4
 
 =item *
 
-The handling of Unicode non-characters has changed.
-Previously they were mostly considered illegal, except that only one of
-the 66 of them was known about in places.  The Unicode standard
-considers them legal, but forbids the "open interchange" of them.
-This is part of the change to allow the internal use of any code point
-(see L</Core Enhancements>).  Together, these changes resolve
-L<# 38722|https://rt.perl.org/rt3/Ticket/Display.html?id=38722>,
-L<# 51918|http://rt.perl.org/rt3/Ticket/Display.html?id=51918>,
-L<# 51936|http://rt.perl.org/rt3/Ticket/Display.html?id=51936>,
-L<# 63446|http://rt.perl.org/rt3/Ticket/Display.html?id=63446>
+[perl #82996] Use the user's from address as return-path in perlbug
 
-=item *
+Many systems these days don't have a valid Internet domain name and
+perlbug@perl.org does not accept email with a return-path that does
+not resolve. Therefore pass the user's address to sendmail so it's
+less likely to get stuck in a mail queue somewhere. (019cfd2)
 
-Sometimes magic (ties, tainted, etc.) attached to variables could cause an
-object to last longer than it should, or cause a crash if a tied variable
-were freed from within a tie method. These have been fixed
-L<[perl #81230]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=81230>.
+=back
 
-=item *
+=head1 Configuration and Compilation
 
-Most I/O functions were not warning for unopened handles unless the
-'closed' and 'unopened' warnings categories were both enabled. Now only
-C<use warnings 'unopened'> is necessary to trigger these warnings (as was
-always meant to be the case.
+=over 4
 
 =item *
 
-C<< <expr> >> always respects overloading now if the expression is
-overloaded.
-
-Due to the way that '<> as glob' was parsed differently from
-'<> as filehandle' from 5.6 onwards, something like C<< <$foo[0]> >> did
-not handle overloading, even if C<$foo[0]> was an overloaded object. This
-was contrary to the documentation for overload, and meant that C<< <> >>
-could not be used as a general overloaded iterator operator.
-
-=item *
+make reg_eval_scope.t TODOs consistently fail (daaf7ac)
 
-Destructors on objects were not called during global destruction on objects
-that were not referenced by any scalars. This could happen if an array
-element were blessed (e.g., C<bless \$a[0]>) or if a closure referenced a
-blessed variable (C<bless \my @a; sub foo { @a }>).
+Some of the TODO tests in reg_eval_scope.t spuriously passed under
+non-threaded builds. Make the tests harder so they always fail.
 
-Now there is an extra pass during global destruction to fire destructors on
-any objects that might be left after the usual passes that check for
-objects referenced by scalars
-L<[perl #36347]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=36347>.
+Since one of the key bugs in (?{..}) is the trashing of the parent pad,
+add some extra lexical vars to the parent scope and check they're still
+there at the end.
 
 =item *
 
-A long standing bug has now been fully fixed (partial fixes came in
-earlier releases), in which some Latin-1 non-ASCII characters on
-ASCII-platforms would match both a character class and its complement,
-such as U+00E2 being both in C<\w> and C<\W>, depending on the
-UTF-8-ness of the regular expression pattern and target string.
-Fixing this did expose some bugs in various modules and tests that
-relied on the previous behavior of C<[[:alpha:]]> not ever matching
-U+00FF, "LATIN SMALL LETTER Y WITH DIAERESIS", even when it should, in
-Unicode mode; now it does match when appropriate.
-L<[perl #60156]|http://rt.perl.org/rt3/Ticket/Display.html?id=60156>.
+Stop EU::CBuilder's tests from failing in parallel (cbf59d5)
 
-=back
-
-=head1 Known Problems
+It used to use the same paths for temporary files in all tests. This
+blew up randomly when the tests were run in parallel.
 
-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, unless
-they were specific to a particular platform (see below).
-
-This is a list of some significant unfixed bugs, which are regressions
-from either 5.XXX.XXX or 5.XXX.XXX.
+=back
 
-[ List each fix as a =item entry ]
+=head1 Testing
 
 =over 4
 
 =item *
 
-The fix for [perl #81230] causes test failures for C<Tk> version 804.029.
-This is still being investigated.
-
-=back
-
-=head1 Obituary
+F<porting/FindExt.t> now skips all tests on a static (-Uusedl) build
+of perl.
 
-XXX If any significant core contributor has died, we've added a short obituary
-here.
-
-=head1 Acknowledgements
-
-XXX The list of people to thank goes here.
-
-=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 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
-
-=for later
-
-Below, you'll find a cut-down version of the git log from 5.13.8 to 1b9043bb.
-Jesse went through and took a first pass at cutting out non-changelog items. He may have been over-(or under-)zealous.
-
-It hasn't yet been deduped with the entries that _are_ in the perldelta.
-
-
-    Major spell-checking pass throughout the core
-
-    Remove references to compat3.sym and interp.sym, deleted over 10 years ago.
-
-    Remove Mac OS classic code from numerous places throughout the core
-
-commit 7fe50b8b8a4dc38fc341e3b403545aaca937f50e
-Author: Leon Timmermans <fawaka@gmail.com>
-Date:   Tue Jan 18 16:40:07 2011 +0100
-
-    Also unblock signal handlers throwing an exception
-
-    Also handle and test the edge case of a signal handler throwing an
-    exception
-
-
-
-
-Numberous POD warnings fixed
-
-
-
-    Update Unicode-Collate to CPAN version 0.71
-
-
-internals
-
-Author: Nicholas Clark <nick@ccl4.org>
-Date:   Tue Jan 18 16:14:43 2011 +0000
-
-    Remove Mac OS classic code from scripts in utils/
-
-
-    Convert DosGlob.t to Test::More.
-
-commit d6dc8a6dc95226ddff7719cd1e0bd053c4e5725e
-Author: Nicholas Clark <nick@ccl4.org>
-Date:   Tue Jan 18 13:08:11 2011 +0000
-
-    Remove Mac OS Classic docs from DirHandle and File::{Copy,DosGlob,Find}
-
-    The documentation for the different behaviour on Mac OS Classic was not
-    removed when the relevant code was removed in 862f843bac3434c2. That commit
-    also remove all callers to several Mac OS classic support functions, but not
-    the functions themselves. Rectify this.
+=item *
 
-commit 8254cbf193c939338449097a80163197fc755150
-Author: Nicholas Clark <nick@ccl4.org>
-Date:   Tue Jan 18 11:10:41 2011 +0000
+F<porting/FindExt.t> now passes on non-Win32 platforms when some
+extensions are built statically.
 
-    Build perltoc.pod with pragmata sorted by name.
+=back
 
-    Previously they were actually sorted by full pathname, which isn't logical.
-    I presume that this is an artefact of all pragmata being in lib/ when
-    pod/buildtoc was originally written.
+=head1 Platform Support
 
-commit 1d45ec279e4e105512a2803e3d0bd974a151a0f6
-Author: Father Chrysostomos <sprout@cpan.org>
-Date:   Mon Jan 17 22:32:52 2011 -0800
+=head2 Platform-Specific Notes
 
-    perlcall: Fixes for various grammatical errors
+=over 4
 
-commit faaf68361923e4bb95d1eb919bc724a0dcc5a4ce
-Author: Leon Timmermans <fawaka@gmail.com>
-Date:   Mon Jan 17 17:59:33 2011 +0100
+=item Windows
 
-    Clarify limitation in safe signals.
+=over 4
 
-commit 0c1bf4c7d433bb0ad80bfe5511b1301db32b7b95
-Author: Leon Timmermans <fawaka@gmail.com>
-Date:   Mon Jan 17 16:29:11 2011 +0100
+=item *
 
-    Added tests for conditional unblocking
+The C<test-prep> build target now depends on F<pod/perltoc.pod> to allow the
+F<t/porting/buildtoc.t> test to run successfully.
 
-commit 555344425f04e96a72e4d29eab96b34bff8f96ae
-Author: Leon Timmermans <fawaka@gmail.com>
-Date:   Thu Jan 13 18:30:29 2011 +0100
+=back
 
-    Conditionally unblock after signal handler[#82040]
+=item MirBSD
 
-    Only unblock signal after a safe-signal handler is executed if that signal was
-    also unblocked before the handler.
-commit 435aa301127ed481169903cb35187bde1ea44928
-Author: David Golden <dagolden@cpan.org>
-Date:   Mon Jan 17 20:39:14 2011 -0500
+=over 4
 
-    Update HTTP::Tiny to CPAN version 0.009
+=item *
 
-commit 78cd53afbb1923bf0a68f361040ad8fe93a7d0d5
-Author: David Mitchell <davem@iabyn.com>
-Date:   Tue Jan 18 00:46:30 2011 +0000
+[perl #82988] Skip hanging taint.t test on MirBSD 10 (1fb83d0)
 
-    vastly speed up t/porting/diag.t
+Skip a hanging test under MirBSD that was already being skipped under
+OpenBSD.
 
-    This used to take about 3 minutes of CPU. Reduce this to around
-    6 seconds (!!) by coalescing and pre-compiling various patterns
-    that get applied to nearly every line of every source file.
+=item *
 
-commit e66820012d29519f903709f005e56a2c334ae183
-Author: Tony Cook <tony@develop-help.com>
-Date:   Mon Jan 17 19:22:08 2011 +1100
+Previously if you build perl with a shared libperl.so on MirBSD (the
+default config), it will work up to the installation; however, once
+installed, it will be unable to find libperl. Treat path handling
+like in the other BSD dialects.
 
-    test_prep now depends on the pods needed for porting/buildtoc.t
+=back
 
-    In the other makefiles test_prep (or test-prep) depends on all, so
-    they shouldn't need updating.
+=back
 
+=head1 Internal Changes
 
-commit a52237f3a547cdefddd4c4be6224bfdf67c84263
-Author: David Golden <dagolden@cpan.org>
-Date:   Sun Jan 16 21:32:21 2011 -0500
+=over 4
 
-    Update CPAN to CPAN version 1.94_63
+=item *
 
-commit a3ab329f3fc9494e700f51c38cef42021c130b6e
-Author: David Golden <dagolden@cpan.org>
-Date:   Sun Jan 16 20:57:02 2011 -0500
+Fix harmless invalid read in Perl_re_compile() (f6d9469)
 
-    Add HTTP::Tiny as a dual-life core module
+[perl #2460] described a case where electric fence reported an invalid
+read. This could be reproduced under valgrind with blead and -e'/x/',
+but only on a non-debugging build.
 
-    HTTP::Tiny has been added as a dual-life module.  It is a very
-    small, simple HTTP/1.1 client designed for simple GET requests and file
-    mirroring.  It has has been added to enable CPAN.pm and CPANPLUS to
-    "bootstrap" HTTP access to CPAN using pure Perl without relying on external
-    binaries like F<curl> or F<wget>.
+This was because it was checking for certain pairs of nodes (e.g. BOL + END)
+and wasn't allowing for EXACT nodes, which have the string at the next
+node position when using a naive NEXTOPER(first). In the non-debugging
+build, the nodes aren't initialised to zero, and a 1-char EXACT node isn't
+long enough to spill into the type field of the "next node".
 
-commit 211cc5012284f4bd900fcaa630adbcac69ca6112
-Author: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
-Date:   Sun Jan 16 23:23:03 2011 +0000
+Fix this by only using NEXTOPER(first) when we know the first node is
+kosher.
 
-    Update Unicode-Collate to CPAN version 0.70 and enable XS version
+=item *
 
-tools
+Break out the generated function Perl_keywords() into F<keywords.c>, a new file. (26ea9e1)
 
-    Significant updates to buildtoc
+As it and Perl_yylex() both need FEATURE_IS_ENABLED, feature_is_enabled() is
+no longer static, and the two macro definitions move from toke.c to perl.h
 
-    Update Unicode-Normalize to CPAN version 1.10
+Previously, one had to cut and paste the output of perl_keywords.pl into the
+middle of toke.c, and it was not clear that it was generated code.
 
-SECURITY
+=item *
 
-    restrict \p{IsUserDefined} to In\w+ and In\w+
+A lot of tests have been ported from Test to Test::More, e.g. in
+3842ad6.
 
-    In L<perlunicode/"User-Defined Character Properties">, it says you can
-    create custom properties by defining subroutines whose names begin with
-    "In" or "Is". However, perl doesn't actually enforce that naming
-    restriction, so \p{foo::bar} will call foo::Bar() if it exists.
+=item *
 
-    This commit finally enforces this convention. Note that this broke a
-    number of existing tests for properties, since they didn't always use an
-    Is/In prefix.
+Increase default PerlIO buffer size. (b83080d)
 
-TESTING
+The previous default size of a PerlIO buffer (4096 bytes) has been increased
+to the larger of 8192 bytes and your local BUFSIZ.  Benchmarks show that doubling
+this decade-old default increases read and write performance in the neighborhood
+of 25% to 50% when using the default layers of perlio on top of unix.  To choose
+a non-default size, such as to get back the old value or to obtain and even
+larger value, configure with:
 
-    test that perl.pod, pod.lst, MANIFEST and the file system are consistent
+     ./Configure -Accflags=-DPERLIOBUF_DEFAULT_BUFSIZ=N
 
-commit 680818c0361b180bb6f09d4bb11c4d5cd467fe62
-Author: Nicholas Clark <nick@ccl4.org>
-Date:   Thu Jan 13 16:24:52 2011 +0000
+where N is the desired size in bytes; it should probably be a multiple of
+your page size.
 
-    ithread_create() was relying on the stack not moving. Fix this.
+=back
 
-    4cf5eae5e58faebb changed S_ithread_create() to avoid creating an AV, by
-    passing the thread creation arguments as pointers to a block of memory
-    holding SVs. Unfortunately, this inadvertently introduced a subtle bug,
-    because the block of memory is on the Perl stack, which can move as a side
-    effect of being reallocated to extend it. Hence pass in the offset on the
-    stack instead, read the current value of the relevant interpreter's stack
-    at the point of access, and copy all the SVs away before making any further
-    calls which might cause reallocation.
+=head1 Selected Bug Fixes
 
+=over 4
 
+=item *
 
-commit 7627e6d0fe772ac90fce9e03fea273109521e261
-Author: Nicholas Clark <nick@ccl4.org>
-Date:   Sat Jan 8 15:56:22 2011 +0000
+A Unicode C<\p{}> property match in a regular expression pattern will
+now force Unicode rules for the rest of the regular expression
 
-    Generate "Unsupported socket function" stubs using PL_ppaddr.
+=item *
 
-    Instead of having each socket op conditionally compile as either the
-    implementation or a DIE() depending on #HAS_SOCKET
+[perl #38456] binmode FH, ":crlf" only modifies top crlf layer (7826b36)
 
-    1: remove the conditional code from the ops themselves
-    2: only compile the ops if HAS_SOCKET is defined
-    3: general conditional code for the intialisation of PL_ppaddr - as appropriate
-       either the ops, or Perl_unimplemented_op
-    4: Amend Perl_unimplemented_op to generate the appropriate DIE() for socket
-       ops (ie not the "panic"... message)
+When pushed on top of the stack, crlf will no longer enable crlf layers
+lower in the stack. This will prevent unexpected results.
 
-    Whilst this complicates the support code in regen/opcode.pl, it's already a
-    net saving of 5 lines in the C code.
+=item *
 
-commit 897d398936dd2fc088a265fba2a7b62fa97ed458
-Author: Nicholas Clark <nick@ccl4.org>
-Date:   Sun Jan 9 10:54:58 2011 +0000
+Fix 'raw' layer for RT #80764 (ecfd064)
 
-    Generate pp_* prototypes in pp_proto.h, and remove pp.sym
+Made a ':raw' open do what it advertises to do (first open the file,
+then binmode it), instead of leaving off the top layer.
 
-    Eliminate the #define pp_foo Perl_pp_foo(pTHX) macros, and update the 13
-    locations that relied on them.
+=item *
 
-    regen/opcode.pl now generates prototypes for the PP functions directly, into
-    pp_proto.h. It no longer writes pp.sym, and regen/embed.pl no longer reads
-    this, removing the only ordering dependency in the regen scripts. opcode.pl
-    is now responsible for prototypes for pp_* functions. (embed.pl remains
-    responsible for ck_* functions, reading from regen/opcodes)
+Use PerlIOBase_open for pop, utf8 and bytes layers (c0888ac)
 
-TESTING
-    add test for split without a pattern
+Three of Perl's builtin PerlIO layers (C<:pop>, C<:utf8> and
+C<:bytes>) didn't allow stacking when opening a file. For example
+this:
 
-    Add some while tests, about the context of the last statement in a block and about reinitializaiton of lexical variables.
+    open FH, '>:pop:perlio', 'some.file' or die $!;
 
-    modernise t/cmd/while.t
+Would throw an error: "Invalid argument". This has been fixed in this
+release.
 
-    Add t/base/while.t testing the basic of a while loop with minimal dependencies.  Change t/cmd/while.t into a non-base test using "test.pl".
+=item *
 
-commit b86b68b4eefa1069dabc8ea0401d712b24a67857
-Author: Jesse Vincent <jesse@bestpractical.com>
-Date:   Sat Jan 8 00:14:29 2011 +0800
+An issue present since 5.13.1, where s/A/B/ with A utf8 and B
+non-utf8, could cause corruption or segfaults has been
+fixed. (c95ca9b)
 
-    Update the policy on doc patches to maint
+=item *
 
+String evals will no longer fail after 2 billion scopes have been
+compiled (d1bfb64, 2df5bdd, 0d311cd and 6012dc8)
 
-commit 0b5e625bc99f5cb78697faf03b297b6cacadf60b
-Author: Reini Urban <rurban@x-ray.at>
-Date:   Tue Sep 14 18:04:22 2010 +0200
+=item *
 
-    build man pages on cygwin too
+[perl #81750] When strict 'refs' mode is off,
+C<%{...}> in rvalue context returns C<undef> if
+its argument is undefined. An optimisation introduced in perl 5.12.0 to
+make C<keys %{...}> faster when used as a boolean did not take this into
+account, causing C<keys %{+undef}> (and C<keys %$foo> when C<$foo> is
+undefined) to be an error, which it should only be in strict mode.
 
-commit 172830635ea7813c85e51e4ae2b4bed56ddbab83
-Author: Reini Urban <rurban@x-ray.at>
-Date:   Tue Sep 14 17:54:15 2010 +0200
+=item *
 
-    Improve cygwin rebase behaviour
+[perl #83194] Combining the vector (%v) flag and dynamic precision would
+cause sprintf to confuse the order of its arguments, making it treat the
+string as the precision and vice versa.
 
-    If a dll is updated on cygwin reuse the old imagebase address.
-    This solves most rebase errors, esp when updating on core dll's.
-    See http://www.tishler.net/jason/software/rebase/rebase-2.4.2.README
+=item *
 
+[perl #77692] Sometimes the UTF8 length cache would not be reset on a value
+returned by substr, causing C<length(substr($uni_string,...))> to give
+wrong answers. With C<${^UTF8CACHE}> set to -1, it would produce a 'panic'
+error message, too.
 
-Platforms
+=item *
 
-commit cc7e77fd5a0ee9f1498e54dddf566117da62754b
-Author: Reini Urban <rurban@x-ray.at>
-Date:   Tue Sep 14 17:48:32 2010 +0200
+During the restoration of a localised typeglob on scope exit, any
+destructors called as a result would be able to see the typeglob in an
+inconsistent state, containing freed entries, which could result in a
+crash. This would affect code like this:
 
-    CYG14 Dynaloader without USEIMPORTLIB, and search cyg prefix
+  local *@;
+  eval { die bless [] }; # puts an object in $@
+  sub DESTROY {
+    local $@; # boom
+  }
 
-    part1: Support the standard cyg dll prefix, which is e.g. needed for FFI's.
-    Ctypes and C::DynaLib use DynaLoader to find dlls.
+Now the glob entries are cleared before any destructors are called. This
+also means that destructors can vivify entries in the glob. So perl tries
+again and, if the entries are re-created too many times, dies with a
+'panic: gp_free...' error message.
 
-    part2: With -DUSEIMPORTLIB DynaLoader symbols link against the prefixed
-    symbol names for the .dll.a importlib, but we need to link against the
-    symbols directly. We don't link Dynaloader against libperl.dll.a.
+=item *
 
-    Otherwise:
-    $ g++-4 -o cygperl5_13_4.dll --shared perlsrc.o cygwin.o  DynaLoader.o -ldl -lcrypt
-      Creating library file: libperl.dll.a
-      DynaLoader.o: In function `XS_DynaLoader_dl_undef_symbols':
-      ext/DynaLoader/DynaLoader.c:346: undefined reference to `__imp__PL_stack_sp'
-      ext/DynaLoader/DynaLoader.c:346: undefined reference to `__imp__PL_markstack_ptr'
-      ext/DynaLoader/DynaLoader.c:346: undefined reference to `__imp__PL_stack_base'
+[perl #78494] When pipes are shared between threads, the C<close> function
+(and any implicit close, such as on thread exit) no longer blocks.
 
-commit c0a149a90b8b6e1c18de7294ca974265fb559cf5
-Author: Reini Urban <rurban@x-ray.at>
-Date:   Tue Sep 14 18:06:38 2010 +0200
+=item *
 
-    Update cygwin hints
-    do not use usemymalloc (double size + slow)
-    remove deprecated libcygipc info
-    remove overlarge stack size
+Several contexts no longer allow a Unicode character to begin a word
+that should never begin words, for an example an accent that must follow
+another character previously could precede all other characters.
 
-commit 2831a86cee065b53b74fd19ddcc6a4257484646d
-Author: Zsbán Ambrus <ambrus@math.bme.hu>
-Date:   Sun Jan 2 20:25:55 2011 -0800
+=item *
 
-    [perl #81032] Overhaul Porting/epigraphs.pod
+Case insensitive matching in regular expressions compiled under C<use
+locale> now works much more sanely when the pattern and/or target string
+are encoded in UTF-8.  Previously, under these conditions the localeness
+was completely lost.  Now, code points above 255 are treated as Unicode,
+but code points between 0 and 255 are treated using the current locale
+rules, regardless of whether the pattern or string are encoded in UTF-8.
+The few case insensitive matches that cross the 255/256 boundary are not
+allowed.  For example, 0xFF does not caselessly match the character at
+0x178, LATIN CAPITAL LETTER Y WITH DIAERESIS, because 0xFF may not be
+LATIN SMALL LETTER Y in the current locale, and Perl has no way of
+knowing if that character even exists in the locale, much less what code
+point it is.
 
-    This patch makes multiple changes to Porting/epigraphs.pod and
-    pod/perlhist.pod.
+=back
 
-    For those that don't know, Porting/epigraphs.pod is a new document that
-    collects the quotes (chosen by Pumpkins) in perl release announcements.
+=head1 Acknowledgements
 
-    The changes are the following.
+Perl 5.13.10 represents approximately one month of development since
+Perl 5.13.9 and contains approximately 63000 lines of changes across
+609 files from 38 authors and committers:
 
-    1. Add a link pointing to each release announcement in the mailing
-    list archives.  These are from ysth's list, the source from which
-    Porting/epigraphs.pod was originally compiled, but they weren't in
-    Porting/epigraphs.pod so far.
-    2. Reorder Porting/epigraphs.pod chronologically, because I believe
-    that makes more sense -- pod/perlhist.pod is still sorted by version numbers.
-    3. Incidentally, some missing releases are added to pod/perlhist.pod too.
-    4. Fix a mistake where Porting/epigraphs.pod gives the wrong version number.
-    5. Add some epigraphs that appear in ysth's list but not in
-    Porting/epigraphs.pod.
-    6. I did some research in perl history before the part that ysth's list
-    covers, and added older perl announcements I found.  This work is not
-    complete: I stopped somewhere in 2000.
+Abigail, Alexander Hartmaier, brian d foy, Charles Bailey, Chip
+Salzenberg, Chris 'BinGOs' Williams, Craig A. Berry, Curtis Jewell,
+Dave Rolsky, David Golden, David Leadbeater, David Mitchell, David
+Wheeler, Father Chrysostomos, Florian Ragwitz, Franz Fasching, George
+Greer, H.Merijn Brand, Hongwen Qiu, Hugo van der Sanden, Jay Hannah,
+Jesse Vincent, Karl Williamson, Larwan Berke, Leon Timmermans, Michael
+Breen, Michael Stevens, Nicholas Clark, Noirin Shirley, Paul Evans,
+Peter John Acklam, Ricardo Signes, Robin Barker, Steven Schubiger, Tom
+Christiansen, Tony Cook, Zsbán Ambrus and Ævar Arnfjörð Bjarmason
 
-commit eccda089fc3dcaafc1ae0aac6b428f799231b824
-Author: Paul "LeoNerd" Evans <leonerd@leonerd.org.uk>
-Date:   Mon Dec 13 17:50:06 2010 +0000
+=head1 Reporting Bugs
 
-    Implement Socket::getaddrinfo() and Socket::getnameinfo(), with related constants
+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.
 
-commit edcf105d70e5423fd928c776e086fe31a4a543f4
-Author: Jesse Vincent <jesse@bestpractical.com>
-Date:   Sat Jan 1 18:46:20 2011 +0800
+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.
 
-    Document 'test_porting' and start a section on how committing to blead
+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 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.
 
-commit cce04bebd8af026c2a6731940ddb895d3c1fc3e4
-Author: David Golden <dagolden@cpan.org>
-Date:   Mon Dec 13 17:36:33 2010 -0500
+=head1 SEE ALSO
 
-    Reorganize perlhack.pod
+The F<Changes> file for an explanation of how to view exhaustive details
+on what changed.
 
-    Following on an IRC conversation, I've attempted to reorganize
-    perlhack for greater clarity.  I have only cut and paste blocks
-    of text and amended section titles and levels.  (I have not addressed
-    any of the numerous factual issues which remain.)
+The F<INSTALL> file for how to build Perl.
 
-    The resulting guide should be clearer for those trying to skim the
-    table of contents to understand what is covered in perlhack and
-    whether it is worth an in-depth read.
+The F<README> file for general stuff.
 
-    I see this change as the first step towards future improvements.
+The F<Artistic> and F<Copying> files for copyright information.
 
 =cut