From ba8e7c9d8d6f3d13554d049e8a9043fb6dccb22e Mon Sep 17 00:00:00 2001 From: Ricardo Signes Date: Tue, 22 Apr 2014 10:14:20 -0400 Subject: [PATCH] perldelta: group lexical subroutine fixes --- Porting/perl5200delta.pod | 84 ++++++++++++++++++++++++++--------------------- 1 file changed, 46 insertions(+), 38 deletions(-) diff --git a/Porting/perl5200delta.pod b/Porting/perl5200delta.pod index d9a47f6..be152a3 100644 --- a/Porting/perl5200delta.pod +++ b/Porting/perl5200delta.pod @@ -1962,6 +1962,52 @@ them [perl #118839]. =back +=head2 Lexical Subroutines + +=over 4 + +=item * + +Lexical constants (C) no longer crash when inlined. + +=item * + +Parameter prototypes attached to lexical subroutines are now respected when +compiling sub calls without parentheses. Previously, the prototypes were +honoured only for calls I parentheses. [RT #116735] + +=item * + +Syntax errors in lexical subroutines in combination with calls to the same +subroutines no longer cause crashes at compile time. + +=item * + +Deep recursion warnings no longer crash lexical subroutines. [RT #118521] + +=item * + +The dtrace sub-entry probe now works with lexical subs, instead of +crashing [perl #118305]. + +=item * + +Undefining an inlinable lexical subroutine (C) would result in a crash if warnings were turned on. + +=item * + +An undefined lexical sub used as an inherited method no longer crashes. + +=item * + +The presence of a lexical sub named "CORE" no longer stops the CORE:: +prefix from working. + +=back + +=head2 Everything Else + =over 4 =item * @@ -2007,25 +2053,6 @@ the constant to use the built-in keyword instead. This has been fixed. =item * -Lexical constants (C) no longer crash when inlined. - -=item * - -Parameter prototypes attached to lexical subroutines are now respected when -compiling sub calls without parentheses. Previously, the prototypes were -honoured only for calls I parentheses. [RT #116735] - -=item * - -Syntax errors in lexical subroutines in combination with calls to the same -subroutines no longer cause crashes at compile time. - -=item * - -Deep recursion warnings no longer crash lexical subroutines. [RT #118521] - -=item * - The warning produced by C<-l $handle> now applies to IO refs and globs, not just to glob refs. That warning is also now UTF8-clean. [RT #117595] @@ -2118,11 +2145,6 @@ warnings were enabled. =item * -The dtrace sub-entry probe now works with lexical subs, instead of -crashing [perl #118305]. - -=item * - Compiling a C operator whose third argument is a named constant evaulating to 0 no longer causes the constant's value to change. @@ -2146,11 +2168,6 @@ an internal copy of the scalar instead. =item * -Undefining an inlinable lexical subroutine (C) would result in a crash if warnings were turned on. - -=item * - Certain uses of the C operator are optimised to modify an array in place, such as C<@a = sort @a>. During the sorting, the array is made read-only. If a sort block should happen to die, then the array remained @@ -2640,10 +2657,6 @@ disallowed once more, as in 5.16. =item * -An undefined lexical sub used as an inherited method no longer crashes. - -=item * - C<< $x->{key} >> where $x was declared as C no longer crashes if a Class::FIELDS subroutine stub has been declared. @@ -2688,11 +2701,6 @@ C overrides. [perl #119827] =item * -The presence of a lexical sub named "CORE" no longer stops the CORE:: -prefix from working. - -=item * - C<&CORE::exit()> and C<&CORE::die()> now respect L hints. =item * -- 2.7.4