X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/a8ba758dd5059433a645c02519c488320cd39cff..222b5ca9896e49f76fcbb1f6e1e73b312570868c:/pod/perldelta.pod diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 6b0e2a4..4964913 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.27.5 +perldelta - what is new for perl v5.27.7 =head1 DESCRIPTION -This document describes differences between the 5.27.4 release and the 5.27.5 +This document describes differences between the 5.27.6 release and the 5.27.7 release. -If you are upgrading from an earlier release such as 5.27.3, first read -L, which describes differences between 5.27.3 and 5.27.4. +If you are upgrading from an earlier release such as 5.27.5, first read +L, which describes differences between 5.27.5 and 5.27.6. =head1 Notice @@ -27,6 +27,11 @@ here, but most should go in the L section. [ List each enhancement as a =head2 entry ] +=head2 The C C<%j> format size modifier is now available with +pre-C99 compilers + +The actual size used depends on the platform, so remains unportable. + =head1 Security XXX Any security-related notices go here. In particular, any security @@ -45,13 +50,32 @@ XXX For a release on a stable branch, this section aspires to be: [ List each incompatible change as a =head2 entry ] +=head2 Over-radix digits in floating point literals + +Octal and binary floating point literals used to permit any hexadecimal +digit to appear after the radix point. The digits are now restricted +to those appropriate for the radix, as digits before the radix point +always were. + =head1 Deprecations XXX Any deprecated features, syntax, modules etc. should be listed here. +=head2 Assignment to C<$[> will be fatal in Perl 5.30 + +Assigning a non-zero value to L|perlvar/$[> has been deprecated +since Perl 5.12, but was never given a deadline for removal. This has +now been scheduled for Perl 5.30. + +=head2 hostname() won't accept arguments in Perl 5.32 + +Passing arguments to C was already deprecated, +but didn't have a removal date. This has now been scheduled for Perl +5.32. [perl #124349] + =head2 Module removals -XXX Remove this section if inapplicable. +XXX Remove this section if not applicable. The following modules will be removed from the core distribution in a future release, and will at that time need to be installed from CPAN. @@ -69,7 +93,7 @@ not usually on concerns over their design. =over -=item XXX +=item L and its associated Country, Currency and Language modules XXX Note that deprecated modules should be listed here even if they are listed as an updated module in the L section. @@ -115,7 +139,7 @@ release manager will have to investigate the situation carefully.) =item * -XXX +XXX Remove this section if not applicable. =back @@ -125,7 +149,32 @@ XXX =item * -L has been upgraded from version A.xx to B.yy. +L has been upgraded from version 3.54 to 3.55 + +B: L is deprecated in core and will be removed +from Perl 5.30. + +=item * + +L has been upgraded from version 2.19 to 2.20. +The documentation now better describes the problems that arise when +returning values from threads, and no longer warns about creating threads +in C blocks. [perl #96538] + +=item * + +L has been upgraded from version 2.167_02 to 2.169. +Quoting of glob names now obeys the Useqq option [perl #119831]. +Attempts to set an option to C through a combined getter/setter +method are no longer mistaken for getter calls [perl #113090]. + +=item * + +L has been upgraded from version 1.2203 to 1.23. +A title for the HTML document will now be automatically generated by +default from a "NAME" section in the POD document, as it used to be +before the module was rewritten to use L to do the +core of its job. [perl #110520] =back @@ -164,7 +213,91 @@ section. Additionally, the following selected changes have been made: -=head3 L +=head3 L + +The API functions C, C, and C +are now documented comprehensively, where previously the only +documentation was a reference to the L tutorial. + +The documentation of C has been belatedly updated to +account for the removal of lexical C<$_>. + +The API functions C and C are +documented much more comprehensively than before. + +=head3 L + +The general explanation of operator precedence and associativity has +been corrected and clarified. [perl #127391] + +The documentation for the C<\> referencing operator now explains the +unusual context that it supplies to its operand. [perl #131061] + +=head3 L + +The means to disambiguate between code blocks and hash constructors, +already documented in L, are now documented in L too. +[perl #130958] + +=head3 L + +There is now a note that warnings generated by built-in functions are +documented in L and L. [perl #116080] + +The documentation for the C operator no longer says that +autovivification behaviour "may be fixed in a future release". +We've determined that we're not going to change the default behaviour. +[perl #127712] + +A couple of small details in the documentation for the C operator +have been clarified. [perl #124428] + +The description of C<@INC> hooks in the documentation for C +has been corrected to say that filter subroutines receive a useless +first argument. [perl #115754] + +The documentation of C now explains what syntactically qualifies +as a version number for its module version checking feature. + +=head3 L + +For each binary table or property, the documentation now includes which +characters in the range C<\x00-\xFF> it matches, as well as a list of +the first few ranges of code points matched above that. + +=head3 L + +The documentation about C methods has been corrected, updated, +and revised, especially in regard to how they interact with exceptions. +[perl #122753] + +=head3 L + +The documentation about set-id scripts has been updated and revised. +[perl #74142] + +A section about using C to run Perl scripts has been added. + +=head3 L + +The examples in L have been made more portable in the way +they exit, and the example that gets an exit code from the embedded Perl +interpreter now gets it from the right place. The examples that pass +a constructed argv to Perl now show the mandatory null C. + +=head3 L + +The description of the conditions under which C will be called +has been clarified. [perl #131672] + +=head3 L + +The internal functions C and C are +now documented. + +=head3 L + +The precise rules for identifying C branches are now stated. =over 4 @@ -194,7 +327,10 @@ and New Warnings =item * -XXX L +LgotoE into a EgivenE block"> + +(F) A "goto" statement was executed to jump into the middle of a C +block. You can't get there from here. See L. =back @@ -204,7 +340,12 @@ XXX L =item * -XXX L +L + +(W syntax) You used the old package separator, "'", in a variable +named inside a double-quoted string; e.g., C<"In $name's house">. This +is equivalent to C<"In $name::s house">. If you meant the former, put +a backslash before the apostrophe (C<"In $name\'s house">). =back @@ -218,6 +359,30 @@ XXX Changes (i.e. rewording) of diagnostic messages go here XXX Describe change here +=item * + +The warning about useless use of a concatenation operator in void context +is now generated for expressions with multiple concatenations, such as +C<$a.$b.$c>, which used to mistakenly not warn. [perl #6997] + +=item * + +Warnings that a variable or subroutine "masks earlier declaration in same +...", or that an C variable has been redeclared, have been moved to a +new warnings category "shadow". Previously they were in category "misc". + +=item * + +The deprecation warning from C saying that +it doesn't accept arguments now states the Perl version in which the +warning will be upgraded to an error. [perl #124349] + +=item * + +The L entry for the error regarding a set-id script has been +expanded to make clear that the error is reporting a specific security +vulnerability, and to advise how to fix it. + =back =head1 Utility Changes @@ -254,6 +419,13 @@ L section, instead. XXX +=item * + +Where an HTML version of the doucmentation is installed, the HTML +documents now use relative links to refer to each other. Links from +the index page of L to the individual section documents are +now correct. [perl #110056] + =back =head1 Testing @@ -328,9 +500,10 @@ L section. =over 4 -=item XXX-some-platform +=item Windows -XXX +We now set C<$Config{libpth}> correctly for 64-bit builds using Visual C++ +versions earlier than 14.1. =back @@ -340,13 +513,25 @@ 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. -[ List each change as an =item entry ] - =over 4 =item * -XXX +XS modules can now automatically get reentrant versions of system +functions on threaded perls. + +By saying + + #define PERL_REENTRANT + +near the beginning of an C file, it will be compiled so that +whatever reentrant functions perl knows about on that system will +automatically and invisibly be used instead of the plain, non-reentrant +versions. For example, if you write C in your code, on a +system that has C all calls to the former will be translated +invisibly into the latter. This does not happen except on threaded +perls, as they aren't needed otherwise. Be aware that which functions +have reentrant versions varies from system to system. =back @@ -363,6 +548,91 @@ files in F and F are best summarized in L. XXX +=item * + +Digits past the radix point in octal and binary floating point literals +now have the correct weight on platforms where a floating point +significand doesn't fit into an integer type. + +=item * + +C in a C or C block no longer permits the +main program to run, and C in a C block no longer permits +C blocks to run before exiting. [perl #2754] + +=item * + +The canonical truth value no longer has a spurious special meaning as +a callable. It used to be a magic placeholder for a missing C +or C method. It is now treated like any other string C<1>. +[perl #126042] + +=item * + +The C built-in function now checks at compile time that +it has only one parameter expression, and puts it in scalar context, +thus ensuring that it doesn't corrupt the stack at runtime. [perl #4574] + +=item * + +C now performs correct reference counting when aliasing C<$a> and +C<$b>, thus avoiding premature destruction and leakage of scalars if they +are re-aliased during execution of the sort comparator. [perl #92264] + +=item * + +C with no operand, reversing C<$_> by default, is no longer in +danger of corrupting the stack. [perl #132544] + +=item * + +C, C, et al are no longer liable to have their argument +lists corrupted by reentrant calls and by magic such as tied scalars. +[perl #129888] + +=item * + +Perl's own C no longer gets confused by attempts to allocate +more than a gigabyte on a 64-bit platform. [perl #119829] + +=item * + +Stacked file test operators in a sort comparator expression no longer +cause a crash. [perl #129347] + +=item * + +An identity C transformation on a reference is no longer mistaken +for that reference for the purposes of deciding whether it can be +assigned to. [perl #130578] + +=item * + +Lengthy hexadecimal, octal, or binary floating point literals no +longer cause undefined behaviour when parsing digits that are of such +low significance that they can't affect the floating point value. +[perl #131894] + +=item * + +C and similar invocations no longer leak the file +handle. [perl #115814] + +=item * + +Some convoluted kinds of regexp no longer cause an arithmetic overflow +when compiled. [perl #131893] + +=item * + +The default typemap, by avoiding C, now no longer leaks when +XSUBs return file handles (C or C). [perl #115814] + +=item * + +Creating a C block as an XS subroutine with a prototype no longer +crashes because of the early freeing of the subroutine. + =back =head1 Known Problems @@ -394,14 +664,14 @@ the perldelta of a previous release. =head1 Obituary -XXX If any significant core contributor has died, we've added a short obituary -here. +XXX If any significant core contributor or member of the CPAN community has +died, add a short obituary here. =head1 Acknowledgements XXX Generate this with: - perl Porting/acknowledgements.pl v5.25.5..HEAD + perl Porting/acknowledgements.pl v5.27.6..HEAD =head1 Reporting Bugs