X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/0d314ba30623b19c36dfc97ac4b6ecb94cb406f4..be39acb2d731fef6f575d98c6fb0cf896ab8c72d:/pod/perldelta.pod diff --git a/pod/perldelta.pod b/pod/perldelta.pod index cf96a9b..5d8741c 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -5,15 +5,15 @@ [ this is a template for a new perldelta file. Any text flagged as XXX needs to be processed before release. ] -perldelta - what is new for perl v5.21.10 +perldelta - what is new for perl v5.21.11 =head1 DESCRIPTION -This document describes differences between the 5.21.9 release and the 5.21.10 +This document describes differences between the 5.21.10 release and the 5.21.11 release. -If you are upgrading from an earlier release such as 5.21.8, first read -L, which describes differences between 5.21.8 and 5.21.9. +If you are upgrading from an earlier release such as 5.21.9, first read +L, which describes differences between 5.21.9 and 5.21.10. =head1 Notice @@ -49,9 +49,12 @@ XXX For a release on a stable branch, this section aspires to be: XXX Any deprecated features, syntax, modules etc. should be listed here. -=head2 FATAL warnings are now discouraged +=head2 Making all warnings fatal is discouraged -Cautions against use of FATAL warnings have been strengthened. +The documentation for L notes +that C<< use warnings FATAL => 'all' >> is discouraged +and provides stronger language about the risks of fatal warnings +in general. =head2 Module removals @@ -93,12 +96,7 @@ There may well be none in a stable release. =item * -The functions -C and -C (see L) -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. +XXX =back @@ -128,113 +126,74 @@ XXX =item * -L has been upgraded from version 1.56 to 1.57. - -=item * - -L has been upgraded from version 1.33 to 1.34. - -Deparse C<$#_> as that instead of as C<$#{_}>. [perl #123947] - -=item * - -L has been upgraded from version 2.05 to 2.10. - -=over 4 - -=item * - -Add support for C and introduce workaround for a misbehaviour -seen on Strawberry Perl 5.20.1. - -=item * - -Fix C after building dependencies bug. +L has been upgraded from version 0.26 to 0.27. =item * -Introduce experimental support for plugins/hooks. +L has been upgraded from version 1.57 to 1.58. =item * -Integrate the App::Cpan sources. +L has been upgraded from version 1.34 to 1.35. -=item * - -Do not check recursion on optional dependencies. - -=item * - -Sanity check META.yml to contain a hash. -L<[cpan #95271]|https://rt.cpan.org/Ticket/Display.html?id=95271> - -=back - -=item * - -L has been upgraded from version 2.157 to 2.158. +C<< <<>> >> is now correctly deparsed. =item * -L has been upgraded from version 1.31 to 1.32. +L has been upgraded from version 0.23 to 0.24. =item * -L has been upgraded from version 2.70 to 2.72. +L has been upgraded from version 3.55 to 3.56. =item * -L has been upgraded from version 2.13 to 2.14. +L has been upgraded from version 1.04 to 1.05. =item * -L has been upgraded from version 2.43 to 2.45. +L has been upgraded from version 3.27 to 3.28. =item * -L has been upgraded from version 1.05 to 1.06. +L has been upgraded from version 3.25 to 3.28. =item * -L has been upgraded from version 3.33 to 3.34. +L has been upgraded from version 3.55 to 3.56. =item * -L has been reverted from version 5.20150220 to 5.20150320. - -=item * +L has been upgraded from version 0.0603 to 0.0604. -L has been upgraded from version 1.08 to 1.09. +The documentation now notes that this module also works with C. =item * -L has been upgraded from version 1.51 to 1.52. +L has been upgraded from version 0.36 to 0.37. =item * -L has been upgraded from version 0.31 to 0.32. +L has been upgraded from version 5.20150320 to 5.20150420. -=item * - -L has been reverted from version 1.301001_098 to 1.001014. +Updated to cover the latest releases of Perl. Also fixes a fencepost error in +is_core() and copes with versions that do not match x.yyyzzz. =item * -L has been upgraded from version 2.02 to 2.03. +L has been upgraded from 1.48 to 1.49. -No changes to installed files other than the version bump. +The debugger would cause an assertion failure. [perl #124127] =item * -L has been upgraded from version 1.96_001 to 1.99. +L has been upgraded from version 0.013 to 0.014. =item * -L has been upgraded from version 1.14 to 1.15. - -=item * +L has been upgraded from version 1.15 to 1.16. -L has been upgraded from version 0.70 to 0.71. +Minor documentation update only. =item * @@ -271,40 +230,79 @@ XXX Changes which significantly change existing files in F go here. However, any changes to F should go in the L section. -=head3 L +=head3 L =over 4 =item * -Documentation has been added regarding the special floating point values C -and C. +This document has been significantly updated in the light of recent +improvements to EBCDIC support. =back -=head3 L +=head3 L =over 4 =item * -Removed note about C<\s> matching C now that it is no longer experimental. +Mention that C is currently a no-op. + +=back + +=head3 L + +=over 4 + +=item * + +The OOK example has been updated to account for COW changes and a change in the +storage of the offset. + +=back + +=head3 L + +=over 4 + +=item * + +Documentation has been added illustrating the perils of assuming the contents of +static memory pointed to by the return values of Perl wrappers for C library +functions doesn't change. + +=back + +=head3 L + +=over 4 + +=item * + +Out-of-date VMS-specific information has been fixed/simplified. + +=back + +=head3 L + +=over 4 =item * -Added note that C has been introduced experimentally. +Advice for how to make sure your strings and regular expression patterns are +interpreted as Unicode has been revised to account for the new 5.22 EBCDIC +handling. =back -=head3 L +=head3 L =over 4 =item * -The documentation of what to expect to see in future maintenance releases has -been updated. Essentially the same types of changes will be included as before -but with fewer changes that don't affect the installation or execution of perl. +Out-of-date and/or incorrect material has been removed. =back @@ -328,12 +326,7 @@ and New Warnings =item * -L%sE|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. +XXX L =back @@ -409,7 +402,10 @@ that they represent may be covered elsewhere. =item * -Tests for performance issues have been added in the file F. +F has been added to test that L and its +dependencies only use the subset of the C<$1..$n> capture vars that +Perl_save_re_context() is hard-coded to localize, because that function has no +efficient way of determining at runtime what vars to localize. =back @@ -456,25 +452,73 @@ L section. =over 4 -=item XXX-some-platform +=item Win32 -XXX +F is now built with C<-fno-strict-aliasing>, allowing +64-bit builds to complete on GCC 4.8. [perl #123976] + +C again depends on C for GCC builds. [perl +#124221] =back =head1 Internal Changes -XXX Changes which affect the interface available to C code go here. Other -significant internal changes for future core maintainers should be noted as -well. +=over 4 + +=item * -[ List each change as a =item entry ] +5.21.2 introduced a new build option, C<-DPERL_OP_PARENT>, which causes +the last C pointer to refer back to the parent rather than +being C, and where instead a new flag indicates the end of the +chain. In this release, the new implementation has been revised; in +particular: =over 4 =item * -XXX +On C builds, the C field has been renamed +C to reflect its new dual purpose. Since the intention is that +this field should primarily be accessed via macros, this change should be +transparent for code written to work under C. + +=item * + +The newly-introduced C flag bit has been renamed C +and its logic inverted; i.e. it is initialised to zero in a new op, and is +changed to 1 when an op gains a sibling. + +=item * + +The function C is now only available on C +builds. Using it on a plain build will be a compile-timer error. + +=item * + +Three new macros, C, C, C +have been added, which are intended to be be a low-level portable way to +set C / C while also updating C. +The first sets the sibling pointer to a new sibling, the second makes the +op the last sibling, and the third conditionally does the first or second +action. The C function is retained as a higher-level +interface that can also maintain consistency in the parent at the same time +(e.g. by updating C and C where appropriate). + +=item * + +The macro C, added in 5.21.2, has been removed. It didn't +manipulate C and has been superseded by C et +al. + +=item * + +The C function now accepts a null C argument +where the splicing doesn't affect the first or last ops in the sibling +chain, and thus where the parent doesn't need to be updated accordingly. + +=back + =back @@ -489,9 +533,78 @@ files in F and F are best summarized in L. =item * -Repeated global pattern matches in scalar context on large tainted -strings were exponentially slow depending on the current match -position in the string. [perl #123202] +C and C now zero the padding on x86 long +double builds. GCC 4.8 and later, under some build options, would +either overwrite the zero-initialized padding, or bypass the +initialized buffer entirely. This caused F to fail. [perl +#123971] + +=item * + +Extending an array cloned from a parent thread could result in +"Modification of a read-only value attempted" errors when attempting +to modify the new elements. [perl #124127] + +=item * + +An assertion failure and subsequent crash with C<< *x= >> has been fixed. +[perl #123790] + +=item * + +An optimization for state variable initialization introduced in Perl 5.21.6 has +been reverted because it was found to exacerbate some other existing buggy +behaviour. [perl #124160] + +=item * + +The extension of another optimization to cover more ops in Perl 5.21 has also +been reverted to its Perl 5.20 state as a temporary fix for regression issues +that it caused. [perl #123790] + +=item * + +New bitwise ops added in Perl 5.21.9 accidentally caused C<$^H |= 0x1c020000> +to enable all features. This has now been fixed. + +=item * + +A possible crashing/looping bug has been fixed. [perl #124099] + +=item * + +UTF-8 variable names used in array indexes, unquoted UTF-8 HERE-document +terminators and UTF-8 function names all now work correctly. [perl #124113] + +=item * + +Breakage in C (with parentheses), introduced in Perl 5.21.6, +has been fixed. [perl #124135] + +=item * + +Wide char warnings, wrongly raised in UTF-8 locales since Perl 5.21.8, are now +suppressed. [perl #123527] + +=item * + +A subtle bug introduced in Perl 5.21.4 involving UTF-8 in regular expressions +and sometimes causing a crash has been fixed. A new test script has been added +to test this fix; see under L. [perl #124109] + +=item * + +A change introduced in Perl 5.21.10 that broke the autovivification CPAN module +has been reverted. + +=item * + +A bug whereby C<< 'FOO'->f() >> lost the read-only status of C, introduced +in Perl 5.21.7, has been fixed. [perl #123619] + +=item * + +A regression in Perl 5.21 in the matching of C has been fixed. =back @@ -531,7 +644,7 @@ here. XXX Generate this with: - perl Porting/acknowledgements.pl v5.21.9..HEAD + perl Porting/acknowledgements.pl v5.21.10..HEAD =head1 Reporting Bugs