X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/9c600b76440463f3a65cbd5daf6fc63a55e5cc21..71c89d211a61ffe1c5b9b28229483814d2eb2825:/pod/perldelta.pod diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 7c127f6..211ee4a 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.31.2 +perldelta - what is new for perl v5.31.5 =head1 DESCRIPTION -This document describes differences between the 5.31.1 release and the 5.31.2 +This document describes differences between the 5.31.4 release and the 5.31.5 release. -If you are upgrading from an earlier release such as 5.31.0, first read -L, which describes differences between 5.31.0 and 5.31.1. +If you are upgrading from an earlier release such as 5.31.3, first read +L, which describes differences between 5.31.3 and 5.31.4. =head1 Notice @@ -45,6 +45,24 @@ XXX For a release on a stable branch, this section aspires to be: [ List each incompatible change as a =head2 entry ] +=head2 Modifiable variables are no longer permitted in constants + +Code like: + + my $var; + $sub = sub () { $var }; + +where C<$var> is referenced elsewhere in some sort of modiable context +now produces an exception when the sub is defined. + +This error can be avoided by adding a return to the sub definition: + + $sub = sub () { return $var }; + +This has been deprecated since perl 5.22. + +[perl #131138] + =head1 Deprecations XXX Any deprecated features, syntax, modules etc. should be listed here. @@ -95,45 +113,49 @@ XXX =head1 Modules and Pragmata -=head2 Updated Modules and Pragmata - -=over 4 +XXX All changes to installed files in F, F, F and F +go here. If Module::CoreList is updated, generate an initial draft of the +following sections using F. A paragraph summary +for important changes should then be added by hand. In an ideal world, +dual-life modules would have a F file that could be cribbed. -=item * +The list of new and updated modules is modified automatically as part of +preparing a Perl release, so the only reason to manually add entries here is if +you're summarising the important changes in the module update. (Also, if the +manually-added details don't match the automatically-generated ones, the +release manager will have to investigate the situation carefully.) -L has been upgraded from version 3.53 to 3.54. +[ Within each section, list entries as an =item entry ] -=item * +=head2 New Modules and Pragmata -L has been upgraded from version 5.73 to 5.74. +=over 4 =item * -L has been upgraded from version 1.02 to 1.04. - -=item * +XXX Remove this section if not applicable. -L has been upgraded from version 4.02 to 4.04. +=back -=item * +=head2 Updated Modules and Pragmata -L has been upgraded from version 5.20190620 to 5.20190720. +=over 4 =item * -L has been upgraded from version 1.43 to 1.44. +L has been upgraded from version A.xx to B.yy. -=item * +If there was something important to note about this change, include that here. -L has been upgraded from version 0.27 to 0.28. +=back -=item * +=head2 Removed Modules and Pragmata -L has been upgraded from version 3.38 to 3.39. +=over 4 =item * -L has been upgraded from version 1.60 to 1.61. +XXX =back @@ -214,12 +236,7 @@ XXX Changes (i.e. rewording) of diagnostic messages go here =item * -C<\N{} here is restricted to one character> is now emitted in the same -circumstances where previously C<\N{} in inverted character class or as -a range end-point is restricted to one character> was. - -This is due to new circumstances having been added in perl v5.30 that -weren't covered by the earlier wording. +XXX Describe change here =back @@ -255,14 +272,9 @@ L section, instead. =item * -The C macro is now defined. This is used in a C rule -that was originally changed for FreeBSD, and the FreeBSD make -apparently predefines it. The Solaris make does not predefine C -which broke this rule on Solaris. [perl #134218] - -=item * - -Bison versions 3.1 through 3.4 are now supported. +Perl now no longer probes for C, defaulting to C +on all platforms. This check was error prone when it was done, which +was on 32-bit platforms only. [perl #133495] =back @@ -338,14 +350,9 @@ L section. =over 4 -=item Linux - -C will be used to populate C if C is C. [perl -#134189] - -=item VMS +=item XXX-some-platform -C<-Duse64bitint> is now the default on VMS. +XXX =back @@ -361,23 +368,19 @@ well. =item * -The PERL_DESTRUCT_LEVEL environment variable was formerly only honored on -perl binaries built with DEBUGGING support. It is now checked on all perl -builds. Its normal use is to force perl to individually free every block -of memory which it has allocated before exiting, which is useful when -using automated leak detection tools such as valgrind. - -=item * - -The API eval_sv() now accepts a C flag. If this flag is -set and an exception is thrown while compiling or executing the -supplied code, it will be rethrown, and eval_sv() will not return. -[perl #134177] +Added the C<si_cxsubix>> field. This records the stack +index of the most recently pushed sub/format/eval context. It is set and +restored automatically by C, C etc., but would +need to be manually managed if you do any unusual manipulation of the +context stack. =item * -As part of the fix for [perl #2754] perl_parse() now returns non-zero -if exit(0) is called in a C, C or C block. +Various macros dealing with character type classification and changing +case where the input is encoded in UTF-8 now require an extra parameter +to prevent potential reads beyond the end of the buffer. Use of these +has generated a deprecation warning since 5.26. Details are in +L =back @@ -392,28 +395,7 @@ files in F and F are best summarized in L. =item * -Parsing incomplete hex or binary literals was changed in 5.31.1 to -treat such a literal as just the 0, leaving the following C or C -to be parsed as part of the next token. This could lead to some -silent changes in behaviour, so now incomplete hex or binary literals -produce a fatal error. [perl #134125] - -=item * - -eval_pv()'s I flag will now throw even if the -exception is a false overloaded value. [perl #134177] - -=item * - -C blocks and the program itself are no longer run if exit(0) is -called within a C, C or C block. [perl -#2754] - -=item * - -C<<< open my $fh, ">>+", undef >>> now opens the temporary file in -append mode - writes will seek to the end of file before writing. -[perl #134221] +XXX =back @@ -429,12 +411,7 @@ platform specific bugs also go here. =item * -The VC++ 6.0 build on Windows is currently broken. - -=item * - -Tests 9-11 in F currently fail on Windows. -[perl #134295] +XXX =back @@ -458,13 +435,13 @@ died, add a short obituary here. XXX Generate this with: - perl Porting/acknowledgements.pl v5.31.1..HEAD + perl Porting/acknowledgements.pl v5.31.4..HEAD =head1 Reporting Bugs If you find what you think is a bug, you might check the perl bug database at L. There may also be information at -L, the Perl Home Page. +L, the Perl Home Page. If you believe you have an unreported bug, please run the L program included with your release. Be sure to trim your bug down to a tiny but