This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for ab7a3d991f6e4eb554d12bf4f083c352fe40452f
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
9064626f
SH
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.3
d407e309 9
862f380b 10=head1 DESCRIPTION
261e14b0 11
9064626f 12This document describes differences between the 5.31.2 release and the 5.31.3
862f380b 13release.
261e14b0 14
9064626f
SH
15If you are upgrading from an earlier release such as 5.31.1, first read
16L<perl5312delta>, which describes differences between 5.31.1 and 5.31.2.
8424e368 17
9064626f 18=head1 Notice
a0348300 19
9064626f
SH
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
e6132dc0
TC
48=head2 Plain "0" string now treated as a number for range operator
49
50Previously a range C< "0" .. "-1" > would produce a range of numeric
51strings from "0" through "99", this now produces an empty list, just
52as C< 0 .. -1 > does.
53
54This was due to a special case that treated strings starting with "0"
55as strings so ranges like C< "00" .. "03" > produced C< "00", "01",
56"02", "03" >, but didn't specially handle the string C<"0">.
57
58[perl #133695]
59
befef368
TC
60=head2 C<\K> now disallowed in look-ahead and look-behind assertions
61
62This was disallowed because it causes unexpected behaviour, and no-one
63could define what the desired behaviour was.
64
65[perl #124256]
66
9064626f
SH
67=head1 Deprecations
68
69XXX Any deprecated features, syntax, modules etc. should be listed here.
70
71=head2 Module removals
72
73XXX Remove this section if not applicable.
74
75The following modules will be removed from the core distribution in a
76future release, and will at that time need to be installed from CPAN.
77Distributions on CPAN which require these modules will need to list them as
78prerequisites.
79
80The core versions of these modules will now issue C<"deprecated">-category
81warnings to alert you to this fact. To silence these deprecation warnings,
82install the modules in question from CPAN.
83
84Note that these are (with rare exceptions) fine modules that you are encouraged
85to continue to use. Their disinclusion from core primarily hinges on their
86necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
87not usually on concerns over their design.
88
89=over
90
91=item XXX
92
93XXX Note that deprecated modules should be listed here even if they are listed
94as an updated module in the L</Modules and Pragmata> section.
95
96=back
97
98[ List each other deprecation as a =head2 entry ]
99
100=head1 Performance Enhancements
101
102XXX Changes which enhance performance without changing behaviour go here.
103There may well be none in a stable release.
104
105[ List each enhancement as an =item entry ]
a0348300 106
9c600b76 107=over 4
a0348300 108
9c600b76 109=item *
a0348300 110
9064626f 111XXX
a0348300 112
9064626f 113=back
9c600b76 114
9064626f 115=head1 Modules and Pragmata
a0348300 116
9064626f
SH
117XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
118go here. If Module::CoreList is updated, generate an initial draft of the
119following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
120for important changes should then be added by hand. In an ideal world,
121dual-life modules would have a F<Changes> file that could be cribbed.
a0348300 122
9064626f
SH
123The list of new and updated modules is modified automatically as part of
124preparing a Perl release, so the only reason to manually add entries here is if
125you're summarising the important changes in the module update. (Also, if the
126manually-added details don't match the automatically-generated ones, the
127release manager will have to investigate the situation carefully.)
a0348300 128
9064626f
SH
129[ Within each section, list entries as an =item entry ]
130
131=head2 New Modules and Pragmata
a0348300 132
9064626f 133=over 4
dad02c36 134
9c600b76
SH
135=item *
136
9064626f 137XXX Remove this section if not applicable.
a0348300 138
9064626f 139=back
a0348300 140
9064626f
SH
141=head2 Updated Modules and Pragmata
142
143=over 4
a0348300 144
9c600b76 145=item *
a0348300 146
03b7d279
TC
147L<Devel::PPPort> has been upgraded from version 3.54 to 3.55.
148
149The test files generated on Win32 are now identical to when they are
150generated on POSIX-like systems.
151
152=item *
153
154L<File::Find> has been upgraded from version 1.36 to 1.37.
155
156On Win32, the tests no longer require either a file in the drive root
157directory, or a writable root directory.
158
159=item *
160
36bb8f68
JK
161L<Thread> has been upgraded from version 3.04 to 3.05.
162
163=item *
164
8639f158
JK
165L<Getopt::Long> has been upgraded from version 2.50 to 2.51.
166
167=item *
168
029f24d3 169L<Time::HiRes> has been upgraded from version 1.9761 to 1.9762.
f0f66070
TC
170
171Removed obsolete code such as support for pre-5.6 perl and classic
172MacOS. [perl #134288]
173
174=item *
175
a4635286
KW
176L<I18N::LangTags> has been upgraded from version 1.07 to 1.08.
177
178Document the C<IGNORE_WIN32_LOCALE> environment variable.
179
180=item *
181
589e04a1
JK
182L<Test::Simple> has been upgraded from version 1.302164 to 1.302166.
183
184=item *
185
9064626f
SH
186L<XXX> has been upgraded from version A.xx to B.yy.
187
188If there was something important to note about this change, include that here.
189
190=back
191
192=head2 Removed Modules and Pragmata
193
194=over 4
dad02c36 195
9c600b76 196=item *
dad02c36 197
9064626f
SH
198XXX
199
200=back
201
202=head1 Documentation
203
204XXX Changes to files in F<pod/> go here. Consider grouping entries by
205file and be sure to link to the appropriate page, e.g. L<perlfunc>.
206
207=head2 New Documentation
208
209XXX Changes which create B<new> files in F<pod/> go here.
210
211=head3 L<XXX>
212
213XXX Description of the purpose of the new file here
214
215=head2 Changes to Existing Documentation
216
217We have attempted to update the documentation to reflect the changes
218listed in this document. If you find any we have missed, send email
219to L<perlbug@perl.org|mailto:perlbug@perl.org>.
220
221XXX Changes which significantly change existing files in F<pod/> go here.
222However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
223section.
224
225Additionally, the following selected changes have been made:
226
227=head3 L<XXX>
228
229=over 4
cc1cbb06
TC
230
231=item *
232
9064626f 233XXX Description of the change here
8424e368 234
dad02c36 235=back
a0348300 236
dad02c36 237=head1 Diagnostics
a0348300 238
9064626f
SH
239The following additions or changes have been made to diagnostic output,
240including warnings and fatal error messages. For the complete list of
241diagnostic messages, see L<perldiag>.
242
243XXX New or changed warnings emitted by the core's C<C> code go here. Also
244include any changes in L<perldiag> that reconcile it to the C<C> code.
245
dad02c36 246=head2 New Diagnostics
8424e368 247
9064626f
SH
248XXX Newly added diagnostic messages go under here, separated into New Errors
249and New Warnings
250
dad02c36 251=head3 New Errors
8424e368
S
252
253=over 4
254
255=item *
256
9064626f 257XXX L<message|perldiag/"message">
8424e368 258
9064626f
SH
259=back
260
261=head3 New Warnings
262
263=over 4
264
265=item *
266
267XXX L<message|perldiag/"message">
8424e368 268
dad02c36
KE
269=back
270
271=head2 Changes to Existing Diagnostics
272
9064626f
SH
273XXX Changes (i.e. rewording) of diagnostic messages go here
274
860a458f
KE
275=over 4
276
277=item *
278
9064626f
SH
279XXX Describe change here
280
281=back
282
283=head1 Utility Changes
284
285XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
286Most of these are built within the directory F<utils>.
287
288[ List utility changes as a =head2 entry for each utility and =item
289entries for each change
290Use L<XXX> with program names to get proper documentation linking. ]
291
292=head2 L<XXX>
293
294=over 4
295
296=item *
1a7108fe 297
9064626f 298XXX
860a458f
KE
299
300=back
301
8424e368
S
302=head1 Configuration and Compilation
303
9064626f
SH
304XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
305go here. Any other changes to the Perl build process should be listed here.
306However, any platform-specific changes should be listed in the
307L</Platform Support> section, instead.
308
309[ List changes as an =item entry ].
310
8424e368
S
311=over 4
312
313=item *
314
9064626f
SH
315XXX
316
317=back
318
319=head1 Testing
320
321XXX Any significant changes to the testing of a freshly built perl should be
322listed here. Changes which create B<new> files in F<t/> go here as do any
323large changes to the testing harness (e.g. when parallel testing was added).
324Changes to existing files in F<t/> aren't worth summarizing, although the bugs
325that they represent may be covered elsewhere.
326
327XXX If there were no significant test changes, say this:
328
329Tests were added and changed to reflect the other additions and changes
330in this release.
331
332XXX If instead there were significant changes, say this:
333
334Tests were added and changed to reflect the other additions and
335changes in this release. Furthermore, these significant changes were
336made:
337
338[ List each test improvement as an =item entry ]
339
340=over 4
8424e368 341
86b50d93
DIM
342=item *
343
9064626f 344XXX
86b50d93 345
8424e368
S
346=back
347
dad02c36 348=head1 Platform Support
8424e368 349
9064626f 350XXX Any changes to platform support should be listed in the sections below.
fef47ada 351
9064626f
SH
352[ Within the sections, list each platform as an =item entry with specific
353changes as paragraphs below it. ]
4ec3954c 354
9064626f 355=head2 New Platforms
ec121dac 356
9064626f
SH
357XXX List any platforms that this version of perl compiles on, that previous
358versions did not. These will either be enabled by new files in the F<hints/>
359directories, or new subdirectories and F<README> files at the top level of the
360source tree.
ec121dac 361
9064626f 362=over 4
4ec3954c 363
9064626f
SH
364=item XXX-some-platform
365
366XXX
4ec3954c 367
dad02c36 368=back
4ec3954c 369
9064626f 370=head2 Discontinued Platforms
4ec3954c 371
9064626f 372XXX List any platforms that this version of perl no longer compiles on.
4ec3954c 373
9064626f 374=over 4
4ec3954c 375
9064626f 376=item XXX-some-platform
4ec3954c 377
9064626f 378XXX
b870557c 379
9064626f 380=back
b870557c 381
9064626f 382=head2 Platform-Specific Notes
ed0cf058 383
9064626f
SH
384XXX List any changes for specific platforms. This could include configuration
385and compilation changes or changes in portability/compatibility. However,
386changes within modules for platforms should generally be listed in the
387L</Modules and Pragmata> section.
ed0cf058 388
9064626f 389=over 4
f7faf2ad 390
efb1f9ac 391=item Windows
f7faf2ad 392
efb1f9ac
TC
393F<t/op/magic.t> could fail if environment varables starting with
394C<FOO> already existed.
f7faf2ad 395
4ec3954c
TC
396=back
397
9064626f 398=head1 Internal Changes
4ec3954c 399
9064626f
SH
400XXX Changes which affect the interface available to C<XS> code go here. Other
401significant internal changes for future core maintainers should be noted as
402well.
2dd5ef16 403
9064626f 404[ List each change as an =item entry ]
5b2f1ba6 405
9064626f 406=over 4
5b2f1ba6 407
b870557c
TC
408=item *
409
996b0cb8
PLE
410A new parser function L<parse_subsignature()|perlapi/parse_subsignature>
411allows a keyword plugin to parse a subroutine signature while C<use feature
412'signatures'> is in effect. This allows custom keywords to implement
413semantics similar to regular C<sub> declarations that include signatures.
414[perl #132474]
b870557c 415
061637ca
HS
416=item *
417
418Since on some platforms we need to hold a mutex when temporarily
419switching locales, new macros (C<STORE_LC_NUMERIC_SET_TO_NEEDED_IN>,
420C<WITH_LC_NUMERIC_SET_TO_NEEDED> and C<WITH_LC_NUMERIC_SET_TO_NEEDED_IN>)
421have been added to make it easier to do this safely and efficiently
422as part of [perl #134172].
423
9064626f 424=back
ed0cf058 425
9064626f 426=head1 Selected Bug Fixes
ed0cf058 427
9064626f
SH
428XXX Important bug fixes in the core language are summarized here. Bug fixes in
429files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
973ae088 430
9064626f
SH
431[ List each fix as an =item entry ]
432
433=over 4
973ae088 434
f7faf2ad
SH
435=item *
436
052ce2b8
TC
437C<< $@ = 100; die; >> now correctly propagates the 100 as an exception
438instead of ignoring it. [perl #134291]
f7faf2ad 439
a3c77565
TC
440=item *
441
442C<< 0 0x@ >> no longer asserts in S_no_op(). [perl #134310]
443
6e23836a
TC
444=item *
445
446Exceptions thrown while C<$@> is read-only could result in infinite
447recursion as perl tried to update C<$@>, which throws another
448exception, resulting in a stack overflow. Perl now replaces C<$@>
449with a copy if it's not a simple writable SV. [perl #134266]
450
dad02c36 451=back
5b2f1ba6 452
dad02c36 453=head1 Known Problems
5b2f1ba6 454
9064626f
SH
455XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
456tests that had to be C<TODO>ed for the release would be noted here. Unfixed
457platform specific bugs also go here.
84ab3b69 458
9064626f 459[ List each fix as an =item entry ]
fa068f6d 460
9064626f 461=over 4
cb561db1
SH
462
463=item *
464
9064626f 465XXX
fa068f6d 466
8424e368
S
467=back
468
9064626f
SH
469=head1 Errata From Previous Releases
470
471=over 4
a0348300 472
9064626f
SH
473=item *
474
475XXX Add anything here that we forgot to add, or were mistaken about, in
476the perldelta of a previous release.
8424e368 477
9064626f 478=back
a01eaaa1 479
9064626f 480=head1 Obituary
a01eaaa1 481
9064626f
SH
482XXX If any significant core contributor or member of the CPAN community has
483died, add a short obituary here.
a01eaaa1 484
9064626f 485=head1 Acknowledgements
a01eaaa1 486
9064626f 487XXX Generate this with:
a01eaaa1 488
9064626f 489 perl Porting/acknowledgements.pl v5.31.2..HEAD
8424e368 490
44691e6f
AB
491=head1 Reporting Bugs
492
9064626f
SH
493If you find what you think is a bug, you might check the perl bug database
494at L<https://rt.perl.org/>. There may also be information at
15f62f05 495L<http://www.perl.org/>, the Perl Home Page.
44691e6f 496
e08634c5
SH
497If you believe you have an unreported bug, please run the L<perlbug> program
498included with your release. Be sure to trim your bug down to a tiny but
499sufficient test case. Your bug report, along with the output of C<perl -V>,
0e18d1c4 500will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f 501
87c118b9
DM
502If the bug you are reporting has security implications which make it
503inappropriate to send to a publicly archived mailing list, then see
9064626f
SH
504L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
505for details of how to report the issue.
44691e6f 506
390ae6f9
S
507=head1 Give Thanks
508
9064626f
SH
509If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
510you can do so by running the C<perlthanks> program:
390ae6f9
S
511
512 perlthanks
513
514This will send an email to the Perl 5 Porters list with your show of thanks.
515
44691e6f
AB
516=head1 SEE ALSO
517
e08634c5
SH
518The F<Changes> file for an explanation of how to view exhaustive details on
519what changed.
44691e6f
AB
520
521The F<INSTALL> file for how to build Perl.
522
523The F<README> file for general stuff.
524
525The F<Artistic> and F<Copying> files for copyright information.
526
527=cut