This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta entry for 8c8488cd4fce90cb5c03fb3f89e89c05e5275498.
[perl5.git] / pod / perldelta.pod
index fcc69cb..ecb2d62 100644 (file)
@@ -1,15 +1,11 @@
 =encoding utf8
 
 =for comment
-This has been completed up to 4df35a07ff9, except for:
+This has been completed up to 518a985, except for:
 04777d295957ad270188e4debf51b523e07cc5b0
 c565ab54dc649bb62cd4d57149d7b2abb21df5f3
 1c8d11ca3d0ce8bc11562f159b94c2c7e62dea6c
-51698cb360d5bba06e12496ef9c7bf82e3352b71
-0c4d3b5ea916cf640ea163c5a6bcffefade55a1b
-9960802c2b6f4b61c0c7ce718f3ce247a3a13bf1
-2726813d9af5d50f1451663cd931317e7172da50
-8951c461a5079d86be33a432491eda98c24dc397
+1830b3d9c87f8b1473b0a80759846f7a5dccae5a
 I may have missed a few module version bumps.
 
 =head1 NAME
@@ -137,6 +133,13 @@ the C<y///> operator.
 It causes it to perform the substitution on a I<copy> of its operand,
 returning that copy instead of a character count.
 
+=head2 New global variable C<${^GLOBAL_PHASE}>
+
+A new global variable, C<${^GLOBAL_PHASE}>, has been added to allow
+introspection of the current phase of the perl interpreter. It's explained in
+detail in L<perlvar/"${^GLOBAL_PHASE}"> and
+L<perlmod/"BEGIN, UNITCHECK, CHECK, INIT and END">.
+
 =head1 Security
 
 XXX Any security-related notices go here.  In particular, any security
@@ -200,6 +203,16 @@ and maybe others, too, have been fixed.
 See L<http://rt.perl.org/rt3/Public/Bug/Display.html?id=77810> for even
 more detail.
 
+=head2 Clearing stashes
+
+Stash list assignment C<%foo:: = ()> used to make the stash anonymous
+temporarily while it was being emptied. Consequently, any of its
+subroutines referenced elsewhere would become anonymous (showing up as
+"(unknown)" in C<caller>). Now they retain their package names, such that
+C<caller> will return the original sub name if there is still a reference
+to its typeglob, or "foo::__ANON__" otherwise
+L<[perl #79208]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=79208>.
+
 =head1 Deprecations
 
 XXX Any deprecated features, syntax, modules etc. should be listed here.
@@ -219,7 +232,10 @@ may well be none in a stable release.
 
 =item *
 
-XXX
+When an object has many weak references to it, freeing that object
+can under some some circumstances take O(N^2) time to free (where N is the
+number of references). The number of circumstances has been reduced.
+L<[perl #75254]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=75254>.
 
 =back
 
@@ -242,7 +258,7 @@ cribbed.
 =item *
 
 The following modules were added by the C<Unicode::Collate> 
-upgrade from 0.63 to 0.65. See below for details.
+upgrade from 0.63 to 0.67. See below for details.
 
 C<Unicode::Collate::CJK::Big5>
 
@@ -271,7 +287,14 @@ executable.
 
 =item *
 
-C<B> has been upgraded from 1.24 to 1.25.
+C<Archive::Tar> has been upgraded from 1.68 to 1.70
+
+This adds the ptargrep utility for using regular expressions against 
+the contents of files in a tar archive.
+
+=item *
+
+C<B> has been upgraded from 1.24 to 1.26.
 
 It no longer crashes when taking apart a C<y///> containing characters
 outside the octet range or compiled in a C<use utf8> scope.
@@ -371,16 +394,12 @@ C<Locale::Maketext> has been upgraded from 1.16 to 1.17.
 
 =item *
 
-C<Math::BigInt> has been upgraded from 1.97 to 1.98.
-
-XXX Should the changes be listed here?
+C<Math::BigInt> has been upgraded from 1.97 to 1.99.
 
 =item *
 
 C<Math::BigInt::FastCalc> has been upgraded from 0.22 to 0.24.
 
-XXX Should the changes be listed here?
-
 =item *
 
 C<MIME::Base64> has been upgraded from 3.09 to 3.10
@@ -450,15 +469,23 @@ C<Socket> has been upgraded from 1.90 to 1.91.
 
 =item *
 
+C<Storable> has been upgraded from 2.22 to 2.24
+
+Includes performance improvement for overloaded classes.
+
+=item *
+
 C<Sys::Hostname> has been upgraded from 1.13 to 1.14.
 
 =item *
 
-C<Unicode::Collate> has been upgraded from 0.63 to 0.66
+C<Unicode::Collate> has been upgraded from 0.63 to 0.67
 
 This release newly adds locales C<ja> C<ko> and C<zh> and its variants 
 ( C<zh__big5han>, C<zh__gb2312han>, C<zh__pinyin>, C<zh__stroke> ).
 
+Supported UCA_Version 22 for Unicode 6.0.0.
+
 The following modules have been added:
 
 C<Unicode::Collate::CJK::Big5> for C<zh__big5han> which makes 
@@ -584,13 +611,14 @@ 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<XXX>
+=head3 L<ptargrep>
 
 =over 4
 
 =item *
 
-XXX
+L<ptargrep> is a utility to apply pattern matching to the contents of files 
+in a tar archive. It comes with C<Archive::Tar>.
 
 =back
 
@@ -625,10 +653,15 @@ that they represent may be covered elsewhere.
 
 =item *
 
+The new F<t/mro/isa_aliases.t> has been added, which tests that
+C<*Foo::ISA = *Bar::ISA> works properly.
+
+=item *
+
 F<t/mro/isarev.t> has been added, which tests that C<PL_isarev> (accessible
 at the Perl level via C<mro::get_isarev>) is updated properly.
 
-=item
+=item *
 
 F<t/run/switchd-78586.t> has been added, which tests that
 L<[perl #78586]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78586>
@@ -685,6 +718,14 @@ Directory handles are now properly cloned when threads are created. In perl
 5.13.6, child threads simply stopped inheriting directory handles. In
 previous versions, threads would share handles, resulting in crashes.
 
+Building with Visual C++ 2010 is now supported.
+
+=item VMS
+
+Record-oriented files (record format variable or variable wih fixed control)
+opened for write by the perlio layer will now be line buffered to prevent the
+introduction of spurious line breaks whenever the perlio buffer fills up.
+
 =back
 
 =head1 Internal Changes
@@ -741,7 +782,7 @@ without a label.
 =item *
 
 A new C<parse_label()> function has been added, that parses a statement
-labels, separate from statements.
+label, separate from statements.
 
 =item *
 
@@ -838,9 +879,9 @@ L<[perl #78674]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=78674>.
 
 =item *
 
-Typeglob assignments would crash if the glob's stash no longer existed, if
-the glob assigned to was named 'ISA' or the glob on either side of the
-assignment contained a subroutine.
+Typeglob assignments would crash if the glob's stash no longer existed, so
+long as the glob assigned to was named 'ISA' or the glob on either side of
+the assignment contained a subroutine.
 
 =item *
 
@@ -922,11 +963,35 @@ L<[perl #75176]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=75176>.
 
 =item *
 
-C<undef *Foo::> and C<undef *Foo::ISA> used not to update the internal isa
-caches if the stash or array (respectively) had a reference elsewhere. In
+C<undef *Foo::> and C<undef *Foo::ISA> and C<delete $package::{ISA}>
+used not to update the internal isa caches if the
+stash or C<@ISA> array had a reference elsewhere. In
 fact, C<undef *Foo::ISA> would stop a new C<@Foo::ISA> array from updating
-caches
-L<[perl #79024]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=79024>.
+caches.
+
+=item *
+
+C<@ISA> arrays can now be shared between classes via
+C<*Foo::ISA = \@Bar::ISA> or C<*Foo::ISA = *Bar::ISA>
+L<[perl #77238]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=77238>.
+
+=item *
+
+The parser no longer hangs when encountering certain Unicode characters,
+such as U+387
+L<[perl #74022]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=74022>.
+
+=item *
+
+C<formline> no longer crashes when passed a tainted format picture. It also
+taints C<$^A> now if its arguments are tainted
+L<[perl #79138]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=79138>.
+
+=item *
+
+A signal handler called within a signal handler could cause leaks or
+double-frees. Now fixed.
+L<[perl #76248]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=76248>.
 
 =back