This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for 1a1d29aaa2e0, 22f05786af0b, d8422270033e
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
8424e368
S
5[ this is a template for a new perldelta file. Any text flagged as XXX needs
6to be processed before release. ]
7
8perldelta - what is new for perl v5.31.1
d407e309 9
862f380b 10=head1 DESCRIPTION
261e14b0 11
8424e368 12This document describes differences between the 5.31.0 release and the 5.31.1
862f380b 13release.
261e14b0 14
8424e368
S
15If you are upgrading from an earlier release such as 5.30.0, first read
16L<perl5310delta>, which describes differences between 5.30.0 and 5.31.0.
17
18=head1 Notice
19
20XXX Any important notices here
21
22=head1 Core Enhancements
23
24XXX New core language features go here. Summarize user-visible core language
25enhancements. Particularly prominent performance optimisations could go
26here, but most should go in the L</Performance Enhancements> section.
27
28[ List each enhancement as a =head2 entry ]
29
30=head1 Security
31
32XXX Any security-related notices go here. In particular, any security
33vulnerabilities closed should be noted here rather than in the
34L</Selected Bug Fixes> section.
35
36[ List each security issue as a =head2 entry ]
37
38=head1 Incompatible Changes
39
40XXX For a release on a stable branch, this section aspires to be:
41
42 There are no changes intentionally incompatible with 5.XXX.XXX
43 If any exist, they are bugs, and we request that you submit a
44 report. See L</Reporting Bugs> below.
45
46[ List each incompatible change as a =head2 entry ]
47
48=head1 Deprecations
49
50XXX Any deprecated features, syntax, modules etc. should be listed here.
51
52=head2 Module removals
53
54XXX Remove this section if not applicable.
55
56The following modules will be removed from the core distribution in a
57future release, and will at that time need to be installed from CPAN.
58Distributions on CPAN which require these modules will need to list them as
59prerequisites.
60
61The core versions of these modules will now issue C<"deprecated">-category
62warnings to alert you to this fact. To silence these deprecation warnings,
63install the modules in question from CPAN.
64
65Note that these are (with rare exceptions) fine modules that you are encouraged
66to continue to use. Their disinclusion from core primarily hinges on their
67necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
68not usually on concerns over their design.
69
70=over
71
72=item XXX
73
74XXX Note that deprecated modules should be listed here even if they are listed
75as an updated module in the L</Modules and Pragmata> section.
76
77=back
78
79[ List each other deprecation as a =head2 entry ]
80
81=head1 Performance Enhancements
82
83XXX Changes which enhance performance without changing behaviour go here.
84There may well be none in a stable release.
85
86[ List each enhancement as an =item entry ]
87
88=over 4
89
90=item *
91
92XXX
93
94=back
261e14b0 95
862f380b 96=head1 Modules and Pragmata
d407e309 97
8424e368
S
98XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
99go here. If Module::CoreList is updated, generate an initial draft of the
100following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
101for important changes should then be added by hand. In an ideal world,
102dual-life modules would have a F<Changes> file that could be cribbed.
103
104The list of new and updated modules is modified automatically as part of
105preparing a Perl release, so the only reason to manually add entries here is if
106you're summarising the important changes in the module update. (Also, if the
107manually-added details don't match the automatically-generated ones, the
108release manager will have to investigate the situation carefully.)
109
110[ Within each section, list entries as an =item entry ]
111
112=head2 New Modules and Pragmata
113
114=over 4
115
116=item *
117
118XXX Remove this section if not applicable.
119
120=back
121
862f380b 122=head2 Updated Modules and Pragmata
7b97bf55 123
ab6f2e91 124=over 4
7b97bf55 125
9409f532 126=item *
7b97bf55 127
cc1cbb06
TC
128L<IO> has been upgraded from version 1.40 to 1.41.
129
da1830f5
TC
130The supplied I<TO> is now always honoured on calls to the send()
131method. [perl #133936]
cc1cbb06
TC
132
133=item *
134
a04f48a5 135L<Storable> has been upgraded from version 3.15 to 3.16.
8424e368 136
a04f48a5
TC
137Regular expressions objects weren't properly counted for object id
138purposes on retrieve. This would corrupt the resulting structure, or
139cause a runtime error in some cases. [perl #134179]
8424e368
S
140
141=back
142
143=head2 Removed Modules and Pragmata
144
145=over 4
146
147=item *
148
c57372c9
KW
149Pod::Parser has been removed from the core distribution.
150It still is available for download from CPAN. This resolves [perl
151#119439].
8424e368
S
152
153=back
154
155=head1 Documentation
156
157XXX Changes to files in F<pod/> go here. Consider grouping entries by
158file and be sure to link to the appropriate page, e.g. L<perlfunc>.
159
160=head2 New Documentation
161
162XXX Changes which create B<new> files in F<pod/> go here.
163
164=head3 L<XXX>
165
166XXX Description of the purpose of the new file here
167
168=head2 Changes to Existing Documentation
169
170We have attempted to update the documentation to reflect the changes
171listed in this document. If you find any we have missed, send email
172to L<perlbug@perl.org|mailto:perlbug@perl.org>.
173
174XXX Changes which significantly change existing files in F<pod/> go here.
175However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
176section.
177
178Additionally, the following selected changes have been made:
179
180=head3 L<XXX>
181
182=over 4
d407e309 183
d407e309
S
184=item *
185
8424e368
S
186XXX Description of the change here
187
188=back
189
190=head1 Diagnostics
191
192The following additions or changes have been made to diagnostic output,
193including warnings and fatal error messages. For the complete list of
194diagnostic messages, see L<perldiag>.
195
196XXX New or changed warnings emitted by the core's C<C> code go here. Also
197include any changes in L<perldiag> that reconcile it to the C<C> code.
198
199=head2 New Diagnostics
200
201XXX Newly added diagnostic messages go under here, separated into New Errors
202and New Warnings
203
204=head3 New Errors
205
206=over 4
d407e309
S
207
208=item *
209
8424e368 210XXX L<message|perldiag/"message">
d407e309 211
862f380b 212=back
d407e309 213
8424e368
S
214=head3 New Warnings
215
216=over 4
217
218=item *
219
220XXX L<message|perldiag/"message">
221
222=back
223
224=head2 Changes to Existing Diagnostics
225
226XXX Changes (i.e. rewording) of diagnostic messages go here
227
228=over 4
229
230=item *
231
232XXX Describe change here
233
234=back
235
236=head1 Utility Changes
237
238XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
239Most of these are built within the directory F<utils>.
240
241[ List utility changes as a =head2 entry for each utility and =item
242entries for each change
243Use L<XXX> with program names to get proper documentation linking. ]
244
245=head2 L<XXX>
246
247=over 4
248
249=item *
250
251XXX
252
253=back
254
255=head1 Configuration and Compilation
256
257XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
258go here. Any other changes to the Perl build process should be listed here.
259However, any platform-specific changes should be listed in the
260L</Platform Support> section, instead.
261
262[ List changes as an =item entry ].
263
264=over 4
265
266=item *
267
268XXX
269
270=back
271
272=head1 Testing
273
274XXX Any significant changes to the testing of a freshly built perl should be
275listed here. Changes which create B<new> files in F<t/> go here as do any
276large changes to the testing harness (e.g. when parallel testing was added).
277Changes to existing files in F<t/> aren't worth summarizing, although the bugs
278that they represent may be covered elsewhere.
279
280XXX If there were no significant test changes, say this:
281
282Tests were added and changed to reflect the other additions and changes
283in this release.
284
285XXX If instead there were significant changes, say this:
286
287Tests were added and changed to reflect the other additions and
288changes in this release. Furthermore, these significant changes were
289made:
290
291[ List each test improvement as an =item entry ]
292
293=over 4
294
295=item *
296
297XXX
298
299=back
300
301=head1 Platform Support
302
303XXX Any changes to platform support should be listed in the sections below.
304
305[ Within the sections, list each platform as an =item entry with specific
306changes as paragraphs below it. ]
307
308=head2 New Platforms
309
310XXX List any platforms that this version of perl compiles on, that previous
311versions did not. These will either be enabled by new files in the F<hints/>
312directories, or new subdirectories and F<README> files at the top level of the
313source tree.
314
315=over 4
316
317=item XXX-some-platform
318
319XXX
320
321=back
322
323=head2 Discontinued Platforms
324
325XXX List any platforms that this version of perl no longer compiles on.
326
327=over 4
328
329=item XXX-some-platform
330
331XXX
332
333=back
334
335=head2 Platform-Specific Notes
336
337XXX List any changes for specific platforms. This could include configuration
338and compilation changes or changes in portability/compatibility. However,
339changes within modules for platforms should generally be listed in the
340L</Modules and Pragmata> section.
341
342=over 4
343
344=item XXX-some-platform
345
346XXX
347
348=back
349
350=head1 Internal Changes
351
352XXX Changes which affect the interface available to C<XS> code go here. Other
353significant internal changes for future core maintainers should be noted as
354well.
355
356[ List each change as an =item entry ]
357
358=over 4
359
360=item *
361
fb55ce6b
TC
362L<eval_pv()|perlapi/eval_pv> no longer stringifies the exception when
363C<croak_on_error> is true. [perl #134175]
8424e368
S
364
365=back
366
367=head1 Selected Bug Fixes
368
369XXX Important bug fixes in the core language are summarized here. Bug fixes in
370files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
371
372[ List each fix as an =item entry ]
373
374=over 4
375
376=item *
377
09b83c41 378Setting C<$)> now properly sets supplementary group ids if you have
b9d9f9ab
TC
379the necessary privileges. [perl #134169]
380
381=item *
382
fd0b39e2
TC
383close() on a pipe now preemptively clears the PerlIO object from the
384IO SV. This prevents a second attempt to close the already closed
385PerlIO object if a signal handler calls die() or exit() while close()
386is waiting for the child process to complete. [perl #122112]
8424e368 387
ddf10889
TC
388=item *
389
390C<< sprintf("%.*a", -10000, $x) >> would cause a buffer overflow due
391to mishandling of the negative precision value. [perl #134008]
392
755e4cab
TC
393=item *
394
395scalar() on a reference could cause an erroneous assertion failure
396during compilation. [perl #134045]
397
fef47ada
TC
398=item *
399
09b83c41
TC
400C<%{^CAPTURE_ALL}> is now an alias to C<%-> as documented, rather than
401incorrectly an alias for C<%+>. [perl #131867]
402
403=item *
404
405C<%{^CAPTURE}> didn't work if C<@{^CAPTURE}> was mentioned first.
406Similarly for C<%{^CAPTURE_A::}> and C<@{^CAPTURE_ALL}>, though
407C<@{^CAPTURE_ALL}> currently isn't used. [perl #131193]
408
409=item *
410
fef47ada
TC
411Extraordinarily large (over 2GB) floating point format widths could
412cause an integer overflow in the underlying call to snprintf(),
413resulting in an assertion. Formatted floating point widths are now
414limited to the range of int, the return value of snprintf(). [perl
415#133913]
416
4ec3954c
TC
417=item *
418
419Parsing the following constructs within a sub-parse (such as with
420C<"${code here}"> or C<s/.../code here/e>) has changed to match how
421they're parsed normally:
422
423=over
424
425=item *
426
427C<print $fh ...> no longer produces a syntax error.
428
429=item *
430
431Code like C<s/.../ ${time} /e> now properly produces an "Ambiguous use
432of ${time} resolved to $time at ..." warning when warnings are enabled.
433
434=item *
435
436C<@x {"a"}> (with the space) in a sub-parse now properly produces a
437"better written as" warning when warnings are enabled.
438
439=item *
440
441attributes can now be used in a sub-parse.
442
443=back
444
445[perl #133850]
446
2dd5ef16
TC
447=item *
448
449Incomplete hex and binary literals like C<0x> and C<0b> are now
450treated as if the C<x> or C<b> is part of the next token. [perl
451#134125]
452
5b2f1ba6
TC
453=item *
454
455A spurious C<)> in a subparse, such as in C<s/.../code here/e> or
456C<"...${code here}">, no longer confuses the parser.
457
458Previously a subparse was bracketed with generated C<(> and C<)>
459tokens, so a spurious C<)> would close the construct without doing the
460normal subparse clean up, confusing the parser and possible causing an
461assertion failure.
462
463Such constructs are now surrounded by artificial tokens that can't be
464included in the source. [perl #130585]
465
0367cc1a
TC
466=item *
467
468Reference assignment of a sub, such as C<\&foo = \&bar;>, silently did
469nothing in the C<main::> package. [perl #134072]
470
84ab3b69
TC
471=item *
472
473sv_gets() now recovers better if the target SV is modified by a signal
474handler. [perl #134035]
475
fa068f6d
TC
476=item *
477
478C<readline @foo> now evaluates C<@foo> in scalar context. Previously
479it would be evalauted in list context, and since readline() pops only
480one argument from the stack, the stack could underflow, or be left
481with unexpected values on the stack. [perl #133989]
482
8424e368
S
483=back
484
485=head1 Known Problems
486
487XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
488tests that had to be C<TODO>ed for the release would be noted here. Unfixed
489platform specific bugs also go here.
490
491[ List each fix as an =item entry ]
492
493=over 4
494
495=item *
496
497XXX
498
499=back
500
501=head1 Errata From Previous Releases
502
503=over 4
504
505=item *
506
507XXX Add anything here that we forgot to add, or were mistaken about, in
508the perldelta of a previous release.
509
510=back
511
512=head1 Obituary
513
514XXX If any significant core contributor or member of the CPAN community has
515died, add a short obituary here.
516
517=head1 Acknowledgements
518
519XXX Generate this with:
520
521 perl Porting/acknowledgements.pl v5.31.0..HEAD
522
44691e6f
AB
523=head1 Reporting Bugs
524
373fec1e 525If you find what you think is a bug, you might check the perl bug database
15f62f05
KE
526at L<https://rt.perl.org/>. There may also be information at
527L<http://www.perl.org/>, the Perl Home Page.
44691e6f 528
e08634c5
SH
529If you believe you have an unreported bug, please run the L<perlbug> program
530included with your release. Be sure to trim your bug down to a tiny but
531sufficient test case. Your bug report, along with the output of C<perl -V>,
0e18d1c4 532will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f 533
87c118b9
DM
534If the bug you are reporting has security implications which make it
535inappropriate to send to a publicly archived mailing list, then see
373fec1e
SH
536L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
537for details of how to report the issue.
44691e6f 538
390ae6f9
S
539=head1 Give Thanks
540
373fec1e
SH
541If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
542you can do so by running the C<perlthanks> program:
390ae6f9
S
543
544 perlthanks
545
546This will send an email to the Perl 5 Porters list with your show of thanks.
547
44691e6f
AB
548=head1 SEE ALSO
549
e08634c5
SH
550The F<Changes> file for an explanation of how to view exhaustive details on
551what changed.
44691e6f
AB
552
553The F<INSTALL> file for how to build Perl.
554
555The F<README> file for general stuff.
556
557The F<Artistic> and F<Copying> files for copyright information.
558
559=cut