In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/0cb3abac7ce8e46384e09eaa26fafa0af738ad61?hp=c62e754c9aa399aa832a4bebf95b9ce8d3f119b2>
- Log ----------------------------------------------------------------- commit 0cb3abac7ce8e46384e09eaa26fafa0af738ad61 Author: Father Chrysostomos <spr...@cpan.org> Date: Sun Oct 12 23:22:39 2014 -0700 perldelta for 73f4c4f M pod/perldelta.pod commit f704f251cfe7f2359e96542b453199aa2dbb283b Author: Father Chrysostomos <spr...@cpan.org> Date: Sun Oct 12 23:20:27 2014 -0700 perldelta for 987c969 M pod/perldelta.pod commit db98db4eec526ca512c91ad63b23b42f5b0a433d Author: Father Chrysostomos <spr...@cpan.org> Date: Sun Oct 12 23:17:44 2014 -0700 perldelta for afc8007 M pod/perldelta.pod commit 357205d57da1ca4f15ebb6d7f0d16d57d277c350 Author: Father Chrysostomos <spr...@cpan.org> Date: Sun Oct 12 23:16:35 2014 -0700 perldelta for split-to-array 4ecee20 op.c: Distangle split and common-vars fd017c0 Optimise @lexarray = split... ef7999f Optimise my(@array)=split 4574270 opt.t: Test split-to-array optimisation M pod/perldelta.pod commit 7646b3d559dd087307048fb06a720db9ba4d835f Author: Father Chrysostomos <spr...@cpan.org> Date: Sun Oct 12 23:11:16 2014 -0700 perldelta for 821956c M pod/perldelta.pod commit 852ef7e9fcf87b553a9dfb5a000f69333b03e82f Author: Father Chrysostomos <spr...@cpan.org> Date: Sun Oct 12 23:08:58 2014 -0700 perldelta for de183bb M pod/perldelta.pod commit c3f18a8fba62685932d1f14d004af6e3022824b7 Author: Father Chrysostomos <spr...@cpan.org> Date: Sun Oct 12 23:06:23 2014 -0700 perldelta for bcff414 M pod/perldelta.pod commit f03d0d50f4ee5a017d1ba8df0d76d6bc24348186 Author: Father Chrysostomos <spr...@cpan.org> Date: Sun Oct 12 23:05:47 2014 -0700 perldelta for deparsing with CORE:: prefix 3188a82 Deparse with CORE:: to avoid lex sub conflicts e54915d Deparse sub calls quietly 7741cee Finish deparsing âmy sub if; CORE::if...â M pod/perldelta.pod commit dbe3c92904b599361e37437d7d022b61ffae9a29 Author: Father Chrysostomos <spr...@cpan.org> Date: Sun Oct 12 23:02:05 2014 -0700 perldelta for a21eb52 M pod/perldelta.pod commit c1662923fd698c3467e36017e0b303046f173e13 Author: Father Chrysostomos <spr...@cpan.org> Date: Sun Oct 12 23:00:40 2014 -0700 perldelta for 4c62787/#122771 M pod/perldelta.pod commit 325f4225173fcd0e77660053a1f23fcd8d27020b Author: Father Chrysostomos <spr...@cpan.org> Date: Sun Oct 12 22:57:50 2014 -0700 perldelta for f8a7cce and 88a758b M pod/perldelta.pod commit 4a9fafe535362d8998119d8bffd8357c27589401 Author: Father Chrysostomos <spr...@cpan.org> Date: Sun Oct 12 22:56:11 2014 -0700 perldelta for 2258401 M pod/perldelta.pod commit 4e3e9c07274790d43052247ed0a945f075d79641 Author: Father Chrysostomos <spr...@cpan.org> Date: Sun Oct 12 19:39:36 2014 -0700 perldelta for f351564 and 5f4d849 M pod/perldelta.pod commit 432450d22530af72b40c3f2345ff284edf5701b1 Author: Father Chrysostomos <spr...@cpan.org> Date: Sun Oct 12 19:39:09 2014 -0700 perldelta for c8ec376 M pod/perldelta.pod commit 14937635ba7fceed2a3b3256fce1d21c70b31abe Author: Father Chrysostomos <spr...@cpan.org> Date: Sun Oct 12 19:28:52 2014 -0700 perldelta for c997e36 and 6bd144e0f M pod/perldelta.pod commit 4cad5dc893fce4ae73aa135242e65adfc26be579 Author: Father Chrysostomos <spr...@cpan.org> Date: Sun Oct 12 18:11:48 2014 -0700 perldelta for 157fb5a M pod/perldelta.pod commit 5058ae7498de9449cddc628aae9954db72e1c9d7 Author: Father Chrysostomos <spr...@cpan.org> Date: Sun Oct 12 18:09:10 2014 -0700 perldelta for 1e9a122 M pod/perldelta.pod commit 02dde54385cd5b9ccc67cf0125a8058fb40bd335 Author: Father Chrysostomos <spr...@cpan.org> Date: Sun Oct 12 18:07:12 2014 -0700 perldelta for 8fb0127 M pod/perldelta.pod commit eed77337e6194bb1a9dc8bede8c14a69f47d793f Author: Father Chrysostomos <spr...@cpan.org> Date: Sun Oct 12 18:05:45 2014 -0700 Update perlguts for PADMY changes M pod/perlguts.pod commit eee3e3021df1a54fbbae497b1d1c817aa9f2fc29 Author: Father Chrysostomos <spr...@cpan.org> Date: Sun Oct 12 18:04:38 2014 -0700 perlguts typo M pod/perlguts.pod commit 8e2708f3a2d07628739cf7e85786306cb07a34ee Author: Father Chrysostomos <spr...@cpan.org> Date: Sun Oct 12 18:02:44 2014 -0700 perldelta for PADMY changes 145bf8e Remove most uses of PADMY a9f1090 Peek.t should not expect PADMY under 5.21.5 c068384 Stop setting PADMY; renumber PADSTALE M pod/perldelta.pod commit 8405c65d644b2709c555cb6ec75feb1e1bb10d39 Author: Father Chrysostomos <spr...@cpan.org> Date: Sun Oct 12 18:01:19 2014 -0700 perldelta for ecf05a5 M pod/perldelta.pod commit 8f4983af649ac4874f565aaa7a3f930e3aa7551c Author: Father Chrysostomos <spr...@cpan.org> Date: Sun Oct 12 17:58:32 2014 -0700 B: Document GPFLAGS M ext/B/B.pm commit 24d3d8cd6cd32bf0c6abd8ade38c92a571f09059 Author: Father Chrysostomos <spr...@cpan.org> Date: Sun Oct 12 17:56:22 2014 -0700 perldelta for 14d9114 M pod/perldelta.pod commit 94959c633a6b4a4064eb26a8358a7808ae11b8ee Author: Father Chrysostomos <spr...@cpan.org> Date: Sun Oct 12 14:56:46 2014 -0700 perldelta for 926f5fc M pod/perldelta.pod commit 227d08c866241e7c3b61e93d1fc36c0e4b6c188a Author: Father Chrysostomos <spr...@cpan.org> Date: Sun Oct 12 14:53:29 2014 -0700 perldelta for a623f8939 M pod/perldelta.pod ----------------------------------------------------------------------- Summary of changes: ext/B/B.pm | 4 ++ pod/perldelta.pod | 116 +++++++++++++++++++++++++++++++++++++++++++++++++++++- pod/perlguts.pod | 6 ++- 3 files changed, 122 insertions(+), 4 deletions(-) diff --git a/ext/B/B.pm b/ext/B/B.pm index 8388541..b51e7f5 100644 --- a/ext/B/B.pm +++ b/ext/B/B.pm @@ -906,6 +906,10 @@ If you're working with globs at runtime, and need to disambiguate =item FLAGS +=item GPFLAGS + +This last one is present only in perl 5.22.0 and higher. + =back =head2 B::IO Methods diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 924e208..276498b 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -27,6 +27,12 @@ here, but most should go in the L</Performance Enhancements> section. [ List each enhancement as a =head2 entry ] +=head2 New double-diamond operator + +C<<< <<>>> >>> is like C<< <> >> but uses three-argument C<open> to open +each file in @ARGV. So each element of @ARGV is an actual file name, and +"|foo" won't be treated as a pipe open. + =head2 Perl now supports POSIX 2008 locale currency additions. On platforms that are able to handle POSIX.1-2008, the @@ -129,6 +135,26 @@ Non-magical/non-tied scalars that contain only a floating point value and are on most Perl builds with 64 bit integers now use 8-32 less bytes of memory depending on OS. +=item * + +In C<@array = split>, the assigment can be optimised away with C<split> +writing directly to the array. This optimisation was happening only for +package arrays other than @_ and only if the argument to split was an +explicit constant or scalar other than $_. Now this optimisation happens +almost all the time. + +=item * + +C<join> is now subject to constant folding. Moreover, C<join> with a +scalar or constant for the separator and a single-item list to join is +simplified to a stringification. The separator doesn't even get evaluated. + +=item * + +C<qq(@array)> is implemented using two ops: a stringify op and a join op. +If the qq contains nothing but a single array, the stringification is +optimised away. + =back =head1 Modules and Pragmata @@ -163,6 +189,29 @@ Avoid reading beyond the end of a buffer. [perl #122629] =item * +L<B::Deparse> has been upgraded from version 1.28 to 1.29. + +Parenthesised arrays in lists passed to C<\> are now correctly deparsed +with parentheses (e.g., C<\(@a, (@b), @c)> now retains the parentheses +around @b), this preserving the flattening behaviour of referenced +parenthesised arrays. Formerly, it only worked for one array: C<\(@a)>. + +C<local our> is now deparsed correctly, with the C<our> included. + +C<for($foo; !$bar; $baz) {...}> was deparsed without the C<!> (or C<not>). +This has been fixed. + +Core keywords that conflict with lexical subroutines are now deparsed with +the C<CORE::> prefix. + +C<foreach state $x (...) {...}> now deparses correctly with C<state> and +not C<my>. + +C<our @array = split(...)> now deparses correctly with C<our> in those +cases where the assignment is optimised away. + +=item * + L<DynaLoader> has been upgraded from version 1.26 to 1.27. Remove dl_nonlazy global if unused in Dynaloader. [perl #122926] @@ -274,7 +323,8 @@ XXX Changes (i.e. rewording) of diagnostic messages go here =item * -XXX Describe change here +'"my" variable &foo::bar can't be in a package' has been reworded to say +'subroutine' instead of 'variable'. =back @@ -418,6 +468,18 @@ C<Perl_tmps_grow> which is marked as public API but undocumented has been removed from public API. If you use C<EXTEND_MORTAL> macro in your XS code to preextend the mortal stack, you are unaffected by this change. +=item * + +C<cv_name>, which was introduced in 5.21.4, has been changed incompatibly. +It now has a flags field that allows the caller to specify whether the name +should be fully qualified. See L<perlapi/cv_name>. + +=item * + +Internally Perl no longer uses the C<SVs_PADMY> flag. C<SvPADMY()> now +returns a true value for anything not marked PADTMP. C<SVs_PADMY> is now +defined as 0. + =back =head1 Selected Bug Fixes @@ -431,7 +493,57 @@ files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>. =item * -XXX +Locking and unlocking values via L<Hash::Util> or C<Internals::SvREADONLY> +no longer has any affect on values that are read-only to begin. Unlocking +such values could result in crashes, hangs or other erratic behaviour. + +=item * + +The internal C<looks_like_number> function (which L<Scalar::Util> provides +access to) began erroneously to return true for "-e1" in 5.21.4, affecting +also C<-'-e1'>. This has been fixed. + +=item * + +The flip-flop operator (C<..> in scalar context) would return the same +scalar each time, unles the containing subroutine was called recursively. +Now it always returns a new scalar. [perl #122829] + +=item * + +Some unterminated C<(?(...)...)> constructs in regular expressions would +either crash or give erroneous error messages. C</(?(1)/> is one such +example. + +=item * + +C<pack "w", $tied> no longer calls FETCH twice. + +=item * + +List assignments like C<($x, $z) = (1, $y)> now work correctly if $x and $y +have been aliased by C<foreach>. + +=item * + +Some patterns including code blocks with syntax errors, such as +C</ (?{(^{})/>, would hang or fail assertions on debugging builds. Now +they produce errors. + +=item * + +An assertion failure when parsing C<sort> with debugging enabled has been +fixed. [perl #122771] + +=item * + +C<*a = *b; @a = split //, $b[1]> could do a bad read and produce junk +results. + +=item * + +In C<() = @array = split>, the C<() => at the beginning no longer confuses +the optimiser, making it assume a limit of 1. =back diff --git a/pod/perlguts.pod b/pod/perlguts.pod index ab2885d..e9aba64 100644 --- a/pod/perlguts.pod +++ b/pod/perlguts.pod @@ -1770,10 +1770,12 @@ A scratchpad keeps SVs which are lexicals for the current unit and are targets for opcodes. A previous version of this document stated that one can deduce that an SV lives on a scratchpad by looking on its flags: lexicals have C<SVs_PADMY> set, and -I<target>s have C<SVs_PADTMP> set. But this have never been fully true. +I<target>s have C<SVs_PADTMP> set. But this has never been fully true. C<SVs_PADMY> could be set on a variable that no longer resides in any pad. While I<target>s do have C<SVs_PADTMP> set, it can also be set on variables -that have never resided in a pad, but nonetheless act like I<target>s. +that have never resided in a pad, but nonetheless act like I<target>s. As +of perl 5.21.5, the C<SVs_PADMY> flag is no longer used and is defined as +0. C<SvPADMY()> now returns true for anything without C<SVs_PADTMP>. The correspondence between OPs and I<target>s is not 1-to-1. Different OPs in the compile tree of the unit can use the same target, if this -- Perl5 Master Repository