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