See L<charnames> for details on all these changes.
+=head3 New warnings categories for problematic (non-)Unicode code points.
+
+Three new warnings subcategories of "utf8" have been added. These
+allow you to turn off some "utf8" warnings, while allowing
+others 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.
+
=head3 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
+However, unless utf8 or the corresponding sub-category (see previous
+item) 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
them will work the same as for the non-legal Unicode code points, as the
Unicode standard says they are illegal for "open interchange".
-=head3 New warnings categories for problematic (non-)Unicode code points.
+=head3 Unicode database files not installed
-Three new warnings subcategories of "utf8" have been added. These
-allow you to turn off some "utf8" warnings, while allowing
-others 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.
+The Unicode database files are no longer installed with Perl. This
+doesn't affect any functionality in Perl and saves significant disk
+space. If you previously were explicitly opening and reading those
+files, you can download them from
+L<http://www.unicode.org/Public/zipped/6.0.0/>.
=head2 Regular Expressions
=head2 Regular Expressions and String Escapes
-=head3 C<\cI<X>>
-
-The backslash-c construct was designed as a way of specifying
-non-printable characters, but there were no restrictions (on ASCII
-platforms) on what the character following the C<c> could be. Now, that
-character must be one of the ASCII characters.
-
=head3 \400-\777
Use of C<\400>-C<\777> in regexes in certain circumstances has given
m/\p{ASCII_Hex_Digit}+/i
could previously match non-ASCII characters because of the Unicode
-matching rules. There were a number of bugs in this feature until an
-earlier release in the 5.13 series. Now this release reverts, and
-removes the feature completely except for the few properties where
-people have come to expect it, namely the ones where casing is an
-integral part of their functionality, such as C<m/\p{Uppercase}/i> and
-C<m/\p{Lowercase}/i>, both of which match the exact same code points,
-namely those matched by C<m/\p{Cased}/i>. Details are in
-L<perlrecharclass/Unicode Properties>.
-
-XXX The mention of ‘until an earlier release in the 5.13 series’ needs to
-change, but I do not fully understand what happened here.
+matching rules (although there were a number of bugs with this). Now
+matching under C</i> gives the same results as non-C</i> matching except
+for those few properties where people have come to expect differences,
+namely the ones where casing is an integral part of their meaning, such
+as C<m/\p{Uppercase}/i> and C<m/\p{Lowercase}/i>, both of which match
+the exact same code points, namely those matched by C<m/\p{Cased}/i>.
+Details are in L<perlrecharclass/Unicode Properties>.
User-defined property handlers that need to match differently under
-C</i> must change to read the new boolean parameter passed to it which is
+C</i> must change to read the new boolean parameter passed to them which is
non-zero if case-insensitive matching is in effect or 0 otherwise. See
L<perluniprops/User-Defined Character Properties>.
Now, a Unicode property match specified in the pattern will indicate
that the pattern is meant for matching according to Unicode rules, the way
-C<\x{}> does.
+C<\N{}> does.
=head3 Regular expressions retain their localeness when interpolated
example, C<< m/foo/sand $bar >> will still be parsed
as C<< m/foo/s and $bar >> but will issue a warning.
+=head2 C<\cI<X>>
+
+The backslash-c construct was designed as a way of specifying
+non-printable characters, but there were no restrictions (on ASCII
+platforms) on what the character following the C<c> could be. Now,
+a deprecation warning is raised if that character isn't an ASCII character.
+Also, a deprecation warning is raised for C<"\c{"> (which is the same
+as simply saying C<";">).
+
+=head2 C<"\b{"> and C<"\B{">
+
+In regular expressions, a literal C<"{"> immediately following a C<"\b">
+(not in a bracketed character class) or a C<"\B{"> is now deprecated
+to allow for its future use by Perl itself.
+
=head2 Deprecation warning added for deprecated-in-core .pl libs
This is a mandatory warning, not obeying -X or lexical warning bits.
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.
-
-XXX What module is that?
+It is planned to remove this feature in Perl 5.16. Instead use the CPAN module
+L<Unicode::Casing>, which provides improved functionality.
=head2 Deprecated modules
=item *
-C<Module::Metadata> 1.000003 has been added as a dual-life module. It gathers
+C<Module::Metadata> 1.000004 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
=back
-=head2 Selected Module and Pragma Updates
+=head2 Updated Modules and Pragma
=over 4
=item *
-C<ptar> has a new option to allow safe
+The C<ptar> utility has a new option to allow safe
creation of tarballs without world-writable files on Windows, allowing those
archives to be uploaded to CPAN.
=item *
-C<CPAN> has been upgraded from version 1.94_56 to 1.9600.-
+C<CPAN> has been upgraded from version 1.94_56 to 1.9600.
Major highlights:
=item *
-C<IPC::Cmd> has been upgraded from version 0.54 to 0.68.
+C<IPC::Cmd> has been upgraded from version 0.54 to 0.70.
Resolves an issue with splitting Win32 command lines. An argument
consisting of the single character "0" used to be omitted (CPAN RT #62961).
=item *
-C<Locale::Maketext> has been upgraded from version 1.14 to 1.17.
+C<IPC::SysV> has been upgraded from version 2.01 to 2.03.
+
+=item *
+
+C<lib> has been upgraded from version 0.62 to 0.63.
+
+=item *
+
+C<Locale::Maketext> has been upgraded from version 1.14 to 1.19.
Locale::Maketext now supports external caches.
=item *
+C<Log::Message> has been upgraded from version 0.02 to 0.04.
+
+=item *
+
+C<Log::Message::Simple> has been upgraded from version 0.06 to 0.08.
+
+=item *
+
C<Math::BigInt> has been upgraded from version 1.89_01 to 1.994.
This fixes, among other things, incorrect results when computing binomial
=item *
+C<Math::BigInt::FastCalc> has been upgraded from version 0.19 to 0.28.
+
+=item *
+
+C<Math::BigRat> has been upgraded from version 0.24 to 0.26_02.
+
+=item *
+
+C<Memoize> has been upgraded from version 1.01_03 to 1.02.
+
+=item *
+
C<MIME::Base64> has been upgraded from 3.08 to 3.13.
Includes new functions to calculate the length of encoded and decoded
=item *
-C<Module::CoreList> has been upgraded from version 2.29 to XXX.
+C<Module::CoreList> has been upgraded from version 2.29 to 2.47.
Besides listing the updated core modules of this release, it also stops listing
the C<Filespec> module. That module never existed in core. The scripts
=item *
-C<NDBM_File> and C<ODBM_File> have been upgraded from 1.08 to 1.11, and
-from 1.08 to 1.09, respectively.
+C<Module::Load> has been upgraded from version 0.16 to 0.18.
+
+=item *
+
+C<Module::Load::Conditional> has been upgraded from version 0.34 to 0.44.
+
+=item *
+
+C<NDBM_File> has been upgraded from version 1.08 to 1.11.
+
+This fixes a memory leak when DBM filters are used.
+
+=item *
+
+C<Net::Ping> has been upgraded from version 2.36 to 2.38.
+
+=item *
+
+C<NEXT> has been upgraded from version 0.64 to 0.65.
+
+=item *
+
+C<Object::Accessor> has been upgraded from version 0.36 to 0.38.
+
+=item *
+
+C<ODBM_File> have been upgraded from version 1.07 to 1.10.
This fixes a memory leak when DBM filters are used.
=item *
-C<overload> has been upgraded from 1.11 to 1.12.
+C<overload> has been upgraded from 1.10 to 1.12.
C<overload::Method> can now handle subroutines that are themselves blessed
into overloaded classes [perl #71998].
=item *
+C<Params::Check> has been upgraded from version 0.26 to 0.28.
+
+=item *
+
+C<parent> has been upgraded from version 0.223 to 0.225.
+
+=item *
+
C<Parse::CPAN::Meta> has been upgraded from version 1.40 to 1.4401.
The latest Parse::CPAN::Meta can now read YAML and JSON files using
=item *
-C<POSIX> has been upgraded from 1.19 to 1.23.
+C<Pod::LaTeX> has been upgraded from version 0.58 to 0.59.
+
+=item *
+
+C<Pod::Perldoc> has been upgraded from version 3.15_02 to 3.15_03.
+
+=item *
+
+C<Pod::Simple> has been upgraded from version 3.13 to 3.16.
+
+=item *
+
+C<POSIX> has been upgraded from 1.19 to 1.24.
It now includes constants for POSIX signal constants.
=item *
+C<Term::ANSIColor> has been upgraded from version 2.02 to 3.00.
+
+=item *
+
+C<Term::UI> has been upgraded from version 0.20 to 0.26.
+
+=item *
+
+C<Test::Harness> has been upgraded from version 3.17 to 3.23.
+
+=item *
+
C<Test::Simple> has been upgraded from version 0.94 to 0.98.
Among many other things, subtests without a C<plan> or C<no_plan> now have an
=item *
+C<Thread::Queue> has been upgraded from version 2.11 to 2.12.
+
+=item *
+
+C<threads> has been upgraded from version 1.75 to 1.83.
+
+=item *
+
+C<threads::shared> has been upgraded from version 1.32 to 1.36.
+
+=item *
+
C<Tie::Hash> has been upgraded from version 1.03 to 1.04.
Calling C<< Tie::Hash-E<gt>TIEHASH() >> used to loop forever. Now it C<croak>s.
=item *
+C<Tie::RefHash> has been upgraded from version 1.38 to 1.39.
+
+=item *
+
+C<Time::HiRes> has been upgraded from version 1.9719 to 1.9721_01.
+
+=item *
+
+C<Time::Local> has been upgraded from version 1.1901_01 to 1.2000.
+
+=item *
+
+C<Time::Piece> has been upgraded from version 1.15_01 to 1.20_01.
+
+=item *
+
C<Unicode::Collate> has been upgraded from version 0.52_01 to 0.73.
Unicode::Collate has been updated to use Unicode 6.0.0.
=item *
+C<Unicode::Normalize> has been upgraded from version 1.03 to 1.10.
+
+=item *
+
C<Unicode::UCD> has been upgraded from version 0.27 to 0.32.
A new function, C<Unicode::UCD::num()>, has been added. This function
=item *
-C<warnings> and C<warnings::register> have been upgraded from version 1.09
-to 1.11 and from version 1.01 to 1.02 respectively.
+C<warnings> has been upgraded from version 1.09 to 1.12.
Calling C<use warnings> without arguments is now significantly more efficient.
+=item *
+
+C<warnings::register> have been upgraded from version 1.01 to 1.02.
+
It is now possible to register warning categories other than the names of
packages using C<warnings::register>. See L<perllexwarn> for more information.
=item *
+C<XSLoader> has been upgraded from version 0.10 to 0.13.
+
+=item *
+
C<VMS::DCLsym> has been upgraded from version 1.03 to 1.05.
Two bugs have been fixed [perl #84086]:
=over
-=item C<Class::ISA>
+=item *
+
+C<Class::ISA> has been removed from the Perl core. Prior version was 0.36.
-=item C<Pod::Plainer>
+=item *
+
+C<Pod::Plainer> has been removed from the Perl core. Prior version was 1.02.
+
+=item *
-=item C<Switch>
+C<Switch> has been removed from the Perl core. Prior version was 2.16.
=back
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
+points to be rejected needs to change to use the new 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
L<perlunicode/Non-character code points>. See also L</Selected Bug Fixes>.
XXX Which bugs in particular? Selected Bug Fixes is too long for this link
-to be meaningful right now.
+to be meaningful right now
+I don't see the bugs in that section currently -- khw
=head2 Deprecated C APIs
=item *
Lvalue subroutines are again able to return copy-on-write scalars. This
-had been broken since version 5.10.0 [perl #75656] (5.12.2).
+had been broken since version 5.10.0 [perl #75656] (5.12.3).
=item *
XXX Many of these have probably already been solved. There are also
unresolved BBC articles linked to #77718 that are awaiting CPAN
releases. These may need to be listed here.
+See also #84444. Enbugger may also need to be listed if there is no new
+release in time (see #82152).
+JJORE/overload-eval-0.08.tar.gz appears to be broken, too. See
+http://www.nntp.perl.org/group/perl.perl5.porters/2010/11/msg165773.html
=over 4