A mechanism for inlineable OP equivalents of XSUBs is a TODO.
[p5sagit/p5-mst-13.2.git] / pod / perl5113delta.pod
index ea14955..55fe29d 100644 (file)
@@ -1,48 +1,37 @@
 =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.11.3
 
 =head1 DESCRIPTION
 
-This document describes differences between the 5.11.3 release and
+This document describes differences between the 5.11.2 release and
 the 5.11.3 release.
 
-If you are upgrading from an earlier release such as 5.11.3, first read
-the L<perl5XXXdelta>, which describes differences between 5.11.3 and
-5.10.0
+If you are upgrading from an earlier release such as 5.11.1, first read
+the L<perl5112delta>, which describes differences between 5.11.1 and
+5.11.2
 
-=head1 Notice
+=head1 Incompatible Changes
 
-XXX Any important notices here
+=over
 
-=head1 Incompatible Changes
+=item Filehandles are blessed directly into C<IO::Handle::>, as C<FileHandle> is merely a wrapper around C<IO::Handle>.
 
-XXX For a release on a stable branch, this section aspires to be:
+The previous behaviour was to bless Filehandles into L<FileHandle>
+(an empty proxy class) if it was loaded into memory and otherwise
+to bless them into C<IO::Handle::>.
 
-    There are no changes intentionally incompatible with 5.11.3. If any
-    exist, they are bugs and reports are welcome.
 
+=back
 
 =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 Unicode version
 
-Perl is shipped with the latest Unicode version, 5.2, October 2009.  See
+Perl is shipped with the latest Unicode version, 5.2, dated October 2009.  See
 L<http://www.unicode.org/versions/Unicode5.2.0> for details about this release
-of Unicode.
-
-But, an installation can now fairly easily change Perl to operate on any
-Unicode release.  Perl is shipped with the latest official release, but
-an installation can download and install any prior release from Unicode, and
-cause Perl to work with that (or even multiple releases).  Instructions are in
-L<perlunicode>.
+of Unicode.  See L<perlunicode> for instructions on installing and using
+older versions of Unicode.
 
 =head2 Unicode properties
 
@@ -57,7 +46,7 @@ Perl now fully supports the Unicode compound-style of using C<=> and C<:>
 in writing regular expressions: C<\p{property=value}> and
 C<\p{property:value}> (both of which mean the same thing).
 
-Perl now supports fully the Unicode loose matching rules for text
+Perl now fully supports the Unicode loose matching rules for text
 between the braces in C<\p{...}> constructs.  In addition, Perl also allows
 underscores between digits of numbers.
 
@@ -66,23 +55,48 @@ now accepted.
 
 C<qr/\X/>, which matches a Unicode logical character, has been expanded to work
 better with various Asian languages.  It now is defined as an C<extended
-grapheme cluster>.  (See L<http://www.unicode.org/reports/tr29/>).  One change
-due to this is that C<\X> will match the whole sequence C<S<CR LF>>.  Another
-change is that C<\X> will match an isolated mark.  Marks generally come after a
-base character, but it is possible in Unicode to have them in isolation, and
-C<\X> will now handle that case.  Otherwise, this change should be transparent
-for the non-affected languages.
+grapheme cluster>.  (See L<http://www.unicode.org/reports/tr29/>).
+Anything matched previously that made sense will continue to be matched.  But
+in addition:
+
+=over
+
+=item *
+
+C<\X> will now not break apart a C<S<CR LF>> sequence.
+
+=item *
+
+C<\X> will now match a sequence including the C<ZWJ> and C<ZWNJ> characters.
+
+=item *
+
+C<\X> will now always match at least one character, including an initial mark.
+Marks generally come after a base character, but it is possible in Unicode to
+have them in isolation, and C<\X> will now handle that case, for example at the
+beginning of a line or after a C<ZWSP>.  And this is the part where C<\X>
+doesn't match the things that it used to that don't make sense.  Formerly, for
+example, you could have the nonsensical case of an accented LF.
+
+=item *
+
+C<\X> will now match a (Korean) Hangul syllable sequence, and the Thai and Lao
+exception cases.
+
+=back
+
+Otherwise, this change should be transparent for the non-affected languages.
 
 C<\p{...}> matches using the Canonical_Combining_Class property were
 completely broken in previous Perls.  This is now fixed.
 
-In previous Perls, the Unicode Decomposition_Type=Compat property and a
+In previous Perls, the Unicode C<Decomposition_Type=Compat> property and a
 Perl extension had the same name, which led to neither matching all the
 correct values (with more than 100 mistakes in one, and several thousand
 in the other).  The Perl extension has now been renamed to be
-Decomposition_Type=Noncanonical (short: dt=noncanon).  It has the same
+C<Decomposition_Type=Noncanonical> (short: C<dt=noncanon>).  It has the same
 meaning as was previously intended, namely the union of all the
-non-canonical Decomposition types, with Unicode Compat being just one of
+non-canonical Decomposition types, with Unicode C<Compat> being just one of
 those.
 
 C<\p{Uppercase}> and C<\p{Lowercase}> have been brought into line with the
@@ -99,25 +113,25 @@ similar, plus Bi-directional controls.
 
 C<\p{Alpha}> now matches the same characters as C<\p{Alphabetic}>.  The Perl
 definition included a number of things that aren't really alpha (all
-marks), while omitting many that were.  The Unicode definition is
-clearly better, so we are switching to it.  As a direct consequence, the
+marks), while omitting many that were.  As a direct consequence, the
 definitions of C<\p{Alnum}> and C<\p{Word}> which depend on Alpha also change.
 
 C<\p{Word}> also now doesn't match certain characters it wasn't supposed
 to, such as fractions.
 
-C<\p{Print}> no longer matches the line control characters: tab, lf, cr,
-ff, vt, and nel.  This brings it in line with the documentation.
+C<\p{Print}> no longer matches the line control characters: Tab, LF, CR,
+FF, VT, and NEL.  This brings it in line with the documentation.
 
-\p{Decomposition_Type=Canonical} now includes the Hangul syllables
+C<\p{Decomposition_Type=Canonical}> now includes the Hangul syllables.
 
 The Numeric type property has been extended to include the Unihan
 characters.
 
-There is a new Perl extension, the 'Present_In', or simply 'In'
+There is a new Perl extension, the 'Present_In', or simply 'In',
 property.  This is an extension of the Unicode Age property, but
-C<\p{In=5.0}> matches any code point whose usage has been determined as of
-Unicode version 5.0.  The C<\p{Age=5.0}> only matches code points added in 5.0.
+C<\p{In=5.0}> matches any code point whose usage has been determined
+I<as of> Unicode version 5.0.  The C<\p{Age=5.0}> only matches code points
+added in I<precisely> version 5.0.
 
 A number of properties did not have the correct values for unassigned
 code points.  This is now fixed.  The affected properties are
@@ -125,15 +139,14 @@ Bidi_Class, East_Asian_Width, Joining_Type, Decomposition_Type,
 Hangul_Syllable_Type, Numeric_Type, and Line_Break.
 
 The Default_Ignorable_Code_Point, ID_Continue, and ID_Start properties
-have been updated to their current definitions.
+have been updated to their current Unicode definitions.
 
 Certain properties that are supposed to be Unicode internal-only were
 erroneously exposed by previous Perls.  Use of these in regular
-expressions will now generate a deprecated warning message, if those
-warnings are enabled.  The properties are: Other_Alphabetic,
-Other_Default_Ignorable_Code_Point, Other_Grapheme_Extend,
-Other_ID_Continue, Other_ID_Start, Other_Lowercase, Other_Math, and
-Other_Uppercase.
+expressions will now generate, if enabled, a deprecated warning message.
+The properties are: Other_Alphabetic, Other_Default_Ignorable_Code_Point,
+Other_Grapheme_Extend, Other_ID_Continue, Other_ID_Start, Other_Lowercase,
+Other_Math, and Other_Uppercase.
 
 An installation can now fairly easily change which Unicode properties
 Perl understands.  As mentioned above, certain properties are by default
@@ -141,603 +154,409 @@ turned off.  These include all the Unihan properties (which should be
 accessible via the CPAN module Unicode::Unihan) and any deprecated or
 Unicode internal-only property that Perl has never exposed.
 
-The files in the To directory are now more clearly marked as being
-stable, directly usable by applications.  New hash entries in them give
-the format of the normal entries which allows for easier machine
-parsing.  Perl can generate files in this directory for any property,
-though most are suppressed.  An installation can choose to change which
-get written.   Instructions are in L<perluniprops>.
+The generated files in the C<lib/unicore/To> directory are now more
+clearly marked as being stable, directly usable by applications.
+New hash entries in them give the format of the normal entries,
+which allows for easier machine parsing.  Perl can generate files
+in this directory for any property, though most are suppressed.  An
+installation can choose to change which get written.  Instructions
+are in L<perluniprops>.
 
-=head1 New Platforms
+=head2 Regular Expressions
 
-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.
+U+0FFFF is now a legal character in regular expressions.
 
 =head1 Modules and Pragmata
 
-XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
-go here, in a list ordered by distribution name. Minimally it should be the
-module version, but it's more useful to the end user to give a paragraph's
-summary of the module's changes. In an ideal world, dual-life modules would
-have a F<Changes> file that could be cribbed.
-
-=head2 New Modules and Pragmata
+=head2 Pragmata Changes
 
 =over 4
 
-=item C<XXX>
+=item C<constant>
 
-XXX
+Upgraded from version 1.19 to 1.20.
 
-=back
+=item C<diagnostics>
 
-=head2 Pragmata Changes
+This pragma no longer suppresses C<Use of uninitialized value in range (or flip)> warnings. [perl #71204]
 
-=over 4
+=item C<feature>
 
-=item C<XXX>
+Upgraded from 1.13 to 1.14.  Added the C<unicode_strings> feature:
 
-XXX
+    use feature "unicode_strings";
 
-=back
+This pragma turns on Unicode semantics for the case-changing operations
+(uc/lc/ucfirst/lcfirst) on strings that don't have the internal UTF-8 flag set,
+but that contain single-byte characters between 128 and 255.
 
-=head2 Updated Modules
+=item C<legacy>
 
-=over 4
+The experimental C<legacy> pragma, introduced in 5.11.2, has been removed,
+and its functionality replaced by the new feature pragma, C<use feature
+"unicode_strings">.
 
-=item C<XXX>
+=item C<threads>
 
-    Updated CPANPLUS to cpan release 0.90
-    Bring up ExtUtils::MakeMaker to 6.56 - no functional changes from 6.55_03
-    Upgrade to threads 1.75
+Upgraded from version 1.74 to 1.75.
 
-    Import CPAN.pm 1.94_53 from CPAN
+=item C<warnings>
 
-    Updated Module::Build to 0.35_15
-    
-    Update Cwd / PathTools to 3.31 to get us a non-devel version number based on a chat with Steffen. No code changes.
+Upgraded from 1.07 to 1.08.  Added new C<warnings::fatal_enabled()> function.
 
-    Updated to Pod::Simple 3.11 from CPAN [perl #71004]
+=back
 
+=head2 Updated Modules
 
-    Update Archive::Extract to cpan version 0.36
+=over 4
 
-XXX
+=item C<Archive::Extract>
 
-=back
+Upgraded from version 0.34 to 0.36.
 
-=head1 Utility Changes
+=item C<CPAN>
 
-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>.
+Upgraded from version 1.94_51 to 1.94_5301, which is 1.94_53 on CPAN 
+plus some local fixes for bleadperl.
 
-=over 4
+Includes better bzip2 support, improved FirstTime experience with
+auto-selection of CPAN mirrors, proper handling of modules removed from the
+Perl core, and an updated 'cpan' utility script
 
-=item F<XXX>
+=item C<CPANPLUS>
 
-XXX
+Upgraded from version 0.89_09 to 0.90.
 
-    Perlbug no longer reports "Message sent" when it hasn't actually sent the message
-=back
+=item C<Encode>
 
-=head1 New Documentation
+Upgraded from version 2.38 to 2.39.
 
-XXX Changes which create B<new> files in F<pod/> go here.
+=item C<ExtUtils::MakeMaker>
 
-=over 4
+Upgraded from version 6.55_02 to 6.56.  Adds new BUILD_REQUIRES key to
+indicate build-only prerequisites.  Also adds support for
+mingw64 and the new "package NAME VERSION" syntax.
 
-=item L<XXX>
+=item C<File::Path>
 
-XXX
+Upgraded from version 2.08 to 2.08_01.
 
-=back
+=item C<Module::Build>
 
-=head1 Changes to Existing Documentation
+Upgraded from version 0.35_09 to 0.36.  Compared to 0.35, this version has a
+new 'installdeps' action, supports the PERL_MB_OPT environment variable, adds a
+'share_dir' property for L<File::ShareDir> support, support the "package NAME
+VERSION" syntax and has many other enhancements and bug fixes.  The
+'passthrough' style of Module::Build::Compat has been deprecated.
 
-XXX Changes which significantly change existing files in F<pod/> go here.
-Any changes to F<pod/perldiag.pod> should go in L</New or Changed Diagnostics>.
+=item C<Module::CoreList>
 
+Upgraded from version 2.23 to 2.24.
 
-    legalize =begin foo bar
+=item C<POSIX>
 
-    more aggressively deprecate L<section> and L<"section">
+Upgraded from version 1.18 to 1.19. Error codes for C<getaddrinfo()> and C<getnameinfo()> are now
+available.
 
-    remove prohibition against L<text|href>
+=item C<Pod::Simple>
 
-    Document if.pm in perlfunc
+Upgraded from version 3.10 to 3.13.
 
+=item C<Safe>
 
+Upgraded from version 2.19 to 2.20.
 
-=head1 Performance Enhancements
+=back
 
-XXX Changes which enhance performance without changing behaviour go here. There
-may well be none in a stable release.
+=head1 Utility Changes
 
 =over 4
 
-=item *
+=item F<perlbug>
 
-XXX
+No longer reports "Message sent" when it hasn't actually sent the message
 
 =back
 
-=head1 Installation and Configuration Improvements
+=head1 Changes to Existing Documentation
 
-XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
-go here.
+The Pod specification (L<perlpodspec>) has been updated to bring the
+specification in line with modern usage already supported by most Pod systems.
+A parameter string may now follow the format name in a "begin/end" region.
+Links to URIs with a text description are now allowed.  The usage of
+C<LE<lt>"section"E<gt>> has been marked as deprecated.
 
-=head2 Configuration improvements
+L<if.pm|if> has been documented in L<perlfunc/use> as a means to get
+conditional loading of modules despite the implicit BEGIN block around C<use>.
 
-XXX
 
-=head2 Compilation improvements
 
-    Make distclean work again
-XXX
+=head1 Installation and Configuration Improvements
 
-=head2 Platform Specific Changes
+=head2 Testing improvements
 
 =over 4
 
-=item Win32
-
-
-=item OpenVMS
+=item It's now possible to override C<PERL5OPT> and friends in F<t/TEST>
 
 =back
 
-=head1 Selected Bug Fixes
+=head2 Platform Specific Changes
 
-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>.
+=over 4
+
+=item Win32
 
 =over 4
 
 =item *
 
-XXX
+Always add a manifest resource to C<perl.exe> to specify the <trustInfo>
+settings for Windows Vista and later.  Without this setting Windows
+will treat C<perl.exe> as a legacy application and apply various
+heuristics like redirecting access to protected file system areas
+(like the "Program Files" folder) to the users "VirtualStore"
+instead of generating a proper "permission denied" error.
 
-=back
+For VC8 and VC9 this manifest setting is automatically generated by
+the compiler/linker (together with the binding information for their
+respective runtime libraries); for all other compilers we need to
+embed the manifest resource explicitly in the external resource file.
 
-=head1 New or Changed Diagnostics
+This change also requests the Microsoft Common-Controls version 6.0
+(themed controls introduced in Windows XP) via the dependency list
+in the assembly manifest.  For VC8 and VC9 this is specified using the
+C</manifestdependency> linker commandline option instead.
 
-XXX New or changed warnings emitted by the core's C<C> code go here.
+=back
 
-=over 4
+=item cygwin
 
-=item C<XXX>
+=over 4
 
-    Make split warn in void context
-XXX
+=item Enable IPv6 support on cygwin 1.7 and newer
 
 =back
 
-=head1 Changed Internals
-
-XXX Changes which affect the interface available to C<XS> code go here.
+=item OpenVMS
 
 =over 4
 
-=item *
+=item Make -UDEBUGGING the default on VMS for 5.12.0.
 
-XXX
+Like it has been everywhere else for ages and ages.  Also make
+command-line selection of -UDEBUGGING and -DDEBUGGING work in
+configure.com; before the only way to turn it off was by saying
+no in answer to the interactive question.
 
 =back
 
-=head1 New Tests
+=back
 
-XXX Changes which create B<new> files in F<t/> go here. Changes to
-existing files in F<t/> aren't worth summarising, although the bugs that
-they represent may be.
+=head1 Selected Bug Fixes
 
 =over 4
 
-=item F<XXX>
-
-XXX
+=item *
 
-=back
+Ensure that pp_qr returns a new regexp SV each time. Resolves RT #69852.
 
-=head1 Known Problems
+Instead of returning a(nother) reference to the (pre-compiled) regexp in the
+optree, use reg_temp_copy() to create a copy of it, and return a reference to
+that. This resolves issues about Regexp::DESTROY not being called in a timely
+fashion (the original bug tracked by RT #69852), as well as bugs related to
+blessing regexps, and of assigning to regexps, as described in correspondence
+added to the ticket.
 
-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).
+It transpires that we also need to undo the SvPVX() sharing when ithreads
+cloning a Regexp SV, because mother_re is set to NULL, instead of a cloned
+copy of the mother_re. This change might fix bugs with regexps and threads in
+certain other situations, but as yet neither tests nor bug reports have
+indicated any problems, so it might not actually be an edge case that it's
+possible to reach.
 
-This is a list of some significant unfixed bugs, which are regressions
-from either 5.11.3 or 5.11.3.
+=item  *
 
-=over 4
+Several compilation errors and segfaults when perl was built with C<-Dmad> were fixed.
 
 =item *
 
-XXX
-
-=back
-
-=head1 Deprecations
-
-XXX Add any new known deprecations here.
+Fixes for lexer API changes in 5.11.2 which broke NYTProf's savesrc option.
 
-The following items are now deprecated.
+=item *
 
-=over 4
+F<-t> should only return TRUE for file handles connected to a TTY
 
-=item Use of "goto" to jump into a construct is deprecated
+The Microsoft C version of isatty() returns TRUE for all
+character mode devices, including the /dev/null style "nul"
+device and printers like "lpt1".
 
-Using C<goto> to jump from an outer scope into an inner
-scope is now deprecated. This rare use case was causing
-problems in the implementation of scopes.
+=item *
 
-=back
+Fixed a regression caused by commit fafafbaf which caused a panic during parameter passing [perl #70171]
 
-=head1 Platform Specific Notes
 
-XXX Any changes specific to a particular platform. VMS and Win32 are the usual
-stars here. It's probably best to group changes under the same section layout
-as the main perldelta
+=item *
 
-=head1 Obituary
+On systems which in-place edits without backup files, -i'*' now works as the documentation says it does [perl #70802]
 
-XXX If any significant core contributor has died, we've added a short obituary
-here.
+=item *
 
-=head1 Acknowledgements
+Saving and restoring magic flags no longer loses readonly flag.
 
-XXX The list of people to thank goes here.
+=item *
 
+The malformed syntax C<grep EXPR LIST> (note the missing comma) no longer
+causes abrupt and total failure.
 
-=head1 Reporting Bugs
+=item *
 
-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.
+Regular expressions compiled with C<qr{}> literals properly set C<$'> when
+matching again.
 
-If you believe you have an unreported bug, please run the B<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.
+=item *
 
-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.
+Using named subroutines with C<sort> should no longer lead to bus errors [perl
+#71076]
 
-=head1 SEE ALSO
+=item *
 
-The F<Changes> file for an explanation of how to view exhaustive details
-on what changed.
+Numerous bugfixes catch small issues caused by the recently-added Lexer API.
 
-The F<INSTALL> file for how to build Perl.
+=item *
 
-The F<README> file for general stuff.
+Smart match against C<@_> sometimes gave false negatives negatives. [perl #71078]
 
-The F<Artistic> and F<Copying> files for copyright information.
+=item *
 
-=cut
+C<$@> may now be assigned a read-only value (without error or busting the stack).
 
+=item *
 
+C<sort> called recursively from within an active comparison subroutine no longer causes a bus error if run multiple times. [perl #71076]
 
+=back
 
-All changes through commit b4178430270dbe109e7609d0b50d6d54bf9e95d8
-One "triage" pass done.
+=head1 New or Changed Diagnostics
 
-A second triage pass is still needed to remove unimportant changes
-
-commit 9307c420fad2f6f5bd314f9ed66dd53288703e09
-Author: Jan Dubois <jand@activestate.com>
-Date:   Thu Dec 17 18:28:16 2009 -0800
-
-    Export PL_curinterp symbol for MULTIPLICITY without USE_ITHREADS
-    
-    This is necessary for XS extensions that define PERL_CORE.  In that
-    situation PERL_GET_CONTEXT will resolve to PL_curinterp, which is
-    normally not exported (extensions call Perl_Gcurinterp_ptr() to get a
-    pointer to PL_curinterp instead). With USE_ITHREADS defined
-    PERL_GET_CONTEXT will expand to Perl_get_context() even inside the
-    core because the context needs to be fetched from threadlocal storage.
+=over 4
 
-commit 8703a9a4fd75723318bc4ba1afc42a215806f2d1
+=item *
 
-    Correct some #ifdef USE_ITHREADS / USE_MULTI 
+C<split> now warns when called in void context
 
-Author: Jan Dubois <jand@activestate.com>
-Date:   Wed Dec 16 15:42:19 2009 -0800
 
-    -t should only return TRUE for file handles connected to a TTY
-    
-    The Microsoft C version of isatty() returns TRUE for all
-    character mode devices, including the /dev/null style "nul"
-    device and printers like "lpt1".
-    
-    The included test has only been tested on Windows and Linux;
-    the device names for OS/2 and VMS are just best guesses...
+=item *
 
-    
-commit 2574563ed1cc89a9149d4a253b94199eab5bdf71
-Author: Tim Bunce <Tim.Bunce@pobox.com>
-Date:   Tue Dec 15 23:04:11 2009 +0000
+C<printf>-style functions called with too few arguments will now issue the warning C<"Missing argument in %s"> [perl #71000] 
 
-    Allow override of PERL5OPT etc in t/TEST
-
-commit 6a158b577769363e3a34f3dcb7321a0e933d3353
-Author: Rafael Garcia-Suarez <rgs@consttype.org>
-Date:   Wed Dec 16 00:04:34 2009 +0100
 
-    Don't make C<use legacy> die on unknown legacy names
-    
-    So we can use C<use legacy "qubits"> to avoid the new "qubit" behaviour,
-    without worrying about perls that didn't have qubit support at all. :)
+=back
 
-commit 0f907b96d618c97cd2e020841a70ae037954a616
+=head1 New Tests
 
-    [perl #70171] 5.10.0 -> 5.10.1 Regression in fafafbaf70 (Big slowdown in 5.10 @_ parameter passing)
-    
-    In this case my %x = %$x assigns a hash to itself. This causes the
-    hv_clear in pp_aassign to wipe away the hash before it can be copied.
-    The â\80\98panic: attempt to copy freed scalarâ\80\99 error is triggered by this
-    line, which copies the value:
-        sv_setsv(tmpstr,*relem);        /* value */
-    
-    The solution is to make sure the OPpASSIGN_COMMON flag is on in such
-    cases, so that pp_aassign copies everything before doing the assignment.
+Many modules updated from CPAN incorporate new tests.
 
-commit 2ab54efd6265713df5cd4bd0927024245675c1c2
-Author: Michael Breen <perl@mbreen.com>
+=over 4
 
-    fix bug 67156: overload: nomethod(..., '!') return value inverted
-
-commit 412147f664b7f5805591ad996d7e5a9e70b3d80f
-
-    [perl #71204] diagnostics.pm suppresses 'Use of uninitialized value in range (or flip)' warning
-    
-    (and bump version of diagnostics.pm)
+=item t/comp/final_line_num.t
 
-commit 2653dd3c22bd18d7877da53d515dc31c46d8fbea
-Author: Reini Urban <rurban@x-ray.at>
-Date:   Mon Dec 14 13:04:37 2009 +0100
-
-    cygwin IPv6 since 1.7
-    
-    Use g++ as default linker
-    IPv6 support for 1.7
+See if line numbers are correct at EOF
 
-commit 69dc4b30f4725ad5f212d45d3c856ac1caaacf17
-Author: Father Chrysostomos <sprout@cpan.org>
-Date:   Mon Dec 14 12:19:35 2009 +0100
+=item t/comp/form_scope.t
 
-    [perl #70764] $' fails to initialized for pre-compiled regular expression matches
-    
-    The match vars are associated with the regexp that last matched
-    successfully. In the case of $str =~ $qr or /$qr/, since the $qr could
-    be used in multiple scopes that need their own sets of match vars, the
-    $qr is cloned by Perl_reg_temp_copy as of change 30677/28d8d7f. This
-    happens in pp_regcomp before pp_match has stringified the LHS, hence the
-    bug. In short, /$gror/ is not equivalent to
-    ($which = !$which) ? /$gror/ : /$gror/, which is weird.
-    
-Author: Reini Urban <rurban@x-ray.at>
-Date:   Sun Dec 13 08:06:43 2009 +0100
-
-    Eliminate OP_SETSTATE from cop.h header
-    
-    It had been added with change 3728 to track linenumbers in
-    optimized else, disabled by change 4309,
-    and removed with change 33072.
-    
-    Bump copyright, latest change was "Fix MULTICALL in List-Util" 2009-03-07
-    with commit 1bbbfc50
-
-
-    Fix for [perl #70910] wrong line number in syntax error message
-
-    Document config_args limitations reported in [perl #70912]
-
-    proper error on "grep $x (1,2,3)". Solves [perl #37314]
-
-commit 1cb985b013ea71b82afbc114ed06f94d451f5e04
-
-    Throw away uncleanable scopes when exiting a pseudo-forked process.
-    
-    Commit adab9969 tried to clean up those additional scopes, but failed
-    because some of the memory was allocated from a different pool. To
-    avoid triggering the assert() in perl_destruct() this change instead
-    moves the one remaining scope back to the root of the stack, effectively
-    discarding the additional frames without any further processing.
-
-commit 8a27a13e89107aaf68c0748b68ee71fbd86d774b
-Author: Father Chrysostomos <sprout@cpan.org>
-Date:   Mon Dec 7 14:58:40 2009 +0100
-
-    [perl #71076] sort with active sub (5.10 regression)
-    
-    One of the tests in sort.t causes a bus error (or sometimes â\80\98Undefined
-    subroutine calledâ\80\99) if run multiple times. This is because sort
-    decreases the refcount of an active sub used as a comparison routine.
-    
-commit 69c3dccf5322a59cb855347c04712ba11b65328f
-
-    Fix [perl #71078] Smart match against @_ gives false negatives
-    
-    @_ can contain NULLs for undefined elements
-
-    [perl #71000] Wrong variable name in warning ; Add a new warning "Missing argument in %s"
-
-
-    preserve readonly flag when saving and restoring magic flags
-
-commit c9930541bfa04399c3b648e83c9b750cee1154fb
-
-    [perl #70802] -i'*' refuses to work
-
-commit c2123ae380a372d506d1b6938667bd785fd8728b
-Author: Nicholas Clark <nick@ccl4.org>
-Date:   Wed Dec 2 16:01:10 2009 +0000
-
-    Ensure that pp_qr returns a new regexp SV each time. Resolves RT #69852.
-    
-    Instead of returning a(nother) reference to the (pre-compiled) regexp in the
-    optree, use reg_temp_copy() to create a copy of it, and return a reference to
-    that. This resolves issues about Regexp::DESTROY not being called in a timely
-    fashion (the original bug tracked by RT #69852), as well as bugs related to
-    blessing regexps, and of assigning to regexps, as described in correspondence
-    added to the ticket.
-    
-    It transpires that we also need to undo the SvPVX() sharing when ithreads
-    cloning a Regexp SV, because mother_re is set to NULL, instead of a cloned
-    copy of the mother_re. This change might fix bugs with regexps and threads in
-    certain other situations, but as yet neither tests nor bug reports have
-    indicated any problems, so it might not actually be an edge case that it's
-    possible to reach.
-
-commit adab996997d7ef1b54d382f5ab4304f438cd1dd0
-
-    Cleanup all scopes before exiting a pseudo-forked process.
-    
-    perl_destruct() contains an assertion that the scope stack
-    is empty.  The remaining scopes are due to fork() being
-    called from within a BEGIN block.
+See if format scoping works
 
-=item *
+=item t/comp/line_debug.t
 
-Improvements to fix C++ compilation errors when -Dmad is defined
+See if @{"_<$file"} works
 
-Fixes for -Dmad: double free or corruption
+=item t/op/filetest_t.t
 
+See if -t file test works
 
-commit 576b33a19ccaf98d4dfe201d529c55c3747f0cb6
+=item t/op/qr.t
 
-    [rt.cpan.org #51574] Safe.pm sort {} bug accessing $a and $b with -Dusethreads
+See if qr works
 
-commit ee6ba15dedda3e88eb66891eaf387c00a4c0a2fb
+=item t/op/utf8cache.t
 
-    Fix -DPERL_NO_UTF16_FILTER
+Tests malfunctions of utf8 cache
 
-commit dfd167e94af611f6248e804cb228b35ca4123bd6
+=item t/re/uniprops.t
 
-    Handle $@ being assigned a read-only value (without error or busting the stack).
-    
-    Discovered whilst investigating RT #70862.
+Test unicode \p{} regex constructs
 
-commit f5fa9033b8c1fdcbd7710850b3b0380d6b937853
+=back
 
-    Fix RT #70862 by converting ERRSV to GvSVn() to ensure a non-NULL GvSV().
+=head1 Deprecations
 
-commit ff868e665bf85a829dc47bfa1243b26d4367cacd
+The following items are now deprecated.
 
-    Add error codes for getaddrinfo() and getnameinfo()
+=over 4
 
-commit 17cc9359ea8ee1b546aa067b91362160e3c1e1ee
-Author: Zefram <zefram@fysh.org>
-Date:   Wed Nov 25 22:17:52 2009 +0000
+=item Use of "goto" to jump into a construct is deprecated
 
-    perl-5.11.2 breaks NYTProf savesrc option (Lexer API suspected)
-    
-    Tim Bunce wrote:
-    >The primary issue is the off-by-one error in the array indexing.
-    
-    There's a bit more to it than that.  The indexing was off-by-one for
-    *some* places that process a new line, but correct for others, so the
-    saved source as a whole was mangled rather than simply offset.  Also,
-    there were some redundant calls to update_debugger_info(), so some lines
-    got saved twice, in some cases off-by-one for one saving and not for
-    the other.  The saved source is, therefore, hopelessly broken in 5.11.2.
-    
-    Attached patch fixes the source saving.  Includes a new test, which works
-    through all reachable places that source lines get saved.  This should
-    close RT #70804.
-    
-    -zefram
+Using C<goto> to jump from an outer scope into an inner
+scope is now deprecated. This rare use case was causing
+problems in the implementation of scopes.
 
-commit ec983580254c32fd44889fde43973ac5dd74257b
+=back
 
-    Add code and starting perldoc for warnings::fatal_enabled.
-    
-    This is an analog for warnings::enabled, except it tests whether the
-    given category has been set fatal using "use warnings FATAL => foo".
-    This is mostly for symmetry.
-    
-    Assumes that the fatal bit for a category will have an offset one higher
-    than the regular bit for the category, because otherwise much rewriting
-    of __chk would be required.
+=head1 Acknowledgements
 
-commit 6b1226db4432ba7f08619ebe4c5365f692dcbbf7
+Perl 5.11.3 represents approximately one month of development since
+Perl 5.11.2 and contains 61407 lines of changes across 396 files
+from 40 authors and committers:
 
-    Add missing library to VC++ section of Win32 dmake makefile
+Abigail, Alex Davies, Alexandr Ciornii, Andrew Rodland, Andy
+Dougherty, Bram, brian d foy, Chip Salzenberg, Chris Williams, Craig
+A. Berry, Daniel Frederick Crisman, David Golden, Dennis Kaarsemaker,
+Eric Brine, Father Chrysostomos, Gene Sullivan, Gerard Goossen, H.
+Merijn Brand, Hugo van der Sanden, Jan Dubois, Jerry D. Hedden,
+Jesse Vincent, Jim Cromie, Karl Williamson, Leon Brocard, Max
+Maischein, Michael Breen, Moritz Lenz, Nicholas Clark, Rafael
+Garcia-Suarez, Reini Urban, Ricardo Signes, Stepan Kasal, Steve
+Hay, Steve Peters, Tim Bunce, Tony Cook, Vincent Pit and Zefram.
 
-commit 5e8632492467a144fabe819ac1f4206ecde8d14d
+Many of the changes included in this version originated in the CPAN
+modules included in Perl's core. We're grateful to the entire CPAN
+community for helping Perl to flourish.
 
-    Avoid circularity in $(LINK_FLAGS) definition in Win32 dmake makefile
+=head1 Reporting Bugs
 
-commit dbb3120a48c1483138e02a3fadf359e5b664ae11
+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.
 
-    Fix code-before-declaration error on Win32 with recent VC++ compilers
-    
-    (We only #define SET_INVALID_PARAMETER_HANDLER for VC2005 and later, so
-    users of earlier compilers will not have seen this error)
+If you believe you have an unreported bug, please run the B<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.
 
-commit 61fc5122f0d8a509834282b8ecb3252d2e4c9f5d
+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.
 
-    Make unicode semantics the default
+=head1 SEE ALSO
 
-    *****************
+The F<Changes> file for an explanation of how to view exhaustive details
+on what changed.
 
-commit 021f53de09926928546378b3552f9240c9241dde
-Author: Gerard Goossen <gerard@ggoossen.net>
-Date:   Mon Nov 16 13:58:24 2009 +0100
+The F<INSTALL> file for how to build Perl.
 
-    Force OP_REQUIRE to scalar context at the end of ck_require and don't let it become void context. Fixes problem with require not always being in scalar context.
+The F<README> file for general stuff.
 
-commit 6a0e50422a84b53e998825128c56791913cd03aa
-Author: Craig A. Berry <craigberry@mac.com>
-Date:   Sat Nov 21 11:17:38 2009 -0600
+The F<Artistic> and F<Copying> files for copyright information.
 
-    Make -UDEBUGGING the default on VMS for 5.12.0.
-    
-    Like it has been everywhere else for ages and ages.  Also make
-    command-line selection of -UDEBUGGING and -DDEBUGGING work in
-    configure.com; before the only way to turn it off was by saying
-    no in answer to the interactive question.
+=cut
 
-commit 4ebea3c679ca93eb90d62be76bf8eb3cd7d14160
-Author: Jan Dubois <jand@activestate.com>
-Date:   Thu Apr 30 16:53:20 2009 -0700
 
-    Always add a manifest resource to perl.exe to specify the <trustInfo>
-    settings for Windows Vista and later.  Without this setting Windows
-    will treat perl.exe as a legacy application and apply various
-    heuristics like redirecting access to protected file system areas
-    (like the "Program Files" folder) to the users "VirtualStore"
-    instead of generating a proper "permission denied" error.
-    
-    For VC8 and VC9 this manifest setting is automatically generated by
-    the compiler/linker (together with the binding information for their
-    respective runtime libraries); for all other compilers we need to
-    embed the manifest resource explicitly in the external resource file.
-    
-    This change also requests the Microsoft Common-Controls version 6.0
-    (themed controls introduced in Windows XP) via the dependency list
-    in the assembly manifest.  For VC8 and VC9 this is specified using the
-    /manifestdependency linker commandline option instead.
-
-commit 51393fc07355ffd0a4b6b212fd676ee37de23e09
-
-    File::Find was not resolving paths of the form "/..////../" correctly.
-    Fixed by adding a quantifier to the substitution parameter in
-    contract_name().
-
-commit 31c9a3ace4f559b79a21319b8903e92f53b44868
-Author: Nicholas Clark <nick@ccl4.org>
-Date:   Fri Nov 20 10:23:54 2009 +0000
-
-    Always bless filehandles into IO::Handle:: - don't try for FileHandle:: first.