In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/3714fdb00852daf04028a7d28acc3645336b1899?hp=fd124146cf3c880d749bbb33b1ac226cc55a9639>
- Log ----------------------------------------------------------------- commit 3714fdb00852daf04028a7d28acc3645336b1899 Author: Father Chrysostomos <[email protected]> Date: Sun Jul 17 13:06:52 2016 -0700 perldelta for 6fe925b92 / my\ M pod/perldelta.pod commit d4062d50d8a6d4ab7c4d7edb81db545ae26cef70 Author: Father Chrysostomos <[email protected]> Date: Sun Jul 17 13:04:26 2016 -0700 perlref: Wrap pod M pod/perlref.pod commit 981b911e11a28c0a992f2065cfe21131e0b43d90 Author: Father Chrysostomos <[email protected]> Date: Sun Jul 17 12:55:49 2016 -0700 Note in perlvar that ${^ENCODING} is removed M pod/perlvar.pod commit c6070e6416ecaae713dd5274af66da2b12930fc3 Author: Father Chrysostomos <[email protected]> Date: Sun Jul 17 12:55:17 2016 -0700 Add Filter::Encoding to the known links I guess I must be famous now. M t/porting/known_pod_issues.dat commit 14d57f2527eaa1b7bdc9ed0b3fd745651562d018 Author: Father Chrysostomos <[email protected]> Date: Sun Jul 17 12:51:43 2016 -0700 perldelta for a9cb10c37 (${^ENCODING} removal) M pod/perldelta.pod commit 44bcb1772d5812694380d8a504e2ad98c3097cf4 Author: Father Chrysostomos <[email protected]> Date: Sun Jul 17 12:42:05 2016 -0700 perldelta for a2637ca0a / #128597 M pod/perldelta.pod commit de4e24a8884198a13019b50f33eec698d7f3f4b8 Author: Father Chrysostomos <[email protected]> Date: Sun Jul 17 12:39:18 2016 -0700 perldelta for 63aab7e / #128532 M pod/perldelta.pod commit 8da8adf3c3d9a4b3a0b4fde347690723a404a523 Author: Father Chrysostomos <[email protected]> Date: Sun Jul 17 12:27:20 2016 -0700 perldelta for 08e3451 and a651dcdf6 M pod/perldelta.pod commit b05a99b8c3fe8c592c0fcd1e83598f608f0fd709 Author: Father Chrysostomos <[email protected]> Date: Sun Jul 17 12:24:30 2016 -0700 perldelta for #128508 / b3dd0aba3 M pod/perldelta.pod commit e34ec13261d42165db4c82380e00c85b9f2a9b4c Author: Father Chrysostomos <[email protected]> Date: Sun Jul 17 12:22:59 2016 -0700 perldelta for #128478 / d9d2b74c M pod/perldelta.pod commit 1571b860cd6635d0d546350abddb02faa1b2fc46 Author: Father Chrysostomos <[email protected]> Date: Sun Jul 17 12:20:48 2016 -0700 perldelta for #128238 e7acdfe only treat stash entries with .*:: as sub-stashes 9e5cda6 [perl #128238] Crash with non-stash in stash M pod/perldelta.pod ----------------------------------------------------------------------- Summary of changes: pod/perldelta.pod | 64 ++++++++++++++++++++++++++++++++++++++++-- pod/perlref.pod | 5 +++- pod/perlvar.pod | 25 +++++++---------- t/porting/known_pod_issues.dat | 1 + 4 files changed, 77 insertions(+), 18 deletions(-) diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 8bca8c7..3d1b0b7 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -46,6 +46,20 @@ character is used in a given script, but there is a slight chance of breakage for programs that very specifically needed the old behavior. See L<perlunicode/Scripts>. +=head2 Declaring a reference to a variable + +As an experimental feature, Perl now allows the referencing operator to +come after C<my>, C<state>, C<our>, or C<local>. This syntax must be +enabled with C<use feature 'declared_refs'>. It is experimental, and will +warn by default unless C<no warnings 'experimental::refaliasing'> is in +effect. It is intended mainly for use in assignments to references. For +example: + + use experimental 'refaliasing', 'declared_refs'; + my \$a = \$b; + +See L<perlref/Assigning to References> for slightly more detail. + =head1 Security XXX Any security-related notices go here. In particular, any security @@ -64,6 +78,13 @@ XXX For a release on a stable branch, this section aspires to be: [ List each incompatible change as a =head2 entry ] +=head2 C<${^ENCODING}> has been removed + +Consequently, the L<encoding> pragma's default mode is no longer supported. +If you still need to write your source code in encodings other than UTF-8, +use a source filter such as L<Filter::Encoding> on CPAN or L<encoding>'s +C<Filter> option. + =head1 Deprecations XXX Any deprecated features, syntax, modules etc. should be listed here. @@ -152,7 +173,22 @@ L<Module::CoreList> has been upgraded from version 5.20160620 to 5.20160720. =item * -L<XXX> has been upgraded from version A.xx to B.yy. +L<XSLoader> has been upgraded from version 0.21 to 0.22, fixing a security +hole in which binary files could be loaded from a path outside of @INC. + +=item * + +L<encoding> has been upgraded from version 2.17 to 2.17_01. + +This module's default mode is no longer supported as of Perl v5.25.3. It +now dies when imported, unless the C<Filter> option is being used. + +=item * + +L<encoding::warnings> has been upgraded from version 0.12 to 0.13. + +This module is no longer supported as of Perl v5.25.3. It emits a +warning to that effect and then does nothing. =back @@ -371,7 +407,31 @@ files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>. =item * -XXX +An assertion failure with C<%: = 0> has been fixed. [perl #128238] + +=item * + +In Perl v5.18, the parsing of C<"$foo::$bar"> was accidentally changed, +such that it would be treated as C<$foo."::".$bar>. The previous behavior, +which was to parse it as C<$foo:: . $bar>, has been restored. [perl +#128478] + +=item * + +Since Perl v5.20, line numbers have been off by one when perl is invoked +with the B<-x> switch. This has been fixed. [perl #128508] + +=item * + +Vivifying a subroutine stub in a deleted stash (e.g., C<delete +$My::{"Foo::"}; \&My::Foo::foo>) no longer crashes. It had begun crashing +in v5.18. [perl #128532] + +=item * + +Some obscure cases of subroutines and file handles being freed at the same +time could result in crashes, but have been fixed. The crash was +introduced in v5.22. [perl #128597] =back diff --git a/pod/perlref.pod b/pod/perlref.pod index a071f1f..dfbb52c 100644 --- a/pod/perlref.pod +++ b/pod/perlref.pod @@ -911,7 +911,10 @@ subject to change. =head1 Declaring a Reference to a Variable -Beginning in v5.26.0, the referencing operator can come after C<my>, C<state>, C<our>, or C<local>. This syntax must be enabled with C<use feature 'declared_refs'>. It is experimental, and will war ... [76 chars truncated] +Beginning in v5.26.0, the referencing operator can come after C<my>, +C<state>, C<our>, or C<local>. This syntax must be enabled with C<use +feature 'declared_refs'>. It is experimental, and will warn by default +unless C<no warnings 'experimental::refaliasing'> is in effect. This feature makes these: diff --git a/pod/perlvar.pod b/pod/perlvar.pod index 1821b95..684cd53 100644 --- a/pod/perlvar.pod +++ b/pod/perlvar.pod @@ -1917,24 +1917,19 @@ Mnemonic: value of B<-D> switch. =item ${^ENCODING} X<${^ENCODING}> -DEPRECATED!!! +This variable is no longer supported. -The I<object reference> to the C<Encode> object that is used to convert -the source code to Unicode. Thanks to this variable your Perl script -does not have to be written in UTF-8. Default is C<undef>. +It used to hold the I<object reference> to the C<Encode> object that was +used to convert the source code to Unicode. -Setting this variable to any other value than C<undef> is deprecated due -to fundamental defects in its design and implementation. It is planned -to remove it from a future Perl version. Its purpose was to allow your -non-ASCII Perl scripts to not have to be written in UTF-8; this was +Its purpose was to allow your non-ASCII Perl +scripts not to have to be written in UTF-8; this was useful before editors that worked on UTF-8 encoded text were common, but -that was long ago. It causes problems, such as affecting the operation -of other modules that aren't expecting it, causing general mayhem. Its -use can lead to segfaults. +that was long ago. It caused problems, such as affecting the operation +of other modules that weren't expecting it, causing general mayhem. -If you need something like this functionality, you should use the -L<encoding> pragma, which is also deprecated, but has fewer nasty side -effects. +If you need something like this functionality, it is recommended that use +you a simple source filter, such as L<Filter::Encoding>. If you are coming here because code of yours is being adversely affected by someone's use of this variable, you can usually work around it by @@ -1946,7 +1941,7 @@ near the beginning of the functions that are getting broken. This undefines the variable during the scope of execution of the including function. -This variable was added in Perl 5.8.2. +This variable was added in Perl 5.8.2 and removed in 5.26.0. =item ${^GLOBAL_PHASE} X<${^GLOBAL_PHASE}> diff --git a/t/porting/known_pod_issues.dat b/t/porting/known_pod_issues.dat index b9b1946..396c04d 100644 --- a/t/porting/known_pod_issues.dat +++ b/t/porting/known_pod_issues.dat @@ -108,6 +108,7 @@ File::Findgrep File::Map File::MMagic File::ShareDir +Filter::Encoding find(1) flock(2) flock(3) -- Perl5 Master Repository
