In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/610c7be4992773c28dd53d2c32d1db95d557fc8b?hp=892522a605b5b55c985ef64637281fbd363f4c16>
- Log ----------------------------------------------------------------- commit 610c7be4992773c28dd53d2c32d1db95d557fc8b Author: Father Chrysostomos <[email protected]> Date: Tue Aug 14 14:40:38 2012 -0700 perldelta for 7ef30830/#114018 M pod/perldelta.pod commit e4afdb795e050013e9a353dbd7ab4b0efa7d0874 Author: Father Chrysostomos <[email protected]> Date: Tue Aug 14 14:39:15 2012 -0700 perldelta for 35f7559499, B::Concise dumping formats M pod/perldelta.pod commit 60ca243a7812dd27c1164b0806523fdb3c25f7f2 Author: Father Chrysostomos <[email protected]> Date: Tue Aug 14 14:32:42 2012 -0700 perldelta for 2c658e55b, no formats after comp errors M pod/perldelta.pod commit a21a3918ca29e9645e6e2cf5f4f62bc70aed3a38 Author: Father Chrysostomos <[email protected]> Date: Tue Aug 14 14:29:10 2012 -0700 perldelta for format parsing fixes M pod/perldelta.pod commit c58f5a32879b3eb76e91a9dd7f89498e910bad11 Author: Father Chrysostomos <[email protected]> Date: Tue Aug 14 14:23:32 2012 -0700 perldelta for ee23553f1b7 & c782dc1db597 M pod/perldelta.pod commit 3e0c76cea01bfb8c2f524ceaa5d5f0e457a9b0f3 Author: Father Chrysostomos <[email protected]> Date: Tue Aug 14 14:22:15 2012 -0700 perldelta for f32c7e864b6: recursive formats M pod/perldelta.pod commit e4963eb682f06f1b930887136bedd45920cf27f7 Author: Father Chrysostomos <[email protected]> Date: Tue Aug 14 14:20:12 2012 -0700 perldelta for 9a71543479/#78550 M pod/perldelta.pod commit 9702222b639b9714424fc69eb8f7cc92bdf038ee Author: Father Chrysostomos <[email protected]> Date: Tue Aug 14 14:19:00 2012 -0700 perldelta for cae5dbbe30b M pod/perldelta.pod commit 9da700a7cabcb24815b5e4f11825392f0ed0cfa8 Author: Father Chrysostomos <[email protected]> Date: Tue Aug 14 14:16:56 2012 -0700 perldelta for 3207fc6be29 M pod/perldelta.pod commit 631641657d9d219f2de9bf9f5a908a44955d9377 Author: Father Chrysostomos <[email protected]> Date: Tue Aug 14 14:15:46 2012 -0700 perldelta for #114222: use constant {()} M pod/perldelta.pod commit 0484b4037860bf2ebf5cd350c42e4c38189fbf95 Author: Father Chrysostomos <[email protected]> Date: Wed Jul 4 06:23:16 2012 -0700 Test initial tick in sub declaration M t/comp/parser.t commit 8fece1a6a312fd37ff9b223a465879e996f626e2 Author: Father Chrysostomos <[email protected]> Date: Sun Jul 1 23:05:21 2012 -0700 Allow test_bootstrap.t to run from the top level M t/porting/test_bootstrap.t commit e89fca5ea2782d3f6711ea8bea3581c10437ae62 Author: Father Chrysostomos <[email protected]> Date: Sun Jul 1 20:23:06 2012 -0700 pad.c apidocs: Missing fullstop M pad.c ----------------------------------------------------------------------- Summary of changes: pad.c | 2 +- pod/perldelta.pod | 61 ++++++++++++++++++++++++++++++++++++++++++++ t/comp/parser.t | 5 +++- t/porting/test_bootstrap.t | 5 +++- 4 files changed, 70 insertions(+), 3 deletions(-) diff --git a/pad.c b/pad.c index c672a0e..6dee52e 100644 --- a/pad.c +++ b/pad.c @@ -1439,7 +1439,7 @@ Perl_pad_setsv(pTHX_ PADOFFSET po, SV* sv) /* =for apidoc m|void|pad_block_start|int full -Update the pad compilation state variables on entry to a new block +Update the pad compilation state variables on entry to a new block. =cut */ diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 6083b62..0f951df 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -127,6 +127,10 @@ namespace and available for export. The default export list has not changed. L<B::Concise> has been upgraded from version 0.91 to 0.92. The C<-nobanner> option has been fixed, and C<format>s can now be dumped. +B::Concise can now dump formats. When passed a sub name to dump, it will +check also to see whether it is the name of a format. If a sub and a +format share the same name, it will dump both. + =item * L<B::Deparse> has been upgraded from version 1.15 to 1.16. It now deparses @@ -492,6 +496,63 @@ C<undef> on a subroutine now clears call checkers. The C<ref> operator started leaking memory on blessed objects in Perl 5.16.0. This has been fixed [perl #114340]. +=item * + +C<use> no longer tries to parse its arguments as a statement, making +C<use constant { () };> a syntax error [perl #114222]. + +=item * + +On debugging builds, "uninitialized" warnings inside formats no longer +cause assertion failures. + +=item * + +On debugging builds, subroutines nested inside formats no longer cause +assertion failures [perl #78550]. + +=item * + +C<print $x> and C<sub { print $x }->()> now always produce the same output. +It was possible for the latter to refuse to close over $x if the variable +was not active; e.g., if it was defined outside a currently-running named +subroutine. + +=item * + +Similarly, C<print $x> and C<print eval '$x'> now produce the same output. +This also allows "my $x if 0" variables to be seen in the debugger +[perl #114018]. + +=item * + +Formats called recursively no longer stomp on their own lexical variables, +but each recursive call has its own set of lexicals. + +=item * + +Attempting to free an active format or the handle associated with it no +longer results in a crash. + +=item * + +Format parsing no longer gets confused by braces, semicolons and +low-precedence operators. It used to be possible to use braces as format +delimiters (instead of C<=> and C<.>), but only sometimes. Semicolons and +low-precedence operators in format argument lines no longer confuse the +parser into ignoring the line's return value. In format argument lines, +braces can now be used for anonymous hashes, instead of being treated +always as C<do> blocks. + +=item * + +Formats can now be nested inside code blocks in regular expressions and +other quoted constructs (C</(?{...})/> and C<qq/${...}/>) [perl #114040]. + +=item * + +Formats are no longer created after compilation errors. + =back =head1 Known Problems diff --git a/t/comp/parser.t b/t/comp/parser.t index 8ada9ab..d22e9b3 100644 --- a/t/comp/parser.t +++ b/t/comp/parser.t @@ -3,7 +3,7 @@ # Checks if the parser behaves correctly in edge cases # (including weird syntax errors) -print "1..138\n"; +print "1..139\n"; sub failed { my ($got, $expected, $name) = @_; @@ -397,6 +397,9 @@ $_ write }).*/; +sub 'Hello'_he_said (_); +is prototype "Hello::_he_said", '_', 'initial tick in sub declaration'; + # Add new tests HERE (above this line) # bug #74022: Loop on characters in \p{OtherIDContinue} diff --git a/t/porting/test_bootstrap.t b/t/porting/test_bootstrap.t index d07e659..e59feaa 100644 --- a/t/porting/test_bootstrap.t +++ b/t/porting/test_bootstrap.t @@ -7,7 +7,10 @@ use strict; # This regression tests ensures that the rules aren't accidentally overlooked. -require './test.pl'; +BEGIN { + chdir 't'; + require './test.pl'; +} plan('no_plan'); -- Perl5 Master Repository
