This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Correct the IPC::Cmd version in perldelta
[perl5.git] / pod / perldelta.pod
index 83aef3d..177915a 100644 (file)
@@ -110,12 +110,23 @@ point.
 
 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
@@ -127,15 +138,13 @@ 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".
 
-=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
 
@@ -495,13 +504,6 @@ In addition to the sections that follow, see L</C API Changes>.
 
 =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
@@ -525,20 +527,16 @@ example
  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>.
 
@@ -546,7 +544,7 @@ 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
 
@@ -844,6 +842,21 @@ its modifiers and the following word is deprecated.  For
 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.
@@ -900,11 +913,8 @@ function is used on a handle without an explicit C<*>.
 
 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
 
@@ -1128,7 +1138,7 @@ reading F<META.json> files in CPAN distributions.
 
 =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
@@ -1167,7 +1177,7 @@ prerequisites and version constraints as defined in the L<CPAN::Meta::Spec>.
 
 =back
 
-=head2 Selected Module and Pragma Updates
+=head2 Updated Modules and Pragma
 
 =over 4
 
@@ -1205,7 +1215,7 @@ A bug was fixed regarding the exit code of extract_archive.
 
 =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.
 
@@ -1294,7 +1304,7 @@ It has been updated to use bzip2 1.0.6.
 
 =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:
 
@@ -1504,7 +1514,7 @@ closed or invalid.
 
 =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).
@@ -1523,7 +1533,15 @@ descriptor now works [perl #76474].
 
 =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.
 
@@ -1536,6 +1554,14 @@ messages are not suppressed (CPAN RT #34182).
 
 =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
@@ -1546,6 +1572,18 @@ It also prevents C<sqrt($int)> from crashing under C<use bigrat;>
 
 =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
@@ -1571,7 +1609,7 @@ still generated, as well.
 
 =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
@@ -1580,14 +1618,39 @@ is a core module as of perl 5.8.7.
 
 =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].
@@ -1596,6 +1659,14 @@ The documentation has greatly improved. See L</Documentation> below.
 
 =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
@@ -1610,7 +1681,19 @@ has data to read [perl #78716].
 
 =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.
 
@@ -1672,6 +1755,18 @@ during freezing [perl #80074].
 
 =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
@@ -1686,12 +1781,40 @@ semaphores: C<down_nb> and C<down_force>.
 
 =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.
@@ -1725,6 +1848,10 @@ module to the XS version.
 
 =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
@@ -1788,16 +1915,23 @@ work when exported (5.12.1).
 
 =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]:
@@ -1829,11 +1963,17 @@ needed should be installed from CPAN instead.
 
 =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
 
@@ -2827,7 +2967,7 @@ 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
+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
@@ -2837,7 +2977,8 @@ should be handled, which is now described in
 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
 
@@ -3617,7 +3758,7 @@ eliminates several "scalars leaked" warnings when joining threads.
 =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 *
 
@@ -3907,6 +4048,10 @@ C<call_sv(code, G_EVAL)> is called from an XS destructor has been fixed
 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