This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
bump $IO::VERSION
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
d1a156bb
MH
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.9
d407e309 9
862f380b 10=head1 DESCRIPTION
261e14b0 11
d1a156bb 12This document describes differences between the 5.31.8 release and the 5.31.9
862f380b 13release.
261e14b0 14
d1a156bb
MH
15If you are upgrading from an earlier release such as 5.31.7, first read
16L<perl5318delta>, which describes differences between 5.31.7 and 5.31.8.
9629ca98
N
17
18=head1 Notice
19
d1a156bb 20XXX Any important notices here
65c3f050 21
d1a156bb 22=head1 Core Enhancements
be2eb09e 23
d1a156bb
MH
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.
ced2c819 27
d1a156bb 28[ List each enhancement as a =head2 entry ]
ced2c819 29
d1a156bb 30=head1 Security
87fd4a59 31
d1a156bb
MH
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.
87fd4a59 35
d1a156bb 36[ List each security issue as a =head2 entry ]
87fd4a59 37
d1a156bb 38=head1 Incompatible Changes
87fd4a59 39
d1a156bb 40XXX For a release on a stable branch, this section aspires to be:
ced2c819 41
d1a156bb
MH
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.
46a21c0a 45
d1a156bb 46[ List each incompatible change as a =head2 entry ]
65c3f050 47
d1a156bb 48=head1 Deprecations
149c28f9 49
d1a156bb 50XXX Any deprecated features, syntax, modules etc. should be listed here.
c40875b7 51
d1a156bb 52=head2 Module removals
cd42a730 53
d1a156bb 54XXX Remove this section if not applicable.
1945661d 55
d1a156bb
MH
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.
65c3f050 60
d1a156bb
MH
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.
cd42a730 64
d1a156bb
MH
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.
ced2c819 69
d1a156bb 70=over
ced2c819 71
d1a156bb 72=item XXX
cf54f0ad 73
d1a156bb
MH
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.
149c28f9 76
d1a156bb 77=back
ced2c819 78
d1a156bb 79[ List each other deprecation as a =head2 entry ]
cf54f0ad 80
d1a156bb 81=head1 Performance Enhancements
fcbec156 82
d1a156bb
MH
83XXX Changes which enhance performance without changing behaviour go here.
84There may well be none in a stable release.
b5599884 85
d1a156bb 86[ List each enhancement as an =item entry ]
77b20e67 87
d1a156bb 88=over 4
77b20e67 89
5c2513ee
JK
90=item *
91
d1a156bb 92XXX
5c2513ee 93
d1a156bb 94=back
a4aa12d5 95
d1a156bb 96=head1 Modules and Pragmata
bad3a436 97
d1a156bb
MH
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.
bad3a436 103
d1a156bb
MH
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.)
cf54f0ad 109
d1a156bb 110[ Within each section, list entries as an =item entry ]
b5599884 111
d1a156bb 112=head2 New Modules and Pragmata
46a21c0a 113
d1a156bb 114=over 4
cf54f0ad
MH
115
116=item *
117
d1a156bb 118XXX Remove this section if not applicable.
336e728b 119
9629ca98 120=back
149c28f9 121
d1a156bb 122=head2 Updated Modules and Pragmata
87fd4a59
MH
123
124=over 4
125
126=item *
127
98c72b16 128L<Storable> has been upgraded from version 3.18 to 3.19.
87fd4a59 129
98c72b16
TC
130Use of note() from Test::More is now optional in tests. This works
131around a circular dependency with Test::More when installing on very
132old perls from CPAN.
87fd4a59 133
d1a156bb 134=back
87fd4a59 135
d1a156bb 136=head2 Removed Modules and Pragmata
87fd4a59 137
d1a156bb 138=over 4
87fd4a59
MH
139
140=item *
141
d1a156bb 142XXX
87fd4a59
MH
143
144=back
145
d1a156bb 146=head1 Documentation
87fd4a59 147
d1a156bb
MH
148XXX Changes to files in F<pod/> go here. Consider grouping entries by
149file and be sure to link to the appropriate page, e.g. L<perlfunc>.
87fd4a59 150
d1a156bb 151=head2 New Documentation
87fd4a59 152
d1a156bb 153XXX Changes which create B<new> files in F<pod/> go here.
87fd4a59 154
d1a156bb 155=head3 L<XXX>
87fd4a59 156
d1a156bb 157XXX Description of the purpose of the new file here
87fd4a59 158
d1a156bb 159=head2 Changes to Existing Documentation
87fd4a59 160
d1a156bb
MH
161We have attempted to update the documentation to reflect the changes
162listed in this document. If you find any we have missed, open an issue
163at L<https://github.com/Perl/perl5/issues>.
87fd4a59 164
d1a156bb
MH
165XXX Changes which significantly change existing files in F<pod/> go here.
166However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
167section.
87fd4a59 168
d1a156bb 169Additionally, the following selected changes have been made:
cfbe7727 170
d1a156bb 171=head3 L<XXX>
87fd4a59
MH
172
173=over 4
174
175=item *
176
6c245260
TC
177Links to the now defunct L<https://search.cpan.org> site now point at
178the equivalent L<https://metacpan.org> URL. [GH #17393]
87fd4a59 179
d056cb55
TC
180=item *
181
182The man page for L<ExtUtils::XSSymSet> is now only installed on VMS,
183which is the only platform the module is installed on. [GH #17424]
184
87fd4a59
MH
185=back
186
d1a156bb 187=head1 Diagnostics
87fd4a59 188
d1a156bb
MH
189The following additions or changes have been made to diagnostic output,
190including warnings and fatal error messages. For the complete list of
191diagnostic messages, see L<perldiag>.
87fd4a59 192
d1a156bb
MH
193XXX New or changed warnings emitted by the core's C<C> code go here. Also
194include any changes in L<perldiag> that reconcile it to the C<C> code.
87fd4a59 195
d1a156bb 196=head2 New Diagnostics
87fd4a59 197
d1a156bb
MH
198XXX Newly added diagnostic messages go under here, separated into New Errors
199and New Warnings
87fd4a59 200
d1a156bb 201=head3 New Errors
87fd4a59
MH
202
203=over 4
204
205=item *
206
d1a156bb 207XXX L<message|perldiag/"message">
87fd4a59
MH
208
209=back
210
d1a156bb 211=head3 New Warnings
87fd4a59
MH
212
213=over 4
214
215=item *
216
dc4a6683
KW
217L<Code point 0x%X is not Unicode, and not portable|perldiag/"Code point 0x%X is not Unicode, and not portable">
218
219This is actually not a new message, but it is now output when the
220warnings category C<portable> is enabled.
221
eb761011
KW
222When raised during regular expression pattern compilation, the warning
223has extra text added at the end marking where precisely in the pattern
224it occured.
225
dc4a6683
KW
226=item *
227
8d1e72f0
KW
228L<Non-hex character '%c' terminates \x early. Resolved as "%s"|perldiag/"Non-hex character '%c' terminates \x early. Resolved as "%s"">
229
230This replaces a warning that was much less specific, and which gave
231false information. This new warning parallels the similar
232already-existing one raised for C<\o{}>.
233
234=item *
235
dc4a6683 236L<message|perldiag/"message">
87fd4a59
MH
237
238=back
239
d1a156bb 240=head2 Changes to Existing Diagnostics
04d3d25b 241
d1a156bb 242XXX Changes (i.e. rewording) of diagnostic messages go here
04d3d25b 243
d1a156bb 244=over 4
87fd4a59
MH
245
246=item *
247
73351a71
KW
248L<Character following "\c" must be printable ASCII|perldiag/"Character following "\c" must be printable ASCII">
249
250now has extra text added at the end, when raised during regular
251expression pattern compilation, marking where precisely in the pattern
252it occured.
253
254=item *
255
256L<Use "%s" instead of "%s"|perldiag/"Use "%s" instead of "%s"">
257
258now has extra text added at the end, when raised during regular
259expression pattern compilation, marking where precisely in the pattern
260it occured.
261
262=item *
263
264L<Sequence "\c{" invalid|perldiag/"Sequence "\c{" invalid">
265
266now has extra text added at the end, when raised during regular
267expression pattern compilation, marking where precisely in the pattern
268it occured.
269
270=item *
271
272L<"\c%c" is more clearly written simply as "%s"|perldiag/""\c%c" is more clearly written simply as "%s"">
273
274now has extra text added at the end, when raised during regular
275expression pattern compilation, marking where precisely in the pattern
276it occured.
fcbec156 277
8d1e72f0
KW
278=item *
279
280L<Non-octal character '%c' terminates \o early. Resolved as "%s"|perldiag/"Non-octal character '%c' terminates \o early. Resolved as "%s"">
281
282now includes the phrase "terminates \o early", and has extra text added
283at the end, when raised during regular expression pattern compilation,
284marking where precisely in the pattern it occured. In some instances
285the text of the resolution has been clarified.
286
fcc04d73
KW
287=item *
288
289L<'%s' resolved to '\o{%s}%d'|perldiag/'%s' resolved to '\o{%s}%d'>
290
291As of Perl 5.32, this message is no longer generated. Instead,
292L<perldiag/Non-octal character '%c' terminates \o early. Resolved as "%s">
293is.
294
5b5e2c03
KW
295=item *
296
297
298L<Use of code point 0x%s is not allowed; the permissible max is 0x%X|perldiag/"Use of code point 0x%s is not allowed; the permissible max is 0x%X">
299
300Some instances of this message previously output the hex digits C<A>,
301C<B>, C<C>, C<D>, C<E>, and C<F> in lower case. Now they are all
302consistently upper case.
303
9629ca98 304=back
65c3f050 305
d1a156bb 306=head1 Utility Changes
46a21c0a 307
d1a156bb
MH
308XXX Changes to installed programs such as F<perldoc> and F<xsubpp> go here.
309Most of these are built within the directory F<utils>.
46a21c0a 310
d1a156bb
MH
311[ List utility changes as a =head2 entry for each utility and =item
312entries for each change
313Use L<XXX> with program names to get proper documentation linking. ]
314
315=head2 L<XXX>
9629ca98 316
65c3f050 317=over 4
74c14c97 318
9629ca98 319=item *
46a21c0a 320
d1a156bb 321XXX
65c3f050 322
9629ca98 323=back
46a21c0a 324
9629ca98 325=head1 Configuration and Compilation
46a21c0a 326
d1a156bb
MH
327XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
328go here. Any other changes to the Perl build process should be listed here.
329However, any platform-specific changes should be listed in the
330L</Platform Support> section, instead.
331
332[ List changes as an =item entry ].
333
149c28f9 334=over 4
74c14c97 335
9629ca98 336=item *
fcbec156 337
d1a156bb 338XXX
65c3f050 339
d1a156bb 340=back
65c3f050 341
d1a156bb 342=head1 Testing
65c3f050 343
d1a156bb
MH
344XXX Any significant changes to the testing of a freshly built perl should be
345listed here. Changes which create B<new> files in F<t/> go here as do any
346large changes to the testing harness (e.g. when parallel testing was added).
347Changes to existing files in F<t/> aren't worth summarizing, although the bugs
348that they represent may be covered elsewhere.
65c3f050 349
d1a156bb 350XXX If there were no significant test changes, say this:
65c3f050 351
d1a156bb
MH
352Tests were added and changed to reflect the other additions and changes
353in this release.
65c3f050 354
d1a156bb 355XXX If instead there were significant changes, say this:
9629ca98
N
356
357Tests were added and changed to reflect the other additions and
358changes in this release. Furthermore, these significant changes were
359made:
360
d1a156bb
MH
361[ List each test improvement as an =item entry ]
362
149c28f9 363=over 4
65c3f050 364
9629ca98 365=item *
65c3f050 366
d056cb55
TC
367F<t/run/switches.t> no longer uses (and re-uses) the F<tmpinplace/>
368directory under F<t/>. This may prevent spurious failures. [GH #17424]
65c3f050 369
149c28f9 370=back
65c3f050 371
9629ca98 372=head1 Platform Support
65c3f050 373
d1a156bb 374XXX Any changes to platform support should be listed in the sections below.
65c3f050 375
d1a156bb
MH
376[ Within the sections, list each platform as an =item entry with specific
377changes as paragraphs below it. ]
061637ca 378
d1a156bb 379=head2 New Platforms
285db695 380
d1a156bb
MH
381XXX List any platforms that this version of perl compiles on, that previous
382versions did not. These will either be enabled by new files in the F<hints/>
383directories, or new subdirectories and F<README> files at the top level of the
384source tree.
87fd4a59 385
d1a156bb 386=over 4
87fd4a59 387
d1a156bb 388=item XXX-some-platform
87fd4a59 389
d1a156bb 390XXX
46a21c0a 391
65c3f050
CBW
392=back
393
d1a156bb
MH
394=head2 Discontinued Platforms
395
396XXX List any platforms that this version of perl no longer compiles on.
65c3f050 397
9629ca98 398=over 4
f3496246 399
d1a156bb 400=item XXX-some-platform
149c28f9 401
d1a156bb 402XXX
65c3f050 403
149c28f9 404=back
65c3f050 405
d1a156bb
MH
406=head2 Platform-Specific Notes
407
408XXX List any changes for specific platforms. This could include configuration
409and compilation changes or changes in portability/compatibility. However,
410changes within modules for platforms should generally be listed in the
411L</Modules and Pragmata> section.
65c3f050 412
65c3f050 413=over 4
a1e5b700 414
74a32ed2
CB
415=item VMS
416
417With the release of the patch kit C99 V2.0, VSI has provided support for a
418number of previously-missing C99 features. On systems with that patch kit
419installed, Perl's configuration process will now detect the presence of the
420header C<stdint.h> and the following functions: C<fpclassify>, C<isblank>, C<isless>,
421C<llrint>, C<llrintl>, C<llround>, C<llroundl>, C<nearbyint>, C<round>, C<scalbn>,
422and C<scalbnl>.
87fd4a59 423
d1a156bb 424=back
87fd4a59 425
d1a156bb 426=head1 Internal Changes
87fd4a59 427
d1a156bb
MH
428XXX Changes which affect the interface available to C<XS> code go here. Other
429significant internal changes for future core maintainers should be noted as
430well.
87fd4a59 431
d1a156bb
MH
432[ List each change as an =item entry ]
433
434=over 4
87fd4a59
MH
435
436=item *
437
d1a156bb 438XXX
87fd4a59 439
d1a156bb 440=back
87fd4a59 441
d1a156bb
MH
442=head1 Selected Bug Fixes
443
444XXX Important bug fixes in the core language are summarized here. Bug fixes in
445files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
87fd4a59 446
d1a156bb 447[ List each fix as an =item entry ]
87fd4a59 448
d1a156bb 449=over 4
87fd4a59
MH
450
451=item *
452
7fba41dc
TC
453Previously L<perlfunc/require> would only treat the special built-in
454SV C<&PL_sv_undef> as a value in C<%INC> as if a previous C<require>
455has failed, treating other undefined SVs as if the previous C<require>
456has succeeded. This could cause unexpected success from C<require>
457eg. on C<local %INC = %INC;>. This has been fixed [GH #17428]
87fd4a59 458
464d81f9
HS
459=item *
460
461C<(?{...})> eval groups in regular expressions no longer unintentionally
462trigger "EVAL without pos change exceeded limit in regex" [GH #17490].
463
d1a156bb 464=back
87fd4a59 465
d1a156bb
MH
466=head1 Known Problems
467
468XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
469tests that had to be C<TODO>ed for the release would be noted here. Unfixed
470platform specific bugs also go here.
471
472[ List each fix as an =item entry ]
87fd4a59 473
d1a156bb
MH
474=over 4
475
476=item *
87fd4a59 477
d1a156bb 478XXX
a1e5b700 479
46a21c0a
SH
480=back
481
d1a156bb 482=head1 Errata From Previous Releases
f3d30b53 483
d1a156bb 484=over 4
2852b67a 485
d1a156bb 486=item *
2852b67a 487
d1a156bb
MH
488XXX Add anything here that we forgot to add, or were mistaken about, in
489the perldelta of a previous release.
2852b67a 490
d1a156bb 491=back
2852b67a 492
d1a156bb
MH
493=head1 Obituary
494
495XXX If any significant core contributor or member of the CPAN community has
496died, add a short obituary here.
497
498=head1 Acknowledgements
2852b67a 499
d1a156bb 500XXX Generate this with:
2852b67a 501
d1a156bb 502 perl Porting/acknowledgements.pl v5.31.8..HEAD
8424e368 503
44691e6f
AB
504=head1 Reporting Bugs
505
46a21c0a 506If you find what you think is a bug, you might check the perl bug database
8034715d 507at L<https://github.com/Perl/perl5/issues>. There may also be information at
46a21c0a 508L<http://www.perl.org/>, the Perl Home Page.
44691e6f 509
8166b4e0
DB
510If you believe you have an unreported bug, please open an issue at
511L<https://github.com/Perl/perl5/issues>. Be sure to trim your bug down to a
512tiny but sufficient test case.
44691e6f 513
87c118b9 514If the bug you are reporting has security implications which make it
8166b4e0 515inappropriate to send to a public issue tracker, then see
46a21c0a
SH
516L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
517for details of how to report the issue.
44691e6f 518
390ae6f9
S
519=head1 Give Thanks
520
46a21c0a
SH
521If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
522you can do so by running the C<perlthanks> program:
390ae6f9
S
523
524 perlthanks
525
526This will send an email to the Perl 5 Porters list with your show of thanks.
527
44691e6f
AB
528=head1 SEE ALSO
529
e08634c5
SH
530The F<Changes> file for an explanation of how to view exhaustive details on
531what changed.
44691e6f
AB
532
533The F<INSTALL> file for how to build Perl.
534
535The F<README> file for general stuff.
536
537The F<Artistic> and F<Copying> files for copyright information.
538
539=cut