=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.10
=head1 DESCRIPTION
-This document describes differences between the 5.XXX.XXX release and
-the 5.XXX.XXX release.
-
-If you are upgrading from an earlier release such as 5.YYY.YYY, first read
-L<perl5YYYdelta>, which describes differences between 5.ZZZ.ZZZ and
-5.YYY.YYY.
+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.
+=head2 The new regular expression modifiers available in suffix form
+
+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 enhancement 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.
=head2 Add C<\p{Titlecase}> as a synonym for C<\p{Title}>
-This synyom is added for symmetry with the Unicode property names
+This synonym is added for symmetry with the Unicode property names
C<\p{Uppercase}> and C<\p{Lowercase}>.
+=head2 New regular expression modifier option C</aa>
-=head1 Security
+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,
-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.
+ 'k' =~ /\N{KELVIN SIGN}/
-[ List each security issue as a =head2 entry ]
+will match; it won't under C</aa>.
-=head1 Incompatible Changes
+=head2 New warnings categories for problematic (non-)Unicode code points.
-XXX For a release on a stable branch, this section aspires to be:
+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.
- There are no changes intentionally incompatible with 5.XXX.XXX. If any
- exist, they are bugs and reports are welcome.
+=head1 Security
-[ List each incompatible change as a =head2 entry ]
+=head1 Incompatible Changes
=head2 Most C<\p{}> properties are now immune from case-insensitive matching
non-zero if case-insensitive matching is in effect; 0 if not. See
L<perluniprops/User-Defined Character Properties>.
+=head2 regex: \p{} in pattern implies Unicode semantics
+
+Now, a Unicode property match specified in the pattern will indicate
+that the pattern is meant for matching according to Unicode rules
+(e40e74f)
+
+=head2 add GvCV_set() and GvGP_set() macros and change GvGP()
+
+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.
+
+If you've been using GvGP() in lvalue context this change will break
+your code, you should use GvGP_set() instead. (c43ae56)
+
+=head2 _swash_inversion_hash is no longer exported as part of the API
+
+This function shouldn't be called from XS code. (4c2e113)
+
+=head2 Unreferenced objects in global destruction
+
+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.
+
+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.
+
+This resolves [perl #82542] and other related tickets.
+
+=head2 C<close> on shared pipes
+
+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.
+
=head1 Deprecations
-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.
+=over
-[ List each deprecation as a =head2 entry ]
+=item Deprecated Modules
-=head1 Performance Enhancements
+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.
-XXX Changes which enhance performance without changing behaviour go here. There
-may well be none in a stable release.
+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.
-[ List each enhancement as a =item entry ]
+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.
-=over 4
+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>.
-=item *
+=over
+
+=item L<Devel::DProf>
-XXX
+We strongly recommend that you install and used L<Devel::NYTProf> in
+preference, as it offers significantly improved profiling and reporting.
=back
-=head1 Modules and Pragmata
+=back
-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.
+=head2 User-defined case-mapping
-[ Within each section, list entries as a =item entry ]
+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.
+
+=head1 Modules and Pragmata
=head2 New Modules and Pragmata
=item *
-XXX
+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<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>.
=back
=item *
+C<B> has been upgraded from version 1.27 to 1.28.
+
+=item *
+
+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<CGI> has been upgraded from version 3.51 to 3.52
=item *
+C<CPAN> has been upgraded from version 1.94_64 to 1.94_65
+
+Includes support for META.json and MYMETA.json.
+
+=item *
+
+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<deprecate> has been upgraded from version 0.01 to 0.02.
+
+=item *
+
+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<Devel::DProf> has been upgraded from version 20080331.00 to 20110217.00.
+
+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.
+
+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<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<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<IPC::Cmd> has been upgraded from version 0.68 to 0.70
=item *
=item *
-C<Module::Build> has been upgraded from version 0.3607 to 0.3622.
+C<Math::BigInt> has been upgraded from version 1.99_04 to 1.992.
+
+=item *
+
+C<Module::Build> has been upgraded from version 0.3607 to 0.37_05.
A notable change is the deprecation of several modules.
Module::Build::Version has been deprecated and Module::Build now relies
favor of a standalone copy of it called L<Module::Metadata>.
Module::Build::YAML has been deprecated in favor of L<CPAN::Meta::YAML>.
+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<Module::Load::Conditional> has been upgraded from version 0.40 to 0.44
=item *
+C<overload> has been upgraded from version 1.12 to 1.13.
+
+The documentation has greatly improved. See L</Documentation> below.
+
+=item *
+
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
=item *
+C<re> has been upgraded from version 0.16 to 0.17.
+
+It now supports the double-a flag: C<use re '/aa';>
+
+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.
+
+C<regmust> no longer leaks memory.
+
+=item *
+
C<Term::UI> has been upgraded from version 0.24 to 0.26
=item *
=item *
-XXX
+C<VMS::DCLsym> has been upgraded from version 1.04 to 1.05.
-=back
+Two bugs have been fixed [perl #84086]:
-=head2 Removed Modules and Pragmata
+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.
-=over 4
+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.
=item *
-XXX
+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.
+
+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 *
+
+C<CPAN> has been upgraded from version1.94_63 to 1.94_64.
=back
=head1 Documentation
-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>.
-
-=head2 New Documentation
+=head2 Changes to Existing Documentation
-XXX Changes which create B<new> files in F<pod/> go here.
+=head3 L<overload>
-=head3 L<XXX>
+=over 4
-XXX Description of the purpose of the new file here
+=item *
-=head2 Changes to Existing Documentation
+L<overload>'s documentation has practically undergone a rewrite. It
+is now much more straightforward and clear.
-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.
+=back
=head3 L<perlhack> and perlrepository
=back
-=head1 Diagnostics
+=head3 L<perlfunc>
-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>.
+=over 4
-XXX New or changed warnings emitted by the core's C<C> code go here. Also
-include any changes in L<perldiag> that reconcile it to the C<C> code.
+=item *
-[ Within each section, list entries as a =item entry ]
+The documentation for the C<map> function now contains more examples,
+see B<perldoc -f map> (f947627)
-=head2 New Diagnostics
+=back
-XXX Newly added diagnostic messages go here
+=head3 L<perlfaq4>
=over 4
=item *
-XXX
+Examples in L<perlfaq4> have been updated to show the use of
+L<Time::Piece>. (9243591)
=back
-=head2 Changes to Existing Diagnostics
-
-XXX Changes (i.e. rewording) of diagnostic messages go here
+=head3 Miscellaneous
=over 4
=item *
-XXX
+Many POD related RT bugs and other issues which are too numerous to
+enumerate have been solved by Michael Stevens.
=back
-=head1 Utility Changes
-
-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>.
+=head1 Diagnostics
-[ 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. ]
+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>.
-=head3 L<XXX>
+=head2 New Diagnostics
=over 4
-=item *
+=item "\b{" is deprecated; use "\b\{" instead
-XXX
+=item "\B{" is deprecated; use "\B\{" instead
-=back
+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.
-=head1 Configuration and Compilation
+=item regcomp: Add warning if \p is used under locale. (fb2e24c)
+
+C<\p> implies Unicode matching rules, which are likely going to be
+different than the locale's.
-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.
+=item panic: gp_free failed to free glob pointer - something is repeatedly re-creating entries
-[ List changes as a =item entry ].
+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 refcnt: fd %d%s
+
+This new error only occurs if a internal consistency check fails when a
+pipe is about to be closed.
+
+=back
+
+=head2 Changes to Existing Diagnostics
=over 4
=item *
-XXX
+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).
-=back
+=item *
-=head1 Testing
+C<binmode $fh, ':scalar'> no longer warns (8250589)
+
+Perl will now no longer produce this warning:
+
+ $ perl -we 'open my $f, ">", \my $x; binmode $f, "scalar"'
+ Use of uninitialized value in binmode at -e line 1.
-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.
+=back
+
+=head1 Utility Changes
-[ List each test improvement as a =item entry ]
+=head3 L<perlbug>
=over 4
=item *
-XXX
+[perl #82996] Use the user's from address as return-path in perlbug
+
+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)
=back
-=head1 Platform Support
+=head1 Configuration and Compilation
-XXX Any changes to platform support should be listed in the sections below.
+=over 4
-[ Within the sections, list each platform as a =item entry with specific
-changes as paragraphs below it. ]
+=item *
-=head2 New Platforms
+make reg_eval_scope.t TODOs consistently fail (daaf7ac)
-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.
+Some of the TODO tests in reg_eval_scope.t spuriously passed under
+non-threaded builds. Make the tests harder so they always fail.
-=over 4
+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 XXX-some-platform
+=item *
-XXX
+Stop EU::CBuilder's tests from failing in parallel (cbf59d5)
-=back
+It used to use the same paths for temporary files in all tests. This
+blew up randomly when the tests were run in parallel.
-=head2 Discontinued Platforms
+=back
-XXX List any platforms that this version of perl no longer compiles on.
+=head1 Testing
=over 4
-=item XXX-some-platform
+=item *
+
+F<porting/FindExt.t> now skips all tests on a static (-Uusedl) build
+of perl.
-XXX
+=item *
+
+F<porting/FindExt.t> now passes on non-Win32 platforms when some
+extensions are built statically.
=back
-=head2 Platform-Specific Notes
+=head1 Platform Support
-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.
+=head2 Platform-Specific Notes
=over 4
=back
+=item MirBSD
+
+=over 4
+
+=item *
+
+[perl #82988] Skip hanging taint.t test on MirBSD 10 (1fb83d0)
+
+Skip a hanging test under MirBSD that was already being skipped under
+OpenBSD.
+
+=item *
+
+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.
+
+=back
+
=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.
+=over 4
-[ List each test improvement as a =item entry ]
+=item *
-=over 4
+Fix harmless invalid read in Perl_re_compile() (f6d9469)
+
+[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.
+
+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".
+
+Fix this by only using NEXTOPER(first) when we know the first node is
+kosher.
=item *
-XXX
+Break out the generated function Perl_keywords() into F<keywords.c>, a new file. (26ea9e1)
-=back
+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
-=head1 Selected Bug Fixes
+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.
+
+=item *
+
+A lot of tests have been ported from Test to Test::More, e.g. in
+3842ad6.
+
+=item *
+
+Increase default PerlIO buffer size. (b83080d)
+
+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:
+
+ ./Configure -Accflags=-DPERLIOBUF_DEFAULT_BUFSIZ=N
-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>.
+where N is the desired size in bytes; it should probably be a multiple of
+your page size.
-[ List each fix as a =item entry ]
+=back
+
+=head1 Selected Bug Fixes
=over 4
=item *
-A Unicode C<\p{}> property match in a regular rexpression pattern will
+A Unicode C<\p{}> property match in a regular expression pattern will
now force Unicode rules for the rest of the regular expression
-=back
+=item *
-=head1 Known Problems
+[perl #38456] binmode FH, ":crlf" only modifies top crlf layer (7826b36)
-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).
+When pushed on top of the stack, crlf will no longer enable crlf layers
+lower in the stack. This will prevent unexpected results.
-This is a list of some significant unfixed bugs, which are regressions
-from either 5.XXX.XXX or 5.XXX.XXX.
+=item *
-[ List each fix as a =item entry ]
+Fix 'raw' layer for RT #80764 (ecfd064)
-=over 4
+Made a ':raw' open do what it advertises to do (first open the file,
+then binmode it), instead of leaving off the top layer.
=item *
-XXX
+Use PerlIOBase_open for pop, utf8 and bytes layers (c0888ac)
-=back
+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:
+
+ open FH, '>:pop:perlio', 'some.file' or die $!;
+
+Would throw an error: "Invalid argument". This has been fixed in this
+release.
+
+=item *
+
+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)
-=head1 Obituary
+=item *
+
+String evals will no longer fail after 2 billion scopes have been
+compiled (d1bfb64, 2df5bdd, 0d311cd and 6012dc8)
+
+=item *
+
+[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.
+
+=item *
+
+[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.
+
+=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.
+
+=item *
-XXX If any significant core contributor has died, we've added a short obituary
-here.
+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:
+
+ local *@;
+ eval { die bless [] }; # puts an object in $@
+ sub DESTROY {
+ local $@; # boom
+ }
+
+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.
+
+=item *
+
+[perl #78494] When pipes are shared between threads, the C<close> function
+(and any implicit close, such as on thread exit) no longer blocks.
+
+=item *
+
+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.
+
+=item *
+
+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.
+
+=back
=head1 Acknowledgements
-XXX The list of people to thank goes here.
+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:
+
+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
=head1 Reporting Bugs