From 90519d0fd74b0bc30c7b0f455caef9f51f7fea12 Mon Sep 17 00:00:00 2001 From: Father Chrysostomos Date: Thu, 12 Jul 2012 14:20:31 -0700 Subject: [PATCH] perldelta update --- pod/perldelta.pod | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 91 insertions(+), 1 deletion(-) diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 9209c39..c419e29 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -28,6 +28,14 @@ here, but most should go in the L section. [ List each enhancement as a =head2 entry ] +=head2 C with negative signal names + +C has always allowed a negative signal number, which kills the +process group instead of a single process. It has also allowed signal +names. But it did not behave consistently, because negative signal names +were treated as 0. Now negative signals names like C<-INT> are supported +and treated the same way as -2 [perl #112990]. + =head1 Security XXX Any security-related notices go here. In particular, any security @@ -233,7 +241,13 @@ XXX Changes (i.e. rewording) of diagnostic messages go here =item * -XXX Describe change here +The 'Can't use "my %s" in sort comparison' error has been downgraded to a +warning, '"my %s" used in sort comparison' (with 'state' instead of 'my' +for state variables). In addition, the heuristics for guessing whether +lexical $a or $b has been misused have been improved to generate fewer +false positives. Lexical $a and $b are no longer disallowed if they are +outside the sort block. Also, a named unary or list operator inside the +sort block no longer causes the $a or $b to be ignored [perl #86136]. =back @@ -367,6 +381,15 @@ OP allocation for CVs now uses a slab allocator. This simplifies memory management for OPs allocated to a CV, so cleaning up after a compilation error is simpler and safer [perl #111462][perl #112312]. +=item * + +PERL_DEBUG_READONLY_OPS has been rewritten to work with the new slab +allocator, allowing it to catch more violations that befor. + +=item * + +The old slab allocator for ops, which was only enabled for PERL_IMPLICIT_SYS and PERL_DEBUG_READONLY_OPS, has been retired. + =back =head1 Selected Bug Fixes @@ -488,6 +511,73 @@ functionality which was broken in 5.17.0 [perl #113918]. String negation now behaves the same under C as it does without [perl #113012]. +=item * + +C now returns the Unicode replacement character (U+FFFD) for -1, +regardless of the internal representation. -1 used to wrap if the argument +was tied or a string internally. + +=item * + +Using a C after its enclosing sub was freed could crash as of +perl 5.12.0, if the format referenced lexical variables from the outer sub. + +=item * + +Using a C after its enclosing sub was undefined could crash as of +perl 5.10.0, if the format referenced lexical variables from the outer sub. + +=item * + +Using a C defined inside a closures, which format references +lexical variables from outside, never really worked unless the C +call was directly inside the closure. In 5.10.0 it even started crashing. +Now the copy of that closure nearest the top of the call stack is used to +find those variables. + +=item * + +Formats that close over variables in special blocks no longer crash if a +stub exists with the same name as the special block before the special +block is compiled. + +=item * + +The parser no longer gets confused, treating C as a syntax +error if preceded by C [perl #16249]. + +=item * + +The return value of C is no longer truncated on 64-bit platforms +[perl #113980]. + +=item * + +Constant folding no longer causes C to print to the +FOO handle [perl #78064]. + +=item * + +C now calls the named subroutine and uses the file name it +returns, instead of opening a file named "subname". + +=item * + +Subroutines looked up by rv2cv check hooks (registered by XS modules) are +now taken into consideration when determining whether C should be +the sub call C or the method call C<< "bar"->foo >>. + +=item * + +C is no longer treated specially, allowing global overrides +to be called directly via C [perl #113016]. + +=item * + +Calling an undefined sub whose typeglob has been undefined now produces the +customary "Undefined subroutine called" error, instead of "Not a CODE +reference". + =back =head1 Known Problems -- 2.7.4