X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/894226fa42af3bb6f50857abf7febd95b6fcd2bc..5a48568dae7e81342fc2f8d0845423834f5c818f:/pod/perldelta.pod diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 4c15c0a..fde4186 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.25.7 +perldelta - what is new for perl v5.25.9 =head1 DESCRIPTION -This document describes differences between the 5.25.6 release and the 5.25.7 +This document describes differences between the 5.25.8 release and the 5.25.9 release. -If you are upgrading from an earlier release such as 5.25.5, first read -L, which describes differences between 5.25.5 and 5.25.6. +If you are upgrading from an earlier release such as 5.25.7, first read +L, which describes differences between 5.25.7 and 5.25.8. =head1 Notice @@ -27,38 +27,6 @@ here, but most should go in the L section. [ List each enhancement as a =head2 entry ] -=head2 Indented Here-documents - -This adds a new modifier '~' to here-docs that tells the parser -that it should look for /^\s*$DELIM\n/ as the closing delimiter. - -These syntaxes are all supported: - - <<~EOF; - <<~\EOF; - <<~'EOF'; - <<~"EOF"; - <<~`EOF`; - <<~ 'EOF'; - <<~ "EOF"; - <<~ `EOF`; - -The '~' modifier will strip, from each line in the here-doc, the -same whitespace that appears before the delimiter. - -Newlines will be copied as is, and lines that don't include the -proper beginning whitespace will cause perl to croak. - -For example: - - if (1) { - print <<~EOF; - Hello there - EOF - } - -prints "Hello there\n" with no leading whitespace. - =head1 Security XXX Any security-related notices go here. In particular, any security @@ -121,12 +89,7 @@ There may well be none in a stable release. =item * -Array and hash assignment are now faster, e.g. - - (..., @a) = (...); - (..., %h) = (...); - -especially when the RHS is empty. +XXX =back @@ -158,6 +121,10 @@ XXX L has been upgraded from version A.xx to B.yy. +=item * + +L has been upgraded from version 5.20161220 to 5.20170120. + =back =head2 Removed Modules and Pragmata @@ -189,13 +156,13 @@ 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 * -Added a section on calling methods using their fully qualified names. +XXX Description of the change here =back @@ -360,7 +327,24 @@ well. =item * -XXX +New versions of macros like C have been added, each with the +suffix C<_safe>, like C. These take an extra +parameter, giving an upper limit of how far into the string it is safe +to read. Using the old versions could cause attempts to read beyond the +end of the input buffer if the UTF-8 is not well-formed. Details are at +L. + +=item * + +Calling macros like C on malformed UTF-8 have issued a +deprecation warning since Perl v5.18. They now die. + +=item * + +Calling the functions C and its derivatives, while +passing a string length of 0 is now asserted against in DEBUGGING +builds, and otherwise returns the Unicode REPLACEMENT CHARACTER. If +you have nothing to decode, you shouldn't call the decode function. =back @@ -375,17 +359,8 @@ files in F and F are best summarized in L. =item * -List assignment in list context where the LHS contained aggregates and -where there were not enough RHS elements, used to skip scalar lvalues. -Previously, C<(($a,$b,@c,$d) = (1))> in list context returned C<($a)>; now -it returns C<($a,$b,$d)>. C<(($a,$b,$c) = (1))> is unchanged: it still -returns <($a,$b,$c)>. This can be seen in the following: - - sub inc { $_++ for @_ } - inc(($a,$b,@c,$d) = (10)) - -Formerly, the values of C<($a,$b,$d)> would be left as C<(11,undef,undef)>; -now they are C<(11,1,1)>. +Under C, the entire Perl program is now checked that the UTF-8 +is wellformed. This resolves [perl #126310]. =back