diff options
author | Ricardo Signes <rjbs@cpan.org> | 2015-04-26 18:21:47 -0400 |
---|---|---|
committer | Ricardo Signes <rjbs@cpan.org> | 2015-05-05 21:15:00 -0400 |
commit | fe80ffc932949efbc4c191ebb6b308f22ddeccfa (patch) | |
tree | 1f584d3b4ca51fdddcbc469a953c5774e687f2e8 | |
parent | 4f1684ad2bc9346e902379ee350a3ca8a1d39b7d (diff) | |
download | perl-fe80ffc932949efbc4c191ebb6b308f22ddeccfa.tar.gz |
perldelta: import changes from perl52110delta
-rw-r--r-- | Porting/perl5220delta.pod | 155 |
1 files changed, 154 insertions, 1 deletions
diff --git a/Porting/perl5220delta.pod b/Porting/perl5220delta.pod index d4709a7c2d..f204dd6a6f 100644 --- a/Porting/perl5220delta.pod +++ b/Porting/perl5220delta.pod @@ -339,6 +339,15 @@ consistency, this is now changed to match what terminates comment lines outside S<C<(?[ ])>>, namely a C<\n> (even if escaped), which is the same as what terminates a heredoc string and formats. +=head2 C<(?[...])> operators now follow standard Perl precedence + +This experimental feature allows set operations in regular expression patterns. +Prior to this, the intersection operator had the same precedence as the other +binary operators. Now it has higher precedence. This could lead to different +outcomes than existing code expects (though the documentation has always noted +that this change might happen, recommending fully parenthesizing the +expressions). See L<perlrecharclass/Extended Bracketed Character Classes>. + =head2 Omitting % and @ on hash and array names is no longer permitted Really old Perl let you omit the @ on array names and the % on hash @@ -670,6 +679,14 @@ optimization does not currently apply to XSUBs or exported subroutines, and method calls will undo it, since they cache things in typeglobs. L<[perl #120441]|https://rt.perl.org/Ticket/Display.html?id=120441> +=item * + +The functions C<utf8::native_to_unicode()> and C<utf8::unicode_to_native()> +(see L<utf8>) are now optimized out on ASCII platforms. There is now not even +a minimal performance hit in writing code portable between ASCII and EBCDIC +platforms. + + =back =head1 Modules and Pragmata @@ -788,6 +805,8 @@ Further clarify version number representations and usage. Instead of pointing to the module list, we are now pointing to L<PrePAN|http://prepan.org/>. +=back + =head3 L<perlrebackslash> =over 4 @@ -1078,6 +1097,15 @@ diagnostic messages, see L<perldiag>. =item * +L<Invalid quantifier in {,} in regex; marked by <-- HERE in mE<sol>%sE<sol>|perldiag/"Invalid quantifier in {,} in regex; marked by <-- HERE in m/%s/"> + +(F) The pattern looks like a {min,max} quantifier, but the min or max could not +be parsed as a valid number - either it has leading zeroes, or it represents +too big a number to cope with. The S<<-- HERE> shows where in the regular +expression the problem was discovered. See L<perlre>. + +=item * + L<Bad symbol for scalar|perldiag/"Bad symbol for scalar"> (P) An internal request asked to add a scalar entry to something that @@ -1811,6 +1839,10 @@ see the discussion below at L<< /Internal Changes >>. =item * +Tests for performance issues have been added in the file F<t/perf/taint.t>. + +=item * + Some regular expression tests are written in such a way that they will run very slowly if certain optimizations break. These tests have been moved into new files, F<< t/re/speed.t >> and F<< t/re/speed_thr.t >>, @@ -1832,9 +1864,26 @@ working correctly. See L</Infinity and NaN (not-a-number) handling improved>. =head2 Regained Platforms -IRIX and Tru64 platforms are working again. +=over 4 + +=item IRIX and Tru64 platforms are working again. + (Some C<make test> failures remain.) +=item z/OS running EBCDIC Code Page 1047 + +Core perl now works on this EBCDIC platform. Earlier perls also worked, but, +even though support wasn't officially withdrawn, recent perls would not compile +and run well. Perl 5.20 would work, but had many bugs which have now been +fixed. Many CPAN modules that ship with Perl still fail tests, including +Pod::Simple. However the version of Pod::Simple currently on CPAN should work; +it was fixed too late to include in Perl 5.22. Work is under way to fix many +of the still-broken CPAN modules, which likely will be installed on CPAN when +completed, so that you may not have to wait until Perl 5.24 to get a working +version. + +=back + =head2 Discontinued Platforms =over 4 @@ -1862,6 +1911,10 @@ invoked if any of the C<\N{...}> forms for specifying a character by name or Unicode code point is used instead of a literal. See L<perlrecharclass/Character Ranges>. +=item HP-UX + +The archname now distinguishes use64bitint from use64bitall. + =item Android Build support has been improved for cross-compiling in general and for @@ -1997,6 +2050,16 @@ as well as C<SUNWspro>, and support for native C<setenv> has been added. =item * +Macros have been created to allow XS code to better manipulate the POSIX locale +category C<LC_NUMERIC>. See L<perlapi/Locale-related functions and macros>. + +=item * + +The previous C<atoi> et al replacement function, C<grok_atou>, has now been +superseded by C<grok_atoUV>. See L<perlclib> for details. + +=item * + Added Perl_sv_get_backrefs() to determine if an SV is a weak-referent. Function either returns an SV * of type AV, which contains the set of @@ -2241,6 +2304,69 @@ index is still done using C<aelemfast>. =item * +Repeated global pattern matches in scalar context on large tainted strings were +exponentially slow depending on the current match position in the string. +L<[perl #123202]|https://rt.perl.org/Ticket/Display.html?id=123202> + +=item * + +Various crashes due to the parser getting confused by syntax errors have been +fixed. +L<[perl #123801]|https://rt.perl.org/Ticket/Display.html?id=123801> +L<[perl #123802]|https://rt.perl.org/Ticket/Display.html?id=123802> +L<[perl #123955]|https://rt.perl.org/Ticket/Display.html?id=123955> +L<[perl #123995]|https://rt.perl.org/Ticket/Display.html?id=123995> + +=item * + +C<split> in the scope of lexical $_ has been fixed not to fail assertions. +L<[perl #123763]|https://rt.perl.org/Ticket/Display.html?id=123763> + +=item * + +C<my $x : attr> syntax inside various list operators no longer fails +assertions. +L<[perl #123817]|https://rt.perl.org/Ticket/Display.html?id=123817> + +=item * + +An @ sign in quotes followed by a non-ASCII digit (which is not a valid +identifier) would cause the parser to crash, instead of simply trying the @ as +literal. This has been fixed. +L<[perl #123963]|https://rt.perl.org/Ticket/Display.html?id=123963> + +=item * + +C<*bar::=*foo::=*glob_with_hash> has been crashing since Perl 5.14, but no +longer does. +L<[perl #123847]|https://rt.perl.org/Ticket/Display.html?id=123847> + +=item * + +C<foreach> in scalar context was not pushing an item on to the stack, resulting +in bugs. (C<print 4, scalar do { foreach(@x){} } + 1> would print 5.) It has +been fixed to return C<undef>. +L<[perl #124004]|https://rt.perl.org/Ticket/Display.html?id=124004> + +=item * + +A memory leak introduced in Perl 5.21.6 has been fixed. +L<[perl #123922]|https://rt.perl.org/Ticket/Display.html?id=123922> + +=item * + +A regression in the behaviour of the C<readline> built-in function, caused by +the introduction of the C<< <<>> >> operator, has been fixed. +L<[perl #123990]|https://rt.perl.org/Ticket/Display.html?id=123990> + +=item * + +Several cases of data used to store environment variable contents in core C +code being potentially overwritten before being used have been fixed. +L<[perl #123748]|https://rt.perl.org/Ticket/Display.html?id=123748> + +=item * + Patterns starting with C</.*/> are now fast again. [rt.perl.org #123743] =item * @@ -3014,6 +3140,33 @@ platform specific bugs also go here. =item * +A goal is for Perl to be able to be recompiled to work reasonably well on any +Unicode version. In Perl 5.22, though, the earliest such version is Unicode +5.1 (current is 7.0). + +=item * + +EBCDIC platforms + +=over 4 + +=item * + +Encode and encoding are mostly broken. + +=item * + +Many cpan modules that are shipped with core show failing tests. + +=item * + +C<pack>/C<unpack> with C<"U0"> format may not work properly. + +=back + + +=item * + XXX Check this list before the release of 5.22.0 for modules that have been fixed. |