diff options
author | Father Chrysostomos <sprout@cpan.org> | 2011-03-12 14:14:17 -0800 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2011-03-12 14:14:41 -0800 |
commit | b7188eb5b6457dbdfdc1d36e36f023abd58be6f1 (patch) | |
tree | 8e290b4e38d1002f6011fcee9b542ea3d6c0c741 /pod | |
parent | 70855f8b50ebd744a099538d8a0ca719161c0bb3 (diff) | |
download | perl-b7188eb5b6457dbdfdc1d36e36f023abd58be6f1.tar.gz |
perldelta entries
Diffstat (limited to 'pod')
-rw-r--r-- | pod/perldelta.pod | 121 |
1 files changed, 118 insertions, 3 deletions
diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 9f9f8144f9..2eebe60732 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -1,5 +1,15 @@ =encoding utf8 +=for comment +This has been completed up to 67aeb7895 except for: +b3dbdd48ca2da90bce7f16d545cca54c3dc58f35 (Leon Timmermans) +816005240f1a3b9989c940e630e829048597537c (Craig Berry) +44caa20c7d9248fd77483468d77c9b5835e7066e (Craig Berry) +4581ada393ba58f2b8f438c7b9c336d6c79ec94c (Craig Berry) +3b28d668e9efe9433c3099521167a6723cbddc26 (Craig Berry) +82e24582a585cdcc94ac54b3e77a325e7aa89846 (Jan Dubois) +and any bugs that Karl Williamson has fixed. + =head1 NAME [ this is a template for a new perldelta file. Any text flagged as @@ -36,6 +46,11 @@ L</Selected Bug Fixes> section. [ List each security issue as a =head2 entry ] +=head2 User-defined regular expression properties + +Perl no longer allows a tainted regular expression to invoke a user-defined +property via C<\p{...}> syntax. It simply dies instead [perl #82616]. + =head1 Incompatible Changes XXX For a release on a stable branch, this section aspires to be: @@ -45,6 +60,19 @@ XXX For a release on a stable branch, this section aspires to be: [ List each incompatible change as a =head2 entry ] +=head2 Passing references to warn() + +An earlier Perl 5.13.x release changed C<warn($ref)> to leave the reference +unchanged, allowing C<$SIG{__WARN__}> handlers to access the original +reference. But this stopped warnings that were references from having the +file and line number appended even when there was no C<$SIG{__WARN__}> +handler in place. + +Now C<warn> checks for the presence of such a handler and, if there is +none, proceeds to stringify the reference and append the file and line +number. This allows simple uses of C<warn> for debugging to continue to +work as they did before. + =head1 Deprecations XXX Any deprecated features, syntax, modules etc. should be listed here. @@ -108,6 +136,13 @@ C<CPANPLUS::Dist::Build> has been upgraded from version 0.52 to 0.54 =item * +C<Cwd> has been downgraded from version 3.37 to 3.36. + +An optimisation that recent core changes have rendered unnecessary has been +reverted. + +=item * + C<Devel::DProf> has been upgraded from version 20110225.01 to 20110228.00. =item * @@ -122,6 +157,13 @@ C<ExtUtils::Command> has been upgraded from version 1.16 to 1.17. =item * +C<File::Copy> has been downgraded from version 2.22 to 2.21. + +An optimisation that recent core changes have rendered unnecessary has been +reverted. + +=item * + C<IO> has been upgraded from version 1.25_03 to 1.25_04. =item * @@ -144,12 +186,20 @@ C<Math::BigInt::FastCalc> has been upgraded from version 0.24_02 to 0.28 C<Module::Build> has been upgraded from version 0.37_05 to 0.3800 +=item + +C<Module::CoreList> has been upgraded from version 2.45 to 2.46. + =item * C<parent> has been upgraded from version 0.224 to 0.225 =item * +C<Storable> has been upgraded from version 2.26 to 2.27. + +=item * + C<Test::Harness> has been upgraded from version 3.22 to 3.23 =item * @@ -158,6 +208,12 @@ C<Test::Simple> has been upgraded from version 0.97_01 to 0.98 =item * +C<Tie::Hash::NamedCapture> has been upgraded from version 0.07 to 0.08. + +Some of the Perl code has been converted to XS for efficency's sake. + +=item * + C<Tie::RefHash> has been upgraded from version 1.38 to 1.39. =item * @@ -289,6 +345,15 @@ Regexp modifiers "/%c" and "/%c" are mutually exclusive (F syntax) The regular expression pattern had more than one of the mutually exclusive modifiers. Retain only the modifier that is supposed to be there. +=item * + +Insecure user-defined property %s + +(F) Perl detected tainted data when trying to compile a regular +expression that contains a call to a user-defined character property +function, i.e. C<\p{IsFoo}> or C<\p{InFoo}>. +See L<perlunicode/User-Defined Character Properties> and L<perlsec>. + =back =head2 Changes to Existing Diagnostics @@ -347,13 +412,24 @@ large changes to the testing harness (e.g. when parallel testing was added). Changes to existing files in F<t/> aren't worth summarising, although the bugs that they represent may be covered elsewhere. -[ List each test improvement as a =item entry ] +Some of the tests have been refactored. In some cases they were moved to +new files: =over 4 =item * -XXX +The tests for C<split /\s/> and Unicode have been moved from +F<t/op/split.t> to F<t/op/split_unicode.t>. + +=item * + +F<t/re/re.t> has been moved to F<ext/re/t/re_funcs_u.t>. + +=item * + +The tests for [perl #72922] have been moved from F<t/re/qr.t> to +F<t/re/qr-72922.t>. =back @@ -434,7 +510,46 @@ L</Modules and Pragmata>. A fix for a bug in C<length(undef)> in 5.13.4 introduced a regression that meant C<print length undef> did not warn when warnings were enabled. It now -correctly warns (RT #85508). +correctly warns [perl #85508]. + +=item * + +The C<(?|...)> regular expression construct no longer crashes if the final +branch has more sets of capturing parentheses than any other branch. This +was fixed in Perl 5.10.1 for the case of a single branch, but that fix did +not take multiple branches into account [perl #84746]. + +=item * + +Accessing an element of a package array with a hard-coded number (as +opposed to an arbitrary expression) would crash if the array did not exist. +Usually the array would be autovivified during compilation, but typeglob +manipulation could remove it, as in these two cases which used to crash: + + *d = *a; print $d[0]; + undef *d; print $d[0]; + +=item * + +C<#line> directives in string evals were not properly updating the arrays +of lines of code (C<< @{"_<..."} >>) that the debugger (or any debugging or +profiling module) uses. In threaded builds, they were not being updated at +all. In non-threaded builds, the line number was ignored, so any change to +the existing line number would cause the lines to be misnumbered +[perl #79442]. + +=item * + +C<$AUTOLOAD> used to remain tainted forever if it ever became tainted. Now +it is correctly untainted if an autoloaded method is called and the method +name was not tainted. + +=item * + +A bug has been fixed in the implementation of C<{...}> quantifiers in +regular expressions that prevented the code block in +C</((\w+)(?{ print $2 })){2}/> from seeing the C<$2> sometimes +[perl #84294]. =back |