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
