This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Tick off 5.31.2
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
dad02c36 5perldelta - what is new for perl v5.31.2
d407e309 6
862f380b 7=head1 DESCRIPTION
261e14b0 8
dad02c36 9This document describes differences between the 5.31.1 release and the 5.31.2
862f380b 10release.
261e14b0 11
dad02c36
KE
12If you are upgrading from an earlier release such as 5.31.0, first read
13L<perl5311delta>, which describes differences between 5.31.0 and 5.31.1.
8424e368 14
dad02c36 15=head1 Modules and Pragmata
a0348300 16
9c600b76 17=head2 Updated Modules and Pragmata
a0348300 18
9c600b76 19=over 4
a0348300 20
9c600b76 21=item *
a0348300 22
9c600b76 23L<Devel::PPPort> has been upgraded from version 3.53 to 3.54.
a0348300 24
9c600b76
SH
25=item *
26
27L<Exporter> has been upgraded from version 5.73 to 5.74.
a0348300
KE
28
29=item *
30
9c600b76 31L<IPC::Cmd> has been upgraded from version 1.02 to 1.04.
a0348300 32
9c600b76 33=item *
a0348300 34
9c600b76 35L<JSON::PP> has been upgraded from version 4.02 to 4.04.
dad02c36 36
9c600b76
SH
37=item *
38
39L<Module::CoreList> has been upgraded from version 5.20190620 to 5.20190720.
a0348300
KE
40
41=item *
42
9c600b76 43L<Opcode> has been upgraded from version 1.43 to 1.44.
a0348300 44
9c600b76 45=item *
a0348300 46
9c600b76 47L<PerlIO::encoding> has been upgraded from version 0.27 to 0.28.
dad02c36 48
9c600b76 49=item *
dad02c36 50
9c600b76 51L<Pod::Simple> has been upgraded from version 3.38 to 3.39.
cc1cbb06
TC
52
53=item *
54
9c600b76 55L<threads::shared> has been upgraded from version 1.60 to 1.61.
8424e368 56
dad02c36 57=back
a0348300 58
dad02c36 59=head1 Diagnostics
a0348300 60
dad02c36 61=head2 New Diagnostics
8424e368 62
dad02c36 63=head3 New Errors
8424e368
S
64
65=over 4
66
67=item *
68
04f4dbe3 69C<L<No digits found for %s literal|perldiag/"No digits found for %s literal">>
8424e368 70
04f4dbe3
SH
71(F) No hexadecimal digits were found following C<0x> or no binary digits were
72found following C<0b>.
8424e368 73
dad02c36
KE
74=back
75
76=head2 Changes to Existing Diagnostics
77
860a458f
KE
78=over 4
79
80=item *
81
1a7108fe 82C<\N{} here is restricted to one character> is now emitted in the same
5a95b959
SH
83circumstances where previously C<\N{} in inverted character class or as a range
84end-point is restricted to one character> was.
1a7108fe 85
5a95b959
SH
86This is due to new circumstances having been added in Perl 5.30 that weren't
87covered by the earlier wording.
860a458f
KE
88
89=back
90
8424e368
S
91=head1 Configuration and Compilation
92
8424e368
S
93=over 4
94
95=item *
96
5a95b959
SH
97The C<ECHO> macro is now defined. This is used in a C<dtrace> rule that was
98originally changed for FreeBSD, and the FreeBSD make apparently predefines it.
99The Solaris make does not predefine C<ECHO> which broke this rule on Solaris.
100L<[perl #134218]|https://rt.perl.org/Ticket/Display.html?id=134218>
8424e368 101
86b50d93
DIM
102=item *
103
104Bison versions 3.1 through 3.4 are now supported.
105
8424e368
S
106=back
107
dad02c36 108=head1 Platform Support
8424e368 109
dad02c36 110=head2 Platform-Specific Notes
fef47ada 111
dad02c36 112=over 4
4ec3954c 113
ec121dac
TC
114=item Linux
115
5a95b959
SH
116C<cc> will be used to populate C<plibpth> if C<cc> is C<clang>.
117L<[perl #134189]|https://rt.perl.org/Ticket/Display.html?id=134189>
ec121dac 118
c6981b9a 119=item VMS
4ec3954c 120
c6981b9a 121C<-Duse64bitint> is now the default on VMS.
4ec3954c 122
dad02c36 123=back
4ec3954c 124
dad02c36 125=head1 Internal Changes
4ec3954c 126
dad02c36 127=over 4
4ec3954c
TC
128
129=item *
130
5a95b959
SH
131The PERL_DESTRUCT_LEVEL environment variable was formerly only honoured on perl
132binaries built with DEBUGGING support. It is now checked on all perl builds.
133Its normal use is to force perl to individually free every block of memory
134which it has allocated before exiting, which is useful when using automated
135leak detection tools such as valgrind.
4ec3954c 136
b870557c
TC
137=item *
138
5a95b959
SH
139The API eval_sv() now accepts a C<G_RETHROW> flag. If this flag is set and an
140exception is thrown while compiling or executing the supplied code, it will be
141rethrown, and eval_sv() will not return.
142L<[perl #134177]|https://rt.perl.org/Ticket/Display.html?id=134177>
b870557c 143
ed0cf058
TC
144=item *
145
5a95b959
SH
146As part of the fix for
147L<[perl #2754]|https://rt.perl.org/Ticket/Display.html?id=2754> perl_parse()
148now returns non-zero if exit(0) is called in a C<BEGIN>, C<UNITCHECK> or
149C<CHECK> block.
ed0cf058 150
f7faf2ad
SH
151=item *
152
153Most functions which recursively walked an op tree during compilation have been
154made non-recursive. This avoids SEGVs from stack overflow when the op tree is
155deeply nested, such as C<$n == 1 ? "one" : $n == 2 ? "two" : ....> (especially
156in code which is auto-generated).
157
158This is particularly noticeable where the code is compiled within a separate
159thread, as threads tend to have small stacks by default.
160
4ec3954c
TC
161=back
162
dad02c36 163=head1 Selected Bug Fixes
4ec3954c 164
dad02c36 165=over 4
2dd5ef16 166
5b2f1ba6
TC
167=item *
168
5a95b959
SH
169Parsing incomplete hex or binary literals was changed in 5.31.1 to treat such a
170literal as just the 0, leaving the following C<x> or C<b> to be parsed as part
171of the next token. This could lead to some silent changes in behaviour, so now
172incomplete hex or binary literals produce a fatal error.
173L<[perl #134125]|https://rt.perl.org/Ticket/Display.html?id=134125>
5b2f1ba6 174
b870557c
TC
175=item *
176
5a95b959
SH
177eval_pv()'s I<croak_on_error> flag will now throw even if the exception is a
178false overloaded value.
179L<[perl #134177]|https://rt.perl.org/Ticket/Display.html?id=134177>
b870557c 180
ed0cf058
TC
181=item *
182
5a95b959
SH
183C<INIT> blocks and the program itself are no longer run if exit(0) is called
184within a C<BEGIN>, C<UNITCHECK> or C<CHECK> block.
185L<[perl #2754]|https://rt.perl.org/Ticket/Display.html?id=2754>
ed0cf058 186
973ae088
TC
187=item *
188
5a95b959
SH
189C<<< open my $fh, ">>+", undef >>> now opens the temporary file in append mode
190- writes will seek to the end of file before writing.
191L<[perl #134221]|https://rt.perl.org/Ticket/Display.html?id=134221>
973ae088 192
f7faf2ad
SH
193=item *
194
195Fixed a SEGV when searching for the source of an uninitialized value warning on
196an op whose subtree includes an OP_MULTIDEREF.
5a95b959 197L<[perl #134275]|https://rt.perl.org/Ticket/Display.html?id=134275>
f7faf2ad 198
dad02c36 199=back
5b2f1ba6 200
dad02c36 201=head1 Known Problems
5b2f1ba6 202
dad02c36 203=over 4
84ab3b69 204
fa068f6d
TC
205=item *
206
ff1482cc
SH
207The VC++ 6.0 build on Windows is currently broken. Support for this compiler
208is likely to be removed in the near future.
cb561db1
SH
209
210=item *
211
212Tests 9-11 in F<t/op/blocks.t> currently fail on Windows.
5a95b959 213L<[perl #134295]|https://rt.perl.org/Ticket/Display.html?id=134295>
fa068f6d 214
8424e368
S
215=back
216
dad02c36 217=head1 Acknowledgements
a0348300 218
a01eaaa1
SH
219Perl 5.31.2 represents approximately 4 weeks of development since Perl 5.31.1
220and contains approximately 7,600 lines of changes across 190 files from 16
221authors.
8424e368 222
a01eaaa1
SH
223Excluding auto-generated files, documentation and release tools, there were
224approximately 3,100 lines of changes to 99 .pm, .t, .c and .h files.
225
226Perl continues to flourish into its fourth decade thanks to a vibrant community
227of users and developers. The following people are known to have contributed
228the improvements that became Perl 5.31.2:
229
230Alexandr Savca, Chris 'BinGOs' Williams, Craig A. Berry, Dagfinn Ilmari
231Mannsåker, David Mitchell, H.Merijn Brand, James E Keenan, Karen Etheridge,
232Karl Williamson, Nicolas R., Pali, Paul Evans, Richard Leach, Steve Hay,
233Svyatoslav, Tony Cook.
234
235The list above is almost certainly incomplete as it is automatically generated
236from version control history. In particular, it does not include the names of
237the (very much appreciated) contributors who reported issues to the Perl bug
238tracker.
239
240Many of the changes included in this version originated in the CPAN modules
241included in Perl's core. We're grateful to the entire CPAN community for
242helping Perl to flourish.
243
244For a more complete list of all of Perl's historical contributors, please see
245the F<AUTHORS> file in the Perl source distribution.
8424e368 246
44691e6f
AB
247=head1 Reporting Bugs
248
5a95b959
SH
249If you find what you think is a bug, you might check the perl bug database at
250L<https://rt.perl.org/>. There may also be information at
15f62f05 251L<http://www.perl.org/>, the Perl Home Page.
44691e6f 252
e08634c5
SH
253If you believe you have an unreported bug, please run the L<perlbug> program
254included with your release. Be sure to trim your bug down to a tiny but
255sufficient test case. Your bug report, along with the output of C<perl -V>,
0e18d1c4 256will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f 257
87c118b9
DM
258If the bug you are reporting has security implications which make it
259inappropriate to send to a publicly archived mailing list, then see
5a95b959
SH
260L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> for details of how to
261report the issue.
44691e6f 262
390ae6f9
S
263=head1 Give Thanks
264
5a95b959
SH
265If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, you
266can do so by running the C<perlthanks> program:
390ae6f9
S
267
268 perlthanks
269
270This will send an email to the Perl 5 Porters list with your show of thanks.
271
44691e6f
AB
272=head1 SEE ALSO
273
e08634c5
SH
274The F<Changes> file for an explanation of how to view exhaustive details on
275what changed.
44691e6f
AB
276
277The F<INSTALL> file for how to build Perl.
278
279The F<README> file for general stuff.
280
281The F<Artistic> and F<Copying> files for copyright information.
282
283=cut