This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Module::CoreList for 5.31.5
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
74c14c97 5perldelta - what is new for perl v5.31.5
d407e309 6
862f380b 7=head1 DESCRIPTION
261e14b0 8
74c14c97 9This document describes differences between the 5.31.4 release and the 5.31.5
862f380b 10release.
261e14b0 11
74c14c97
MM
12If you are upgrading from an earlier release such as 5.31.3, first read
13L<perl5314delta>, which describes differences between 5.31.3 and 5.31.4.
fcbec156 14
9064626f
SH
15=head1 Incompatible Changes
16
7fd0eed3
TC
17=head2 Modifiable variables are no longer permitted in constants
18
19Code like:
20
21 my $var;
22 $sub = sub () { $var };
23
913b4d0b
SH
24where C<$var> is referenced elsewhere in some sort of modifiable context now
25produces an exception when the sub is defined.
7fd0eed3
TC
26
27This error can be avoided by adding a return to the sub definition:
28
29 $sub = sub () { return $var };
30
913b4d0b 31This has been deprecated since Perl 5.22.
7fd0eed3 32
913b4d0b 33L<[perl #131138]|https://rt.perl.org/Ticket/Display.html?id=131138>.
7fd0eed3 34
74c14c97 35=head1 Modules and Pragmata
be2eb09e 36
ced2c819 37=head2 Updated Modules and Pragmata
03b7d279 38
74c14c97 39=over 4
03b7d279
TC
40
41=item *
42
ced2c819 43L<B> has been upgraded from version 1.76 to 1.77.
03b7d279 44
ced2c819 45=item *
74c14c97 46
ced2c819 47L<B::Deparse> has been upgraded from version 1.49 to 1.50.
36bb8f68
JK
48
49=item *
50
ced2c819 51L<Devel::PPPort> has been upgraded from version 3.55 to 3.54.
c8d86fdc 52
ced2c819
SH
53=item *
54
55L<Digest::MD5> has been upgraded from version 2.55 to 2.55_01.
74c14c97 56
eeef80ee
JK
57=item *
58
59L<Dumpvalue> has been upgraded from version 1.18 to 1.21.
60
61Previously, when dumping elements of an array and encountering an undefined
62value, the string printed would have been C<empty array>. This has been
63changed to what was apparently originally intended: C<empty slot>.
64
ced2c819 65=item *
c8d86fdc 66
ced2c819 67L<ExtUtils::CBuilder> has been upgraded from version 0.280232 to 0.280233.
74c14c97 68
ced2c819
SH
69=item *
70
71L<Math::BigInt> has been upgraded from version 1.999816 to 1.999817_01.
be2eb09e
TH
72
73=item *
74
ced2c819
SH
75L<Math::BigInt::FastCalc> has been upgraded from version 0.5008 to 0.5009.
76
77=item *
78
79L<Module::CoreList> has been upgraded from version 5.20190920 to 5.20191020.
80
81=item *
82
83L<Safe> has been upgraded from version 2.40 to 2.41.
84
85=item *
86
87L<threads> has been upgraded from version 2.22 to 2.23.
88
89=item *
90
91L<Time::HiRes> has been upgraded from version 1.9763 to 1.9764.
92
93=item *
94
95L<XS::APItest> has been upgraded from version 1.03 to 1.04.
96
fcbec156
TH
97=back
98
74c14c97
MM
99=head1 Documentation
100
fcbec156
TH
101=head2 Changes to Existing Documentation
102
913b4d0b
SH
103We have attempted to update the documentation to reflect the changes listed in
104this document. If you find any we have missed, send email to
105L<perlbug@perl.org|mailto:perlbug@perl.org>.
fcbec156 106
336e728b
SH
107=head3 L<perlguts>
108
109=over 4
110
111=item *
112
113Details of the various stacks within the perl interpreter are now explained
114here.
115
116=back
74c14c97 117
fcbec156
TH
118Additionally, the following selected changes have been made:
119
913b4d0b 120=head3 URLs have been changed to https:// and stale links have been updated
04d3d25b
MM
121
122=over 4
123
124=item *
125
913b4d0b
SH
126Where applicable, the URLs in the documentation have been moved from using the
127http:// protocol to https:// . This also affects the location of the bug
128tracker at L<https://rt.perl.org>.
04d3d25b
MM
129
130=item *
131
913b4d0b
SH
132Some links to OS/2 libraries, Address Sanitizer and other system tools had gone
133stale. These have been updated with working links.
04d3d25b
MM
134
135=item *
136
913b4d0b 137Some links to old mails on perl5-porters had gone stale. These have been
04d3d25b
MM
138updated with working links.
139
140=back
141
fcbec156
TH
142=head1 Diagnostics
143
144The following additions or changes have been made to diagnostic output,
145including warnings and fatal error messages. For the complete list of
146diagnostic messages, see L<perldiag>.
147
336e728b 148=head2 Changes to Existing Diagnostics
74c14c97
MM
149
150=over 4
151
152=item *
153
336e728b 154L<Can't use global %s in %s|perldiag/"Can't use global %s in %s">
74c14c97 155
336e728b
SH
156This error message has been slightly reformatted from the original C<Can't use
157global %s in "%s">, and in particular misleading error messages like C<Can't
158use global $_ in "my"> are now rendered as C<Can't use global $_ in subroutine
159signature>.
74c14c97
MM
160
161=item *
162
336e728b 163L<Constants from lexical variables potentially modified elsewhere are no longer permitted|perldiag/"Constants from lexical variables potentially modified elsewhere are no longer permitted">
74c14c97 164
336e728b 165This error message replaces the former C<Constants from lexical variables
913b4d0b 166potentially modified elsewhere are deprecated. This will not be allowed in Perl
336e728b
SH
1675.32> to reflect the fact that this previously deprecated usage has now been
168transformed into an exception. The message's classification has also been
169updated from D (deprecated) to F (fatal).
74c14c97 170
913b4d0b
SH
171See also L</Incompatible Changes>.
172
74c14c97
MM
173=back
174
fcbec156
TH
175=head1 Configuration and Compilation
176
fcbec156 177=over 4
f0f66070
TC
178
179=item *
180
913b4d0b
SH
181Perl now no longer probes for C<d_u32align>, defaulting to C<define> on all
182platforms. This check was error prone when it was done, which was on 32-bit
183platforms only.
184L<[perl #133495]|https://rt.perl.org/Ticket/Display.html?id=133495>.
06bfb2b1 185
c5103e52
MB
186=item *
187
913b4d0b
SH
188Documentation and hints for building perl on Z/OS (native EBCDIC) have been
189updated. Still work in progress.
c5103e52
MB
190
191=item *
192
913b4d0b 193A new probe for C<malloc_usable_size> has been added.
c5103e52 194
fcbec156
TH
195=back
196
197=head1 Testing
198
913b4d0b
SH
199Tests were added and changed to reflect the other additions and changes in this
200release.
fcbec156 201
dad02c36 202=head1 Platform Support
8424e368 203
74c14c97 204=head2 Platform-Specific Notes
fcbec156 205
74c14c97 206=over 4
0076a047 207
2e1181e2 208=item Windows
74c14c97 209
feedae7a
SH
210=over 4
211
212=item *
213
2e1181e2 214Support for building perl with Visual C++ 6.0 has now been removed.
fcbec156 215
feedae7a
SH
216=item *
217
218Building perl with Visual C++ 2013 and earlier was broken in the previous
219release but has now been fixed.
220
221=back
222
fcbec156
TH
223=back
224
225=head1 Internal Changes
226
fcbec156 227=over 4
061637ca 228
285db695
DM
229=item *
230
913b4d0b
SH
231Added the C<<PL_curstackinfo->si_cxsubix>> field. This records the stack index
232of the most recently pushed sub/format/eval context. It is set and restored
233automatically by C<cx_pushsub()>, C<cx_popsub()> etc., but would need to be
234manually managed if you do any unusual manipulation of the context stack.
285db695 235
059703b0
KW
236=item *
237
913b4d0b
SH
238Various macros dealing with character type classification and changing case
239where the input is encoded in UTF-8 now require an extra parameter to prevent
240potential reads beyond the end of the buffer. Use of these has generated a
241deprecation warning since Perl 5.26. Details are in
059703b0
KW
242L<perldeprecation/In XS code, use of various macros dealing with UTF-8.>
243
9064626f 244=back
ed0cf058 245
74c14c97 246=head1 Acknowledgements
bd833cba 247
74c14c97 248XXX Generate this with:
bd833cba 249
74c14c97 250 perl Porting/acknowledgements.pl v5.31.4..HEAD
8424e368 251
44691e6f
AB
252=head1 Reporting Bugs
253
913b4d0b
SH
254If you find what you think is a bug, you might check the perl bug database at
255L<https://rt.perl.org/>. There may also be information at
71c89d21 256L<https://www.perl.org/>, the Perl Home Page.
44691e6f 257
e08634c5
SH
258If you believe you have an unreported bug, please run the L<perlbug> program
259included with your release. Be sure to trim your bug down to a tiny but
260sufficient test case. Your bug report, along with the output of C<perl -V>,
0e18d1c4 261will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f 262
87c118b9
DM
263If the bug you are reporting has security implications which make it
264inappropriate to send to a publicly archived mailing list, then see
913b4d0b
SH
265L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> for details of how to
266report the issue.
44691e6f 267
390ae6f9
S
268=head1 Give Thanks
269
913b4d0b
SH
270If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, you
271can do so by running the C<perlthanks> program:
390ae6f9
S
272
273 perlthanks
274
275This will send an email to the Perl 5 Porters list with your show of thanks.
276
44691e6f
AB
277=head1 SEE ALSO
278
e08634c5
SH
279The F<Changes> file for an explanation of how to view exhaustive details on
280what changed.
44691e6f
AB
281
282The F<INSTALL> file for how to build Perl.
283
284The F<README> file for general stuff.
285
286The F<Artistic> and F<Copying> files for copyright information.
287
288=cut