This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for ab7a3d991f6e4eb554d12bf4f083c352fe40452f
[perl5.git] / pod / perldelta.pod
index 837ff95..34aa697 100644 (file)
@@ -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.3
 
 =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.2 release and the 5.31.3
 release.
 
-If you are upgrading from an earlier release such as 5.31.0, first read
-L<perl5311delta>, which describes differences between 5.31.0 and 5.31.1.
+If you are upgrading from an earlier release such as 5.31.1, first read
+L<perl5312delta>, which describes differences between 5.31.1 and 5.31.2.
 
 =head1 Notice
 
@@ -45,6 +45,25 @@ XXX For a release on a stable branch, this section aspires to be:
 
 [ List each incompatible change as a =head2 entry ]
 
+=head2 Plain "0" string now treated as a number for range operator
+
+Previously a range C< "0" .. "-1" > would produce a range of numeric
+strings from "0" through "99", this now produces an empty list, just
+as C< 0 .. -1 > does.
+
+This was due to a special case that treated strings starting with "0"
+as strings so ranges like C< "00" .. "03" > produced C< "00", "01",
+"02", "03" >, but didn't specially handle the string C<"0">.
+
+[perl #133695]
+
+=head2 C<\K> now disallowed in look-ahead and look-behind assertions
+
+This was disallowed because it causes unexpected behaviour, and no-one
+could define what the desired behaviour was.
+
+[perl #124256]
+
 =head1 Deprecations
 
 XXX Any deprecated features, syntax, modules etc. should be listed here.
@@ -125,6 +144,45 @@ XXX Remove this section if not applicable.
 
 =item *
 
+L<Devel::PPPort> has been upgraded from version 3.54 to 3.55.
+
+The test files generated on Win32 are now identical to when they are
+generated on POSIX-like systems.
+
+=item *
+
+L<File::Find> has been upgraded from version 1.36 to 1.37.
+
+On Win32, the tests no longer require either a file in the drive root
+directory, or a writable root directory.
+
+=item *
+
+L<Thread> has been upgraded from version 3.04 to 3.05.
+
+=item *
+
+L<Getopt::Long> has been upgraded from version 2.50 to 2.51.
+
+=item *
+
+L<Time::HiRes> has been upgraded from version 1.9761 to 1.9762.
+
+Removed obsolete code such as support for pre-5.6 perl and classic
+MacOS.  [perl #134288]
+
+=item *
+
+L<I18N::LangTags> has been upgraded from version 1.07 to 1.08.
+
+Document the C<IGNORE_WIN32_LOCALE> environment variable.
+
+=item *
+
+L<Test::Simple> has been upgraded from version 1.302164 to 1.302166.
+
+=item *
+
 L<XXX> has been upgraded from version A.xx to B.yy.
 
 If there was something important to note about this change, include that here.
@@ -330,14 +388,10 @@ L</Modules and Pragmata> section.
 
 =over 4
 
-=item Linux
-
-C<cc> will be used to populate C<plibpth> if C<cc> is C<clang>.  [perl
-#134189]
-
-=item VMS
+=item Windows
 
-C<-Duse64bitint> is now the default on VMS.
+F<t/op/magic.t> could fail if environment varables starting with
+C<FOO> already existed.
 
 =back
 
@@ -353,7 +407,19 @@ well.
 
 =item *
 
-XXX
+A new parser function L<parse_subsignature()|perlapi/parse_subsignature>
+allows a keyword plugin to parse a subroutine signature while C<use feature
+'signatures'> is in effect.  This allows custom keywords to implement
+semantics similar to regular C<sub> declarations that include signatures.
+[perl #132474]
+
+=item *
+
+Since on some platforms we need to hold a mutex when temporarily
+switching locales, new macros (C<STORE_LC_NUMERIC_SET_TO_NEEDED_IN>,
+C<WITH_LC_NUMERIC_SET_TO_NEEDED> and C<WITH_LC_NUMERIC_SET_TO_NEEDED_IN>)
+have been added to make it easier to do this safely and efficiently
+as part of [perl #134172].
 
 =back
 
@@ -368,7 +434,19 @@ files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
 
 =item *
 
-XXX
+C<< $@ = 100; die; >> now correctly propagates the 100 as an exception
+instead of ignoring it.  [perl #134291]
+
+=item *
+
+C<< 0 0x@ >> no longer asserts in S_no_op().  [perl #134310]
+
+=item *
+
+Exceptions thrown while C<$@> is read-only could result in infinite
+recursion as perl tried to update C<$@>, which throws another
+exception, resulting in a stack overflow.  Perl now replaces C<$@>
+with a copy if it's not a simple writable SV.  [perl #134266]
 
 =back
 
@@ -408,7 +486,7 @@ died, add a short obituary here.
 
 XXX Generate this with:
 
-  perl Porting/acknowledgements.pl v5.31.1..HEAD
+  perl Porting/acknowledgements.pl v5.31.2..HEAD
 
 =head1 Reporting Bugs