This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
gv.c - in comments for ${^LONG_NAMES} use the curly braces
[perl5.git] / pod / perldelta.pod
CommitLineData
0382c61d 1=encoding utf8
7b0fb693 2
0382c61d 3=head1 NAME
7b0fb693 4
9865eed8
KE
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.37.10
aae76867 9
9f2eb154 10=head1 DESCRIPTION
aae76867 11
9865eed8 12This document describes differences between the 5.37.9 release and the 5.37.10
9f2eb154 13release.
aae76867 14
9865eed8
KE
15If you are upgrading from an earlier release such as 5.37.8, first read
16L<perl5379delta>, which describes differences between 5.37.8 and 5.37.9.
8cf9e0b7 17
9865eed8 18=head1 Notice
8cf9e0b7 19
9865eed8 20XXX Any important notices here
8cf9e0b7 21
9865eed8 22=head1 Core Enhancements
0f2b2db7 23
9865eed8
KE
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.
0f2b2db7 27
9865eed8 28[ List each enhancement as a =head2 entry ]
c01e27fc 29
c61be20d
PE
30=head2 Some C<goto>s are now permitted in C<defer> and C<finally> blocks
31
32Perl version 5.36.0 added C<defer> blocks and permitted the C<finally> keyword
33to also add similar behaviour to C<try>/C<catch> syntax. These did not permit
34any C<goto> expression within the body, as it could have caused control flow
35to jump out of the block. Now, some C<goto> expressions are allowed, if they
36have a constant target label, and that label is found within the block.
37
38 use feature 'defer';
39
40 defer {
41 goto LABEL;
42 print "This does not execute\n";
43 LABEL: print "This does\n";
44 }
45
9865eed8 46=head1 Security
c01e27fc 47
9865eed8
KE
48XXX Any security-related notices go here. In particular, any security
49vulnerabilities closed should be noted here rather than in the
50L</Selected Bug Fixes> section.
c01e27fc 51
9865eed8 52[ List each security issue as a =head2 entry ]
c01e27fc 53
4d2e6572
RB
54=head1 Incompatible Changes
55
9865eed8 56XXX For a release on a stable branch, this section aspires to be:
b87acd3b 57
9865eed8
KE
58 There are no changes intentionally incompatible with 5.XXX.XXX
59 If any exist, they are bugs, and we request that you submit a
60 report. See L</Reporting Bugs> below.
b87acd3b 61
9865eed8 62[ List each incompatible change as a =head2 entry ]
b87acd3b 63
9865eed8 64=head1 Deprecations
dcc59d83 65
9865eed8 66XXX Any deprecated features, syntax, modules etc. should be listed here.
b87acd3b 67
9865eed8 68=head2 Module removals
b87acd3b 69
9865eed8 70XXX Remove this section if not applicable.
347a477c 71
9865eed8
KE
72The following modules will be removed from the core distribution in a
73future release, and will at that time need to be installed from CPAN.
74Distributions on CPAN which require these modules will need to list them as
75prerequisites.
b694b46b 76
9865eed8
KE
77The core versions of these modules will now issue C<"deprecated">-category
78warnings to alert you to this fact. To silence these deprecation warnings,
79install the modules in question from CPAN.
4d2e6572 80
9865eed8
KE
81Note that these are (with rare exceptions) fine modules that you are encouraged
82to continue to use. Their disinclusion from core primarily hinges on their
83necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
84not usually on concerns over their design.
dcc59d83 85
9865eed8 86=over
dcc59d83 87
9865eed8 88=item XXX
dcc59d83 89
9865eed8
KE
90XXX Note that deprecated modules should be listed here even if they are listed
91as an updated module in the L</Modules and Pragmata> section.
b87acd3b 92
9865eed8 93=back
b87acd3b 94
9865eed8 95[ List each other deprecation as a =head2 entry ]
bf44733f 96
9865eed8 97=head1 Performance Enhancements
25948dfb 98
9865eed8
KE
99XXX Changes which enhance performance without changing behaviour go here.
100There may well be none in a stable release.
4d2e6572 101
9865eed8 102[ List each enhancement as an =item entry ]
bbb34266 103
9865eed8 104=over 4
dcc59d83
KE
105
106=item *
107
9865eed8 108XXX
dcc59d83 109
9865eed8 110=back
dcc59d83 111
9865eed8 112=head1 Modules and Pragmata
dcc59d83 113
9865eed8
KE
114XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
115go here. If Module::CoreList is updated, generate an initial draft of the
116following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
117for important changes should then be added by hand. In an ideal world,
118dual-life modules would have a F<Changes> file that could be cribbed.
dcc59d83 119
9865eed8
KE
120The list of new and updated modules is modified automatically as part of
121preparing a Perl release, so the only reason to manually add entries here is if
122you're summarising the important changes in the module update. (Also, if the
123manually-added details don't match the automatically-generated ones, the
124release manager will have to investigate the situation carefully.)
dcc59d83 125
9865eed8 126[ Within each section, list entries as an =item entry ]
dcc59d83 127
9865eed8 128=head2 New Modules and Pragmata
dcc59d83 129
9865eed8 130=over 4
dcc59d83
KE
131
132=item *
133
e95dc77e 134XXX Remove this section if Porting/corelist-perldelta.pl did not add any content here.
dcc59d83 135
9865eed8 136=back
dcc59d83 137
9865eed8 138=head2 Updated Modules and Pragmata
dcc59d83 139
9865eed8 140=over 4
dcc59d83
KE
141
142=item *
143
9865eed8 144L<XXX> has been upgraded from version A.xx to B.yy.
dcc59d83 145
e95dc77e 146XXX If there was something important to note about this change, include that here.
dcc59d83 147
9865eed8 148=back
dcc59d83 149
9865eed8 150=head2 Removed Modules and Pragmata
dcc59d83 151
9865eed8 152=over 4
bacfb30b 153
ae98afd8 154=item *
8f4d4ed2 155
e95dc77e 156XXX Remove this section if Porting/corelist-perldelta.pl did not add any content here.
b87acd3b 157
4d2e6572
RB
158=back
159
160=head1 Documentation
161
9865eed8
KE
162XXX Changes to files in F<pod/> go here. Consider grouping entries by
163file and be sure to link to the appropriate page, e.g. L<perlfunc>.
4d2e6572 164
9865eed8 165=head2 New Documentation
43ea14c2 166
9865eed8 167XXX Changes which create B<new> files in F<pod/> go here.
4d2e6572 168
9865eed8 169=head3 L<XXX>
4d2e6572 170
9865eed8 171XXX Description of the purpose of the new file here
4d2e6572
RB
172
173=head2 Changes to Existing Documentation
174
175We have attempted to update the documentation to reflect the changes
176listed in this document. If you find any we have missed, open an issue
177at L<https://github.com/Perl/perl5/issues>.
178
9865eed8
KE
179XXX Changes which significantly change existing files in F<pod/> go here.
180However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
181section.
43ea14c2 182
9865eed8 183Additionally, the following selected changes have been made:
43ea14c2 184
9865eed8 185=head3 L<XXX>
4d2e6572
RB
186
187=over 4
2feb1615 188
b87acd3b 189=item *
2feb1615 190
9865eed8 191XXX Description of the change here
4d2e6572
RB
192
193=back
194
195=head1 Diagnostics
196
197The following additions or changes have been made to diagnostic output,
198including warnings and fatal error messages. For the complete list of
199diagnostic messages, see L<perldiag>.
200
9865eed8
KE
201XXX New or changed warnings emitted by the core's C<C> code go here. Also
202include any changes in L<perldiag> that reconcile it to the C<C> code.
203
4d2e6572
RB
204=head2 New Diagnostics
205
9865eed8
KE
206XXX Newly added diagnostic messages go under here, separated into New Errors
207and New Warnings
208
4d2e6572
RB
209=head3 New Errors
210
211=over 4
b694b46b
RL
212
213=item *
214
9865eed8 215XXX L<message|perldiag/"message">
4d2e6572 216
9865eed8 217=back
f101e19a 218
9865eed8 219=head3 New Warnings
4d2e6572 220
9865eed8 221=over 4
4d2e6572 222
43ea14c2 223=item *
4d2e6572 224
9865eed8 225XXX L<message|perldiag/"message">
4d2e6572 226
9865eed8 227=back
43ea14c2 228
9865eed8 229=head2 Changes to Existing Diagnostics
43ea14c2 230
9865eed8 231XXX Changes (i.e. rewording) of diagnostic messages go here
43ea14c2 232
9865eed8 233=over 4
4d2e6572
RB
234
235=item *
236
9865eed8 237XXX Describe change here
f101e19a 238
9865eed8 239=back
b694b46b 240
9865eed8 241=head1 Utility Changes
4d2e6572 242
9865eed8
KE
243XXX Changes to installed programs such as F<perldoc> and F<xsubpp> go here.
244Most of these are built within the directory F<utils>.
4d2e6572 245
9865eed8
KE
246[ List utility changes as a =head2 entry for each utility and =item
247entries for each change
248Use L<XXX> with program names to get proper documentation linking. ]
4d2e6572 249
9865eed8 250=head2 L<XXX>
4d2e6572 251
9865eed8 252=over 4
4d2e6572 253
43ea14c2 254=item *
4d2e6572 255
9865eed8 256XXX
4d2e6572 257
9865eed8 258=back
4d2e6572 259
9865eed8 260=head1 Configuration and Compilation
43ea14c2 261
9865eed8
KE
262XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
263go here. Any other changes to the Perl build process should be listed here.
264However, any platform-specific changes should be listed in the
265L</Platform Support> section, instead.
43ea14c2 266
9865eed8 267[ List changes as an =item entry ].
43ea14c2 268
9865eed8 269=over 4
43ea14c2
KE
270
271=item *
272
9865eed8 273XXX
43ea14c2
KE
274
275=back
276
9865eed8 277=head1 Testing
43ea14c2 278
9865eed8
KE
279XXX Any significant changes to the testing of a freshly built perl should be
280listed here. Changes which create B<new> files in F<t/> go here as do any
281large changes to the testing harness (e.g. when parallel testing was added).
282Changes to existing files in F<t/> aren't worth summarizing, although the bugs
283that they represent may be covered elsewhere.
43ea14c2 284
9865eed8 285XXX If there were no significant test changes, say this:
43ea14c2 286
9865eed8
KE
287Tests were added and changed to reflect the other additions and changes
288in this release.
43ea14c2 289
9865eed8 290XXX If instead there were significant changes, say this:
43ea14c2 291
9865eed8
KE
292Tests were added and changed to reflect the other additions and
293changes in this release. Furthermore, these significant changes were
294made:
43ea14c2 295
9865eed8 296[ List each test improvement as an =item entry ]
43ea14c2 297
9865eed8 298=over 4
43ea14c2
KE
299
300=item *
301
9865eed8 302XXX
43ea14c2 303
9865eed8 304=back
43ea14c2 305
9865eed8 306=head1 Platform Support
43ea14c2 307
9865eed8 308XXX Any changes to platform support should be listed in the sections below.
43ea14c2 309
9865eed8
KE
310[ Within the sections, list each platform as an =item entry with specific
311changes as paragraphs below it. ]
43ea14c2 312
9865eed8 313=head2 New Platforms
43ea14c2 314
9865eed8
KE
315XXX List any platforms that this version of perl compiles on, that previous
316versions did not. These will either be enabled by new files in the F<hints/>
317directories, or new subdirectories and F<README> files at the top level of the
318source tree.
43ea14c2 319
9865eed8 320=over 4
43ea14c2 321
9865eed8 322=item XXX-some-platform
43ea14c2 323
9865eed8 324XXX
4d2e6572
RB
325
326=back
327
9865eed8 328=head2 Discontinued Platforms
43ea14c2 329
9865eed8 330XXX List any platforms that this version of perl no longer compiles on.
43ea14c2 331
9865eed8 332=over 4
43ea14c2 333
9865eed8 334=item XXX-some-platform
43ea14c2 335
9865eed8 336XXX
43ea14c2
KE
337
338=back
b694b46b 339
9865eed8 340=head2 Platform-Specific Notes
b694b46b 341
9865eed8
KE
342XXX List any changes for specific platforms. This could include configuration
343and compilation changes or changes in portability/compatibility. However,
344changes within modules for platforms should generally be listed in the
345L</Modules and Pragmata> section.
b694b46b 346
9865eed8 347=over 4
43ea14c2 348
9865eed8 349=item XXX-some-platform
43ea14c2 350
9865eed8 351XXX
314388b6 352
4d2e6572 353=back
314388b6 354
43ea14c2 355=head1 Internal Changes
4d2e6572 356
9865eed8
KE
357XXX Changes which affect the interface available to C<XS> code go here. Other
358significant internal changes for future core maintainers should be noted as
359well.
314388b6 360
9865eed8 361[ List each change as an =item entry ]
314388b6 362
9865eed8 363=over 4
314388b6 364
1ca0f119
KW
365=item *
366
9865eed8 367XXX
1ca0f119 368
314388b6
TC
369=back
370
4d2e6572
RB
371=head1 Selected Bug Fixes
372
9865eed8
KE
373XXX Important bug fixes in the core language are summarized here. Bug fixes in
374files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
4d2e6572 375
e95dc77e
KE
376Include references to GitHub issues and PRs as: [GH #12345] and the release
377manager will later use a regex to expand these into links.
378
9865eed8 379[ List each fix as an =item entry ]
4d2e6572 380
9865eed8 381=over 4
4d2e6572 382
4202141d
TC
383=item *
384
edcf480e
AJ
385In the new experimental C<class> feature, attributes are no longer a syntax
386error when using the unit class syntax.
387[GH #20888].
388
389=item *
390
9865eed8 391XXX
4202141d 392
9865eed8 393=back
4202141d 394
9865eed8 395=head1 Known Problems
828bae55 396
9865eed8
KE
397XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
398tests that had to be C<TODO>ed for the release would be noted here. Unfixed
399platform specific bugs also go here.
828bae55 400
9865eed8 401[ List each fix as an =item entry ]
0a73ee9e 402
9865eed8 403=over 4
0a73ee9e
YO
404
405=item *
406
9865eed8 407XXX
0a73ee9e 408
9865eed8 409=back
0a73ee9e 410
9865eed8 411=head1 Errata From Previous Releases
0a73ee9e 412
9865eed8 413=over 4
0a73ee9e 414
61241b1b
KW
415=item *
416
9865eed8
KE
417XXX Add anything here that we forgot to add, or were mistaken about, in
418the perldelta of a previous release.
61241b1b 419
b694b46b
RL
420=back
421
9865eed8 422=head1 Obituary
c0b38a2b 423
9865eed8
KE
424XXX If any significant core contributor or member of the CPAN community has
425died, add a short obituary here.
4d2e6572 426
9865eed8 427=head1 Acknowledgements
c0b38a2b 428
9865eed8 429XXX Generate this with:
9f2eb154 430
9865eed8 431 perl Porting/acknowledgements.pl v5.37.9..HEAD
8424e368 432
44691e6f
AB
433=head1 Reporting Bugs
434
6acd8d81
SH
435If you find what you think is a bug, you might check the perl bug database
436at L<https://github.com/Perl/perl5/issues>. There may also be information at
46a21c0a 437L<http://www.perl.org/>, the Perl Home Page.
44691e6f 438
8166b4e0 439If you believe you have an unreported bug, please open an issue at
0382c61d 440L<https://github.com/Perl/perl5/issues>. Be sure to trim your bug down to a
8166b4e0 441tiny but sufficient test case.
44691e6f 442
87c118b9 443If the bug you are reporting has security implications which make it
8166b4e0 444inappropriate to send to a public issue tracker, then see
6acd8d81
SH
445L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
446for details of how to report the issue.
44691e6f 447
390ae6f9
S
448=head1 Give Thanks
449
6acd8d81
SH
450If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
451you can do so by running the C<perlthanks> program:
390ae6f9
S
452
453 perlthanks
454
455This will send an email to the Perl 5 Porters list with your show of thanks.
456
44691e6f
AB
457=head1 SEE ALSO
458
e08634c5
SH
459The F<Changes> file for an explanation of how to view exhaustive details on
460what changed.
44691e6f
AB
461
462The F<INSTALL> file for how to build Perl.
463
464The F<README> file for general stuff.
465
466The F<Artistic> and F<Copying> files for copyright information.
467
468=cut