This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Module::CoreList for 5.31.3
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
9064626f 5perldelta - what is new for perl v5.31.3
d407e309 6
862f380b 7=head1 DESCRIPTION
261e14b0 8
9064626f 9This document describes differences between the 5.31.2 release and the 5.31.3
862f380b 10release.
261e14b0 11
9064626f
SH
12If you are upgrading from an earlier release such as 5.31.1, first read
13L<perl5312delta>, which describes differences between 5.31.1 and 5.31.2.
8424e368 14
9064626f
SH
15=head1 Incompatible Changes
16
e6132dc0
TC
17=head2 Plain "0" string now treated as a number for range operator
18
19Previously a range C< "0" .. "-1" > would produce a range of numeric
20strings from "0" through "99", this now produces an empty list, just
21as C< 0 .. -1 > does.
22
23This was due to a special case that treated strings starting with "0"
24as strings so ranges like C< "00" .. "03" > produced C< "00", "01",
25"02", "03" >, but didn't specially handle the string C<"0">.
26
27[perl #133695]
28
befef368
TC
29=head2 C<\K> now disallowed in look-ahead and look-behind assertions
30
31This was disallowed because it causes unexpected behaviour, and no-one
32could define what the desired behaviour was.
33
34[perl #124256]
35
9064626f 36=head1 Modules and Pragmata
a0348300 37
9064626f
SH
38=head2 Updated Modules and Pragmata
39
40=over 4
a0348300 41
9c600b76 42=item *
a0348300 43
03b7d279
TC
44L<Devel::PPPort> has been upgraded from version 3.54 to 3.55.
45
46The test files generated on Win32 are now identical to when they are
47generated on POSIX-like systems.
48
49=item *
50
51L<File::Find> has been upgraded from version 1.36 to 1.37.
52
53On Win32, the tests no longer require either a file in the drive root
54directory, or a writable root directory.
55
56=item *
57
36bb8f68
JK
58L<Thread> has been upgraded from version 3.04 to 3.05.
59
60=item *
61
8639f158
JK
62L<Getopt::Long> has been upgraded from version 2.50 to 2.51.
63
64=item *
65
029f24d3 66L<Time::HiRes> has been upgraded from version 1.9761 to 1.9762.
f0f66070
TC
67
68Removed obsolete code such as support for pre-5.6 perl and classic
69MacOS. [perl #134288]
70
71=item *
72
a4635286
KW
73L<I18N::LangTags> has been upgraded from version 1.07 to 1.08.
74
75Document the C<IGNORE_WIN32_LOCALE> environment variable.
76
77=item *
78
589e04a1
JK
79L<Test::Simple> has been upgraded from version 1.302164 to 1.302166.
80
8424e368
S
81=back
82
dad02c36 83=head1 Platform Support
8424e368 84
9064626f 85=head2 Platform-Specific Notes
ed0cf058 86
9064626f 87=over 4
f7faf2ad 88
efb1f9ac 89=item Windows
f7faf2ad 90
efb1f9ac
TC
91F<t/op/magic.t> could fail if environment varables starting with
92C<FOO> already existed.
f7faf2ad 93
4ec3954c
TC
94=back
95
9064626f 96=head1 Internal Changes
4ec3954c 97
9064626f 98=over 4
5b2f1ba6 99
b870557c
TC
100=item *
101
996b0cb8
PLE
102A new parser function L<parse_subsignature()|perlapi/parse_subsignature>
103allows a keyword plugin to parse a subroutine signature while C<use feature
104'signatures'> is in effect. This allows custom keywords to implement
105semantics similar to regular C<sub> declarations that include signatures.
106[perl #132474]
b870557c 107
061637ca
HS
108=item *
109
110Since on some platforms we need to hold a mutex when temporarily
111switching locales, new macros (C<STORE_LC_NUMERIC_SET_TO_NEEDED_IN>,
112C<WITH_LC_NUMERIC_SET_TO_NEEDED> and C<WITH_LC_NUMERIC_SET_TO_NEEDED_IN>)
113have been added to make it easier to do this safely and efficiently
114as part of [perl #134172].
115
285db695
DM
116=item *
117
118The memory bookkeeping overhead for allocating an OP structure has been
119reduced by 8 bytes per OP on 64-bit systems.
120
9064626f 121=back
ed0cf058 122
9064626f 123=head1 Selected Bug Fixes
ed0cf058 124
9064626f 125=over 4
973ae088 126
f7faf2ad
SH
127=item *
128
052ce2b8
TC
129C<< $@ = 100; die; >> now correctly propagates the 100 as an exception
130instead of ignoring it. [perl #134291]
f7faf2ad 131
a3c77565
TC
132=item *
133
134C<< 0 0x@ >> no longer asserts in S_no_op(). [perl #134310]
135
6e23836a
TC
136=item *
137
138Exceptions thrown while C<$@> is read-only could result in infinite
139recursion as perl tried to update C<$@>, which throws another
140exception, resulting in a stack overflow. Perl now replaces C<$@>
141with a copy if it's not a simple writable SV. [perl #134266]
142
dad02c36 143=back
5b2f1ba6 144
9064626f 145=head1 Acknowledgements
a01eaaa1 146
9064626f 147XXX Generate this with:
a01eaaa1 148
9064626f 149 perl Porting/acknowledgements.pl v5.31.2..HEAD
8424e368 150
44691e6f
AB
151=head1 Reporting Bugs
152
9064626f
SH
153If you find what you think is a bug, you might check the perl bug database
154at L<https://rt.perl.org/>. There may also be information at
15f62f05 155L<http://www.perl.org/>, the Perl Home Page.
44691e6f 156
e08634c5
SH
157If you believe you have an unreported bug, please run the L<perlbug> program
158included with your release. Be sure to trim your bug down to a tiny but
159sufficient test case. Your bug report, along with the output of C<perl -V>,
0e18d1c4 160will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f 161
87c118b9
DM
162If the bug you are reporting has security implications which make it
163inappropriate to send to a publicly archived mailing list, then see
9064626f
SH
164L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
165for details of how to report the issue.
44691e6f 166
390ae6f9
S
167=head1 Give Thanks
168
9064626f
SH
169If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
170you can do so by running the C<perlthanks> program:
390ae6f9
S
171
172 perlthanks
173
174This will send an email to the Perl 5 Porters list with your show of thanks.
175
44691e6f
AB
176=head1 SEE ALSO
177
e08634c5
SH
178The F<Changes> file for an explanation of how to view exhaustive details on
179what changed.
44691e6f
AB
180
181The F<INSTALL> file for how to build Perl.
182
183The F<README> file for general stuff.
184
185The F<Artistic> and F<Copying> files for copyright information.
186
187=cut