This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta entries
[perl5.git] / pod / perldelta.pod
index 96e3d87..2eebe60 100644 (file)
@@ -1,20 +1,30 @@
 =encoding utf8
 
+=for comment
+This has been completed up to 67aeb7895 except for:
+b3dbdd48ca2da90bce7f16d545cca54c3dc58f35 (Leon Timmermans)
+816005240f1a3b9989c940e630e829048597537c (Craig Berry)
+44caa20c7d9248fd77483468d77c9b5835e7066e (Craig Berry)
+4581ada393ba58f2b8f438c7b9c336d6c79ec94c (Craig Berry)
+3b28d668e9efe9433c3099521167a6723cbddc26 (Craig Berry)
+82e24582a585cdcc94ac54b3e77a325e7aa89846 (Jan Dubois)
+and any bugs that Karl Williamson has fixed.
+
 =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.11
 
 =head1 DESCRIPTION
 
-This document describes differences between the 5.13.8 release and
-the 5.13.9 release.
+This document describes differences between the 5.13.10 release and
+the 5.13.11 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.
+If you are upgrading from an earlier release such as 5.13.9, first read
+L<perl5139delta>, which describes differences between 5.13.9 and
+5.13.10.
 
 =head1 Notice
 
@@ -28,48 +38,6 @@ 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
 
 XXX Any security-related notices go here.  In particular, any security
@@ -78,6 +46,11 @@ L</Selected Bug Fixes> section.
 
 [ List each security issue as a =head2 entry ]
 
+=head2 User-defined regular expression properties
+
+Perl no longer allows a tainted regular expression to invoke a user-defined
+property via C<\p{...}> syntax. It simply dies instead [perl #82616].
+
 =head1 Incompatible Changes
 
 XXX For a release on a stable branch, this section aspires to be:
@@ -87,17 +60,18 @@ XXX For a release on a stable branch, this section aspires to be:
 
 [ List each incompatible change as a =head2 entry ]
 
-=head2 All objects are destroyed
+=head2 Passing references to warn()
 
-It used to be possible to prevent a destructor from being called during
-global destruction by artificially increasing the reference count of an
-object.
+An earlier Perl 5.13.x release changed C<warn($ref)> to leave the reference
+unchanged, allowing C<$SIG{__WARN__}> handlers to access the original
+reference. But this stopped warnings that were references from having the
+file and line number appended even when there was no C<$SIG{__WARN__}>
+handler in place.
 
-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>.
-
-This has the potential to break some XS modules. (In fact, it break some.
-See L</Known Problems>, below.)
+Now C<warn> checks for the presence of such a handler and, if there is
+none, proceeds to stringify the reference and append the file and line
+number. This allows simple uses of C<warn> for debugging to continue to
+work as they did before.
 
 =head1 Deprecations
 
@@ -140,164 +114,164 @@ cribbed.
 
 =item *
 
-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.
+XXX
 
-=item *
+=back
 
-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 Updated Modules and Pragmata
+
+=over 4
 
 =item *
 
-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.
+C<base> has been upgraded from version 2.15 to 2.16.
 
 =item *
 
-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.
+C<CPANPLUS> has been upgraded from version 0.9101 to 0.9102
 
 =item *
 
-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.
+C<CPANPLUS::Dist::Build> has been upgraded from version 0.52 to 0.54
 
-=back
+=item *
 
-=head2 Updated Modules and Pragmata
+C<Cwd> has been downgraded from version 3.37 to 3.36.
 
-=over 4
+An optimisation that recent core changes have rendered unnecessary has been
+reverted.
 
 =item *
 
-C<Archive::Extract> has been upgraded from version 0.46 to 0.48
+C<Devel::DProf> has been upgraded from version 20110225.01 to 20110228.00.
 
 =item *
 
-C<Archive::Tar> has been upgraded from version 1.74 to 1.76
+C<Digest::SHA> has been upgraded from version 5.50 to 5.61
 
-=item *
+New SHA-512/224 and SHA-512/256 transforms ref. NIST Draft FIPS 180-4 (February 2011)
 
-C<CGI> has been upgraded from version 3.50 to 3.51
+=item *
 
-Further improvements have been made to guard against newline injections
-in headers.
+C<ExtUtils::Command> has been upgraded from version 1.16 to 1.17.
 
 =item *
 
-C<Compress::Raw::Bzip2> has been upgraded from version 2.031 to 2.033
+C<File::Copy> has been downgraded from version 2.22 to 2.21.
+
+An optimisation that recent core changes have rendered unnecessary has been
+reverted.
 
 =item *
 
-C<Compress::Raw::Zlib> has been upgraded from version 2.030 to 2.033
+C<IO> has been upgraded from version 1.25_03 to 1.25_04.
 
 =item *
 
-C<CPAN> has been upgraded from version 1.94_62 to 1.94_63
+C<JSON::PP> has been upgraded from version 2.27103 to 2.27105
 
 =item *
 
-C<CPANPLUS> has been upgraded from version 0.9010 to 0.9011
+C<Locale::Codes> has been upgraded from version 3.15 to 3.16
 
 =item *
 
-C<CPANPLUS::Dist::Build> has been upgraded from version 0.50 to 0.52
+C<Math::BigInt> has been upgraded from version 1.992 to 1.994
 
 =item *
 
-C<DB_File> has been upgraded from version 1.820 to 1.821
+C<Math::BigInt::FastCalc> has been upgraded from version 0.24_02 to 0.28
 
 =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<Module::Build> has been upgraded from version 0.37_05 to 0.3800
 
-=item *
+=item
 
-C<File::Fetch> has been upgraded from version 0.28 to 0.32
+C<Module::CoreList> has been upgraded from version 2.45 to 2.46.
 
 =item *
 
-C<IO::Compress> has been upgraded from version 2.030 to 2.033
+C<parent> has been upgraded from version 0.224 to 0.225
 
 =item *
 
-C<IPC::Cmd> has been upgraded from version 0.66 to 0.68
+C<Storable> has been upgraded from version 2.26 to 2.27.
 
 =item *
 
-C<Log::Message> has been upgraded from version 0.02 to 0.04
+C<Test::Harness> has been upgraded from version 3.22 to 3.23
 
 =item *
 
-C<Log::Message::Simple> has been upgraded from version 0.06 to 0.08
+C<Test::Simple> has been upgraded from version 0.97_01 to 0.98
 
 =item *
 
-C<Module::Load::Conditional> has been upgraded from version 0.38 to 0.40
+C<Tie::Hash::NamedCapture> has been upgraded from version 0.07 to 0.08.
+
+Some of the Perl code has been converted to XS for efficency's sake.
 
 =item *
 
-C<Object::Accessor> has been upgraded from version 0.36 to 0.38
+C<Tie::RefHash> has been upgraded from version 1.38 to 1.39.
 
 =item *
 
-C<Params::Check> has been upgraded from version 0.26 to 0.28
+C<Unicode::Collate> has been upgraded from version 0.72 to 0.73
+
+DUCET has been updated for Unicode 6.0.0 as Collate/allkeys.txt and
+the default UCA_Version is 22.
 
 =item *
 
-C<Pod::LaTeX> has been upgraded from version 0.58 to 0.59
+C<Unicode::UCD> has been upgraded from version 0.31 to 0.32.
+This includes a number of bug fixes:
 
-=item *
+=over 4
 
-C<Term::UI> has been upgraded from version 0.20 to 0.24
+=item charinfo()
+
+=over 4
 
 =item *
 
-C<Thread::Queue> has been upgraded from version 2.11 to 2.12.
+It is now updated to Unicode Version 6 with Corrigendum #8, except,
+as with Perl 5.14, the code point at U+1F514 has no name.
 
 =item *
 
-C<Thread::Semaphore> has been upgraded from version 2.11 to 2.12.
+The Hangul syllable code points have the correct names, and their
+decompositions are always output without requiring L<Lingua::KO::Hangul::Util>
+to be installed.
 
 =item *
 
-C<threads> has been upgraded from version 1.81_03 to 1.82
+The CJK (Chinese-Japanese-Korean) code points U+2A700 - U+2B734
+and U+2B740 - 2B81D are now properly handled.
 
 =item *
 
-C<threads::shared> has been upgraded from version 1.35 to 1.36
+The numeric values are now output for those CJK code points that have them.
 
 =item *
 
-C<Time::Local> has been upgraded from version 1.1901_01 to 1.2000.
+The names that are output for code points with multiple aliases are now the
+corrected ones.
 
-=item *
+=back
 
-C<Unicode::Normalize> has been upgraded from version 1.07 to 1.10
+=item charscript()
 
-=item *
+This now correctly returns "Unknown" instead of C<undef> for the script
+of a code point that hasn't been assigned another one.
 
-C<version> has been upgraded from 0.86 to 0.88.
+=item charblock()
 
-=item *
+This now correctly returns "No_Block" instead of C<undef> for the block
+of a code point that hasn't been assigned to another one.
 
-C<Win32> has been upgraded from version 0.41 to 0.44.
+=back
 
 =back
 
@@ -330,13 +304,13 @@ 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<perlfunc>
+=head3 L<XXX>
 
 =over 4
 
 =item *
 
-It has now been documented that C<ord> returns 0 for an empty string.
+XXX Description of the change here
 
 =back
 
@@ -359,9 +333,26 @@ XXX Newly added diagnostic messages go here
 
 =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 ...'.
+Regexp modifier "/%c" may not appear twice
+
+(F syntax) The regular expression pattern had one of the mutually exclusive
+modifiers repeated.  Remove all but one of the occurrences.
+
+=item *
+
+Regexp modifiers "/%c" and "/%c" are mutually exclusive
+
+(F syntax) The regular expression pattern had more than one of the mutually
+exclusive modifiers.  Retain only the modifier that is supposed to be there.
+
+=item *
+
+Insecure user-defined property %s
+
+(F) Perl detected tainted data when trying to compile a regular
+expression that contains a call to a user-defined character property
+function, i.e. C<\p{IsFoo}> or C<\p{InFoo}>.
+See L<perlunicode/User-Defined Character Properties> and L<perlsec>.
 
 =back
 
@@ -373,11 +364,7 @@ XXX Changes (i.e. rewording) of diagnostic messages go here
 
 =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.
+XXX
 
 =back
 
@@ -390,14 +377,13 @@ here. Most of these are built within the directories F<utils> and F<x2p>.
 entries for each change
 Use L<XXX> with program names to get proper documentation linking. ]
 
-=head3 L<perlbug>
+=head3 L<XXX>
 
 =over 4
 
 =item *
 
-C<perlbug> did not previously generate a From: header, potentially
-resulting in dropped mail. Now it does include that header.
+XXX
 
 =back
 
@@ -426,14 +412,24 @@ 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 ]
+Some of the tests have been refactored. In some cases they were moved to
+new files:
 
 =over 4
 
 =item *
 
-A new test script, C<t/porting/filenames.t>, makes sure that filenames and
-paths are reasonably portable.
+The tests for C<split /\s/> and Unicode have been moved from
+F<t/op/split.t> to F<t/op/split_unicode.t>.
+
+=item *
+
+F<t/re/re.t> has been moved to F<ext/re/t/re_funcs_u.t>.
+
+=item *
+
+The tests for [perl #72922] have been moved from F<t/re/qr.t> to
+F<t/re/qr-72922.t>.
 
 =back
 
@@ -465,11 +461,9 @@ XXX List any platforms that this version of perl no longer compiles on.
 
 =over 4
 
-=item Apollo DomainOS
+=item XXX-some-platform
 
-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.
+XXX
 
 =back
 
@@ -482,11 +476,9 @@ L</Modules and Pragmata> section.
 
 =over 4
 
-=item Solaris
+=item XXX-some-platform
 
-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>.
+XXX
 
 =back
 
@@ -502,44 +494,7 @@ be noted as well.
 
 =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).
-
-=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>.
-
-=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 *
-
-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
+XXX
 
 =back
 
@@ -549,59 +504,52 @@ 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>.
 
-[ List each fix as a =item entry ]
-
 =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>
+A fix for a bug in C<length(undef)> in 5.13.4 introduced a regression that
+meant C<print length undef> did not warn when warnings were enabled. It now
+correctly warns [perl #85508].
 
 =item *
 
-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>.
+The C<(?|...)> regular expression construct no longer crashes if the final
+branch has more sets of capturing parentheses than any other branch. This
+was fixed in Perl 5.10.1 for the case of a single branch, but that fix did
+not take multiple branches into account [perl #84746].
 
 =item *
 
-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.
+Accessing an element of a package array with a hard-coded number (as
+opposed to an arbitrary expression) would crash if the array did not exist.
+Usually the array would be autovivified during compilation, but typeglob
+manipulation could remove it, as in these two cases which used to crash:
 
-=item *
+  *d = *a;  print $d[0];
+  undef *d; print $d[0];
 
-C<< <expr> >> always respects overloading now if the expression is
-overloaded.
+=item *
 
-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.
+C<#line> directives in string evals were not properly updating the arrays
+of lines of code (C<< @{"_<..."} >>) that the debugger (or any debugging or
+profiling module) uses. In threaded builds, they were not being updated at
+all. In non-threaded builds, the line number was ignored, so any change to
+the existing line number would cause the lines to be misnumbered
+[perl #79442].
 
 =item *
 
-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 }>).
+C<$AUTOLOAD> used to remain tainted forever if it ever became tainted. Now
+it is correctly untainted if an autoloaded method is called and the method
+name was not tainted.
+
+=item *
 
-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>.
+A bug has been fixed in the implementation of C<{...}> quantifiers in
+regular expressions that prevented the code block in
+C</((\w+)(?{ print $2 })){2}/> from seeing the C<$2> sometimes
+[perl #84294].
 
 =back
 
@@ -620,8 +568,7 @@ from either 5.XXX.XXX or 5.XXX.XXX.
 
 =item *
 
-The fix for [perl #81230] causes test failures for C<Tk> version 804.029.
-This is still being investigated.
+XXX
 
 =back
 
@@ -669,500 +616,3 @@ 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
-
-
-    regexec.c: Remove break statements from macros
-
-    This is so future coders won't be tempted to rely on them.
-
-    regexec.c: Don't rely on break stmts in macros
-
-    It is safer and clearer to have the break statement in each case statement at
-    the source level
-
-commit b57e41186b2ceb48bef4f0588dcd19e105cc8a38
-Author: Karl Williamson <public@khwilliamson.com>
-Date:   Tue Jan 18 15:03:41 2011 -0700
-
-    regcomp: Disallow multi-char folds in lookbehind
-
-    The addition of the ANYOFV regnode to treat multi-char folds in a bracketed
-    character class has exposed a bug, in which those classes have long been able
-    to be varying length (due to the multi-char fold), but the compiler wasn't
-    aware of it.  Now it is, and hence won't allow those which have multi-char
-    folds to be part of a lookbehind pattern, which requires a constant length.
-
-    This patch disallows multi-char folds in a lookbehind bracketed character
-    class.
-
-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.
-
-commit 8254cbf193c939338449097a80163197fc755150
-Author: Nicholas Clark <nick@ccl4.org>
-Date:   Tue Jan 18 11:10:41 2011 +0000
-
-    Build perltoc.pod with pragmata sorted by name.
-
-    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.
-
-commit 1d45ec279e4e105512a2803e3d0bd974a151a0f6
-Author: Father Chrysostomos <sprout@cpan.org>
-Date:   Mon Jan 17 22:32:52 2011 -0800
-
-    perlcall: Fixes for various grammatical errors
-
-commit faaf68361923e4bb95d1eb919bc724a0dcc5a4ce
-Author: Leon Timmermans <fawaka@gmail.com>
-Date:   Mon Jan 17 17:59:33 2011 +0100
-
-    Clarify limitation in safe signals.
-
-commit 0c1bf4c7d433bb0ad80bfe5511b1301db32b7b95
-Author: Leon Timmermans <fawaka@gmail.com>
-Date:   Mon Jan 17 16:29:11 2011 +0100
-
-    Added tests for conditional unblocking
-
-commit 555344425f04e96a72e4d29eab96b34bff8f96ae
-Author: Leon Timmermans <fawaka@gmail.com>
-Date:   Thu Jan 13 18:30:29 2011 +0100
-
-    Conditionally unblock after signal handler[#82040]
-
-    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
-
-    Update HTTP::Tiny to CPAN version 0.009
-
-commit 78cd53afbb1923bf0a68f361040ad8fe93a7d0d5
-Author: David Mitchell <davem@iabyn.com>
-Date:   Tue Jan 18 00:46:30 2011 +0000
-
-    vastly speed up t/porting/diag.t
-
-    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.
-
-commit cfaf538b6276c6a8ef80ff6c66e106c6a4f1caaa
-Author: Karl Williamson <public@khwilliamson.com>
-Date:   Mon Jan 17 08:58:53 2011 -0700
-
-    Add /a regex modifier
-
-    This restricts certain constructs, like \w, to matching in the ASCII range only.
-
-commit 56ae17b45d2513d65903d13468e8f6a16b20f916
-Author: Karl Williamson <public@khwilliamson.com>
-Date:   Sun Jan 16 17:41:30 2011 -0700
-
-    regcomp.c: Convert \d \D to a switch{}
-
-commit e66820012d29519f903709f005e56a2c334ae183
-Author: Tony Cook <tony@develop-help.com>
-Date:   Mon Jan 17 19:22:08 2011 +1100
-
-    test_prep now depends on the pods needed for porting/buildtoc.t
-
-    In the other makefiles test_prep (or test-prep) depends on all, so
-    they shouldn't need updating.
-
-
-commit a52237f3a547cdefddd4c4be6224bfdf67c84263
-Author: David Golden <dagolden@cpan.org>
-Date:   Sun Jan 16 21:32:21 2011 -0500
-
-    Update CPAN to CPAN version 1.94_63
-
-commit 63ac0dadb1aafcf0c171d3c1422c1923b611b2fc
-Author: Karl Williamson <public@khwilliamson.com>
-Date:   Tue Dec 28 16:13:49 2010 -0700
-
-    regex: Use BOUNDU regnodes
-
-    This refactors one area in regexec.c to use BOUNDU, NBOUNDU for
-    efficiciency, and easier adding of the future BOUNDA.
-
-commit 980866de2cf8ecdb4bb72b7f9294763057008f50
-Author: Karl Williamson <public@khwilliamson.com>
-Date:   Mon Dec 27 12:04:58 2010 -0700
-
-    regex: Separate nodes for Unicode semantics \s \w
-
-    This patch converts the \s, \w and complements Unicode semantics to
-    instead of using the flags field of their nodes to instead use separate
-    nodes.  This gains some efficiency, especially useful in tight loops and
-    backtracking of regexec.c, and prepares the way for easily adding other
-    semantic variations, such as /a.
-
-    It refactors the CCC_TRY... macros.  I tried to break this piece up into
-    smaller chunks, but found it much easier to get to this in one step.
-    Further patches will do some more refactoring of these.
-
-    As part of the CCC_TRY macro refactoring, the lines that include the
-    test if (! nextchr) are changed to just look for the end-of-string by
-    position instead of it being NUL.  In locales, it could be (however
-    unlikely), that NUL is a real alphabetic, digit, or space character.
-commit 50e911483ad5c29e25c54c9f81f92df974dd2cc0
-Author: Karl Williamson <public@khwilliamson.com>
-Date:   Sun Dec 26 10:35:58 2010 -0700
-
-    Change name of /d to DEPENDS
-
-    I much prefer David Golden's name for /d whose meaning 'depends' on
-    circumstances, instead of 'dual' meaning it could be one or another.
-    Change it before this gets out in a stable release, and we're stuck with
-    the old name.
-
-commit 73134a2eb4055c76fe5b154da95e09118f716fd8
-Author: Karl Williamson <public@khwilliamson.com>
-Date:   Sun Dec 26 10:35:20 2010 -0700
-
-    CH] Change usage of regex/op common to common names
-
-    This patch changes the core functions to use the common names for the
-    fields that are shared between op.c and regcomp.c, just for consistency
-    of using one name throughout the core for the same thing.
-
-    A grep of cpan shows that both names are used in various modules; so
-    both names must be retained.
-
-commit a3ab329f3fc9494e700f51c38cef42021c130b6e
-Author: David Golden <dagolden@cpan.org>
-Date:   Sun Jan 16 20:57:02 2011 -0500
-
-    Add HTTP::Tiny as a dual-life core module
-
-    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>.
-
-commit 211cc5012284f4bd900fcaa630adbcac69ca6112
-Author: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
-Date:   Sun Jan 16 23:23:03 2011 +0000
-
-    Update Unicode-Collate to CPAN version 0.70 and enable XS version
-
-commit a62b1201c068dc7b099bcb7182e188c4d2fbf34c
-Author: Karl Williamson <public@khwilliamson.com>
-Date:   Sun Dec 26 10:31:16 2010 -0700
-
-    Use multi-bit field for regex character set
-
-    The /d, /l, and /u regex modifiers are mutually exclusive.  This patch
-    changes the field that stores the character set to use more than one bit
-    with an enum determining which one.  This data structure more
-    closely follows the semantics of their being mutually exclusive, and
-    conserves bits as well, and is better expandable.
-
-    A small API is added to set and query the bit field.
-
-    This patch is not .xs source backwards compatible.  A handful of cpan
-    programs are affected.
-
-
-tools
-
-    Significant updates to buildtoc
-
-    Update Unicode-Normalize to CPAN version 1.10
-
-commit 11454c594f22abc5945e69a46fc965363dbf326e
-Author: Karl Williamson <public@khwilliamson.com>
-Date:   Sat Jan 15 13:42:58 2011 -0700
-
-    Fix \xa0 matching both [\s] [\S], et.al.
-
-    This bug stemmed from Latin1 characters not matching any (non-complemented)
-    character class in /d semantics when the target string is no utf8; but having
-    unicode semantics when it isn't.  The solution here is to add a special flag.
-
-    There were several tests that relied on the broken behavior, specifically they
-    tested that \xff isn't a printable word character even in utf8.  I changed the
-    deparse test to instead use a non-printable code point, and I changed the ones
-    in re_tests to be TODOs, and will change them back using /a when that is
-    shortly added.
-
-
-SECURITY
-
-    restrict \p{IsUserDefined} to In\w+ and In\w+
-
-    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.
-
-    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.
-
-TESTING
-
-    test that perl.pod, pod.lst, MANIFEST and the file system are consistent
-
-commit f56b6394f7cf57733135f56e4e4ac49abe9ac9cc
-Author: Karl Williamson <public@khwilliamson.com>
-Date:   Thu Jan 13 22:36:36 2011 -0700
-
-    regex: Use ANYOFV
-
-    This patch restructures the regex ANYOF code to generate ANYOFV nodes instead
-    when there is a possibility that it could match more than one character.   Note
-    that this doesn't affect the optimizer, as it essentially ignores things that
-    fit into this category.  (But it means that the optimizer will no longer reject
-    these when it shouldn't have.)
-
-    The handling of the LATIN SHARP s is modified to correspond with this new node
-    type.
-
-    The initial handling of ANYOFV is placed in regexec.c.  More analysis will come
-    on that.  But there was significant change to the part that handles matching
-    multi-char strings.  This has long been buggy, with it previously comparing a
-    folded-version on one side with a non-folded version on the other.
-
-    This patch fixes about 60% of the problems that my undelivered test suite gives
-    for multi-char folds.  But there are still 17K test failures left, so I'm still
-    not delivering that.  The TODOs that this fixes will be cleaned up in a later commit
-
-
-commit 680818c0361b180bb6f09d4bb11c4d5cd467fe62
-Author: Nicholas Clark <nick@ccl4.org>
-Date:   Thu Jan 13 16:24:52 2011 +0000
-
-    ithread_create() was relying on the stack not moving. Fix this.
-
-    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.
-
-
-
-commit 7627e6d0fe772ac90fce9e03fea273109521e261
-Author: Nicholas Clark <nick@ccl4.org>
-Date:   Sat Jan 8 15:56:22 2011 +0000
-
-    Generate "Unsupported socket function" stubs using PL_ppaddr.
-
-    Instead of having each socket op conditionally compile as either the
-    implementation or a DIE() depending on #HAS_SOCKET
-
-    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)
-
-    Whilst this complicates the support code in regen/opcode.pl, it's already a
-    net saving of 5 lines in the C code.
-
-commit 897d398936dd2fc088a265fba2a7b62fa97ed458
-Author: Nicholas Clark <nick@ccl4.org>
-Date:   Sun Jan 9 10:54:58 2011 +0000
-
-    Generate pp_* prototypes in pp_proto.h, and remove pp.sym
-
-    Eliminate the #define pp_foo Perl_pp_foo(pTHX) macros, and update the 13
-    locations that relied on them.
-
-    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)
-
-commit a4a4c9e2c086dd5f7b7b05789161614dbbe8385b
-Author: Karl Williamson <public@khwilliamson.com>
-Date:   Sat Jan 8 14:44:05 2011 -0700
-
-    perldiag.pod: Add missing message severities
-
-
-TESTING
-    add test for split without a pattern
-
-    Add some while tests, about the context of the last statement in a block and about reinitializaiton of lexical variables.
-
-    modernise t/cmd/while.t
-
-    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".
-
-commit b86b68b4eefa1069dabc8ea0401d712b24a67857
-Author: Jesse Vincent <jesse@bestpractical.com>
-Date:   Sat Jan 8 00:14:29 2011 +0800
-
-    Update the policy on doc patches to maint
-
-
-commit 0b5e625bc99f5cb78697faf03b297b6cacadf60b
-Author: Reini Urban <rurban@x-ray.at>
-Date:   Tue Sep 14 18:04:22 2010 +0200
-
-    build man pages on cygwin too
-
-commit 172830635ea7813c85e51e4ae2b4bed56ddbab83
-Author: Reini Urban <rurban@x-ray.at>
-Date:   Tue Sep 14 17:54:15 2010 +0200
-
-    Improve cygwin rebase behaviour
-
-    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
-
-
-Platforms
-
-commit cc7e77fd5a0ee9f1498e54dddf566117da62754b
-Author: Reini Urban <rurban@x-ray.at>
-Date:   Tue Sep 14 17:48:32 2010 +0200
-
-    CYG14 Dynaloader without USEIMPORTLIB, and search cyg prefix
-
-    part1: Support the standard cyg dll prefix, which is e.g. needed for FFI's.
-    Ctypes and C::DynaLib use DynaLoader to find dlls.
-
-    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.
-
-    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'
-
-commit c0a149a90b8b6e1c18de7294ca974265fb559cf5
-Author: Reini Urban <rurban@x-ray.at>
-Date:   Tue Sep 14 18:06:38 2010 +0200
-
-    Update cygwin hints
-    do not use usemymalloc (double size + slow)
-    remove deprecated libcygipc info
-    remove overlarge stack size
-
-commit 2831a86cee065b53b74fd19ddcc6a4257484646d
-Author: Zsbán Ambrus <ambrus@math.bme.hu>
-Date:   Sun Jan 2 20:25:55 2011 -0800
-
-    [perl #81032] Overhaul Porting/epigraphs.pod
-
-    This patch makes multiple changes to Porting/epigraphs.pod and
-    pod/perlhist.pod.
-
-    For those that don't know, Porting/epigraphs.pod is a new document that
-    collects the quotes (chosen by Pumpkins) in perl release announcements.
-
-    The changes are the following.
-
-    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.
-
-commit eccda089fc3dcaafc1ae0aac6b428f799231b824
-Author: Paul "LeoNerd" Evans <leonerd@leonerd.org.uk>
-Date:   Mon Dec 13 17:50:06 2010 +0000
-
-    Implement Socket::getaddrinfo() and Socket::getnameinfo(), with related constants
-
-commit edcf105d70e5423fd928c776e086fe31a4a543f4
-Author: Jesse Vincent <jesse@bestpractical.com>
-Date:   Sat Jan 1 18:46:20 2011 +0800
-
-    Document 'test_porting' and start a section on how committing to blead
-
-commit cce04bebd8af026c2a6731940ddb895d3c1fc3e4
-Author: David Golden <dagolden@cpan.org>
-Date:   Mon Dec 13 17:36:33 2010 -0500
-
-    Reorganize perlhack.pod
-
-    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 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.
-
-    I see this change as the first step towards future improvements.
-
-=cut