In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/18fbfe8d5727e659480eee64046fe60710271c7c?hp=1cabb3b3b727154db4b25ac10caffab317ab68c3>

- Log -----------------------------------------------------------------
commit 18fbfe8d5727e659480eee64046fe60710271c7c
Author: Father Chrysostomos <[email protected]>
Date:   Thu Dec 8 17:51:36 2011 -0800

    perldelta for efcf35c4ce

M       pod/perldelta.pod

commit 679b54e78c60a296b24af89abd32fa1a5501cd27
Author: Father Chrysostomos <[email protected]>
Date:   Thu Dec 8 17:03:42 2011 -0800

    perldelta up to c70a25495

M       pod/perldelta.pod

commit 541cb22cc367e8620b0d9cf0cc64505381954b1c
Author: Father Chrysostomos <[email protected]>
Date:   Thu Dec 8 16:16:32 2011 -0800

    perldelta up to e38acfd7

M       pod/perldelta.pod

commit 0726c5fa646da1ec5a925ffa301ca20719182dcb
Author: Father Chrysostomos <[email protected]>
Date:   Thu Dec 8 16:13:11 2011 -0800

    Retroactively add newCONSTSUB_flags to 5154delta

M       pod/perl5154delta.pod
-----------------------------------------------------------------------

Summary of changes:
 pod/perl5154delta.pod |    1 +
 pod/perldelta.pod     |   73 +++++++++++++++++++++++++++++++++++++++++++++++--
 2 files changed, 71 insertions(+), 3 deletions(-)

diff --git a/pod/perl5154delta.pod b/pod/perl5154delta.pod
index b8631e2..04c7428 100644
--- a/pod/perl5154delta.pod
+++ b/pod/perl5154delta.pod
@@ -366,6 +366,7 @@ These new functions have been added as part of the work on 
Unicode symbols:
     whichsig_pv
     whichsig_pvn
     whichsig_sv
+    newCONSTSUB_flags
 
 The gv_fetchmethod_*_flags functions, like gv_fetchmethod_flags, are
 experimental and may change in a future release.
diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index 04f2254..6daae67 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -1,5 +1,8 @@
 =encoding utf8
 
+=for comment
+This has been completed up to efcf35c4ce.
+
 =head1 NAME
 
 [ this is a template for a new perldelta file. Any text flagged as
@@ -45,6 +48,11 @@ XXX For a release on a stable branch, this section aspires 
to be:
 
 [ List each incompatible change as a =head2 entry ]
 
+=head2 XS API tweak
+
+The C<newCONSTSUB_flags> C-level function, added in 5.15.4, now has a
+C<len> parameter.
+
 =head1 Deprecations
 
 XXX Any deprecated features, syntax, modules etc. should be listed here.
@@ -64,7 +72,17 @@ may well be none in a stable release.
 
 =item *
 
-XXX
+Perl 5.12.0 sped up the destruction of objects whose classes define empty
+C<DESTROY> methods (to prevent autoloading), simply by not calling such
+empty methods.  This release takes this optimisation a step further, by not
+calling any C<DESTROY> method that begins with an C<return> statement.
+This can be useful for destructors that are only used for debugging:
+
+    use constant DEBUG => 1;
+    sub DESTROY { return unless DEBUG; ... }
+
+Constant-folding will reduce the first statement to C<return;> if DEBUG is
+set to 0, triggering this optimisation.
 
 =back
 
@@ -111,6 +129,14 @@ L<B::Debug> has been upgraded from version 1.16 to version 
1.17.
 
 =item *
 
+L<B::Deparse> has been upgraded from version 1.09 to 1.10.
+
+C<sort(foo(bar))> is now deparsed correctly. (C<sort foo(bar)>, how it used
+to deparse, makes foo the sort routine, rather than a regular function
+call.)
+
+=item *
+
 L<Compress::Raw::Zlib> has been upgraded from version 2.042 to version 2.045.
 
 =item *
@@ -253,7 +279,8 @@ XXX Changes (i.e. rewording) of diagnostic messages go here
 
 =item *
 
-XXX Describe change here
+Redefinition warnings for constant subroutines used to be mandatory, even
+occurring under C<no warnings>.  Now they respect the L<warnings> pragma.
 
 =back
 
@@ -391,7 +418,47 @@ L</Modules and Pragmata>.
 
 =item *
 
-XXX
+A constant subroutine assigned to a glob whose name contains a null will no
+longer cause extra globs to pop into existence when the constant is
+referenced under its new name.
+
+=item *
+
+C<sort> was not treating C<sub {}> and C<sub {()}> as equivalent when such
+a sub was provided as the comparison routine.  It used to croak on
+C<sub {()}>.
+
+=item *
+
+Subroutines from the C<autouse> namespace are once more exempt from
+redefinition warnings.  This used to work in 5.005, but was broken in 5.6
+for most subroutines.  For subs created via XS that redefine subroutines
+from the C<autouse> package, this stopped working in 5.10.
+
+=item *
+
+New XSUBs now produce redefinition warnings if they overwrite existing
+subs, as they did in 5.8.x.  (The C<autouse> logic was reversed in 5.10-14.
+Only subroutines from the C<autouse> namespace would warn when clobbered.)
+
+=item *
+
+Redefinition warnings triggered by the creation of XSUBs now respect
+Unicode glob names, instead of using the internal representation.  This was
+missed in 5.15.4, partly because this warning was so hard to trigger.  (See
+the previous item.)
+
+=item *
+
+C<newCONSTSUB> used to use compile-time warning hints, instead of run-time
+hints.  The following code should never produce a redefinition warning, but
+it used to, if C<newCONSTSUB> redefine and existing subroutine:
+
+    use warnings;
+    BEGIN {
+       no warnings;
+       some_XS_function_that_calls_new_CONSTSUB();
+    }
 
 =back
 

--
Perl5 Master Repository

Reply via email to