This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for fd879d933c2a2ee22ac6e2462acc016aa033854d
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
0e18d1c4
N
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.29.9
e4c43fa1 9
4026b091
S
10=head1 DESCRIPTION
11
0e18d1c4 12This document describes differences between the 5.29.8 release and the 5.29.9
4026b091
S
13release.
14
0e18d1c4
N
15If you are upgrading from an earlier release such as 5.29.7, first read
16L<perl5298delta>, which describes differences between 5.29.7 and 5.29.8.
e0f0cf8a 17
65c75f8f 18=head1 Notice
0ce66d44 19
0e18d1c4 20XXX Any important notices here
5203d63d 21
65c75f8f 22=head1 Core Enhancements
21d34e95 23
0e18d1c4
N
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.
4234ac96 27
0e18d1c4 28[ List each enhancement as a =head2 entry ]
0c8d0e83 29
7b738cd3
KW
30=head2 Unicode 12.0 is supported
31
32For details, see L<https://www.unicode.org/versions/Unicode12.0.0/>.
33
34Because of a change in Unicode release cycles, Perl jumps from Unicode
3510.0 in Perl 5.28 to Unicode 12.0 in Perl 5.30.
36
44289c0b
KW
37=head2 It is now possible to compile perl to always use thread-safe
38locale operations.
39
40Previously, these calls were only used when the perl was compiled to be
41multi-threaded. To always enable them, add
42
43 -Accflags='-DUSE_THREAD_SAFE_LOCALE'
44
45to your F<Configure> flags.
46
47
0e18d1c4 48=head1 Security
0c8d0e83 49
0e18d1c4
N
50XXX Any security-related notices go here. In particular, any security
51vulnerabilities closed should be noted here rather than in the
52L</Selected Bug Fixes> section.
72b2b1d9 53
0e18d1c4 54[ List each security issue as a =head2 entry ]
72b2b1d9 55
65c75f8f 56=head1 Incompatible Changes
1ab3a811 57
0e18d1c4 58XXX For a release on a stable branch, this section aspires to be:
7b97bf55 59
0e18d1c4
N
60 There are no changes intentionally incompatible with 5.XXX.XXX
61 If any exist, they are bugs, and we request that you submit a
62 report. See L</Reporting Bugs> below.
3e52c030 63
0e18d1c4 64[ List each incompatible change as a =head2 entry ]
65c75f8f 65
b5e20476
KW
66=head2 C<pack()> no longer can return malformed UTF-8
67
68It croaks if it would otherwise return a UTF-8 string that contains
69malformed UTF-8. This protects agains potential security threats. This
70is considered a bug fix as well ([perl #131642]).
71
0e18d1c4 72=head1 Deprecations
3e52c030 73
0e18d1c4 74XXX Any deprecated features, syntax, modules etc. should be listed here.
3e52c030 75
0e18d1c4 76=head2 Module removals
3e52c030 77
0e18d1c4 78XXX Remove this section if not applicable.
3e52c030 79
0e18d1c4
N
80The following modules will be removed from the core distribution in a
81future release, and will at that time need to be installed from CPAN.
82Distributions on CPAN which require these modules will need to list them as
83prerequisites.
3e52c030 84
0e18d1c4
N
85The core versions of these modules will now issue C<"deprecated">-category
86warnings to alert you to this fact. To silence these deprecation warnings,
87install the modules in question from CPAN.
3e52c030 88
0e18d1c4
N
89Note that these are (with rare exceptions) fine modules that you are encouraged
90to continue to use. Their disinclusion from core primarily hinges on their
91necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
92not usually on concerns over their design.
3e52c030 93
0e18d1c4 94=over
3e52c030 95
0e18d1c4 96=item XXX
3e52c030 97
0e18d1c4
N
98XXX Note that deprecated modules should be listed here even if they are listed
99as an updated module in the L</Modules and Pragmata> section.
423dbb1d 100
0e18d1c4 101=back
423dbb1d 102
0e18d1c4 103[ List each other deprecation as a =head2 entry ]
ca8b93af 104
0e18d1c4 105=head1 Performance Enhancements
ca8b93af 106
0e18d1c4
N
107XXX Changes which enhance performance without changing behaviour go here.
108There may well be none in a stable release.
7b97bf55 109
0e18d1c4 110[ List each enhancement as an =item entry ]
d9ed9e94 111
0e18d1c4 112=over 4
423dbb1d
N
113
114=item *
115
0e18d1c4 116XXX
423dbb1d 117
0e18d1c4 118=back
423dbb1d 119
0e18d1c4 120=head1 Modules and Pragmata
7b97bf55 121
0e18d1c4
N
122XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
123go here. If Module::CoreList is updated, generate an initial draft of the
124following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
125for important changes should then be added by hand. In an ideal world,
126dual-life modules would have a F<Changes> file that could be cribbed.
7b97bf55 127
0e18d1c4
N
128The list of new and updated modules is modified automatically as part of
129preparing a Perl release, so the only reason to manually add entries here is if
130you're summarising the important changes in the module update. (Also, if the
131manually-added details don't match the automatically-generated ones, the
132release manager will have to investigate the situation carefully.)
7b97bf55 133
0e18d1c4 134[ Within each section, list entries as an =item entry ]
7b97bf55 135
0e18d1c4 136=head2 New Modules and Pragmata
7b97bf55 137
0e18d1c4 138=over 4
65c75f8f 139
d9ed9e94 140=item *
65c75f8f 141
0e18d1c4 142XXX Remove this section if not applicable.
65c75f8f 143
0e18d1c4 144=back
65c75f8f 145
0e18d1c4
N
146=head2 Updated Modules and Pragmata
147
148=over 4
3e52c030
A
149
150=item *
151
ff736663
TC
152L<perl5db.pl> has been upgraded from version 1.54 to 1.55.
153
154Debugging threaded code no longer deadlocks in C<DB::sub> nor
155C<DB::lsub>.
156
157=item *
158
165066ca 159L<PerlIO::encoding> has been upgraded from version 0.26 to 0.27.
423dbb1d 160
165066ca
TC
161Warnings enabled by setting the C<WARN_ON_ERR> flag in
162C<$PerlIO::encoding::fallback> are now only produced if warnings are
163enabled with C<use warnings "utf8";> or setting C<$^W>.
0e18d1c4 164
ff736663
TC
165=item *
166
167L<threads::shared> has been upgraded from version 1.59 to 1.60.
168
169Added support for extra tracing of locking, this requires a
170C<-DDEBUGGING> and extra compilation flags.
171
0e18d1c4 172=back
423dbb1d 173
0e18d1c4
N
174=head2 Removed Modules and Pragmata
175
176=over 4
d9ed9e94
N
177
178=item *
179
0e18d1c4 180XXX
3e52c030 181
4234ac96
AC
182=back
183
15f62f05 184=head1 Documentation
4234ac96 185
0e18d1c4
N
186XXX Changes to files in F<pod/> go here. Consider grouping entries by
187file and be sure to link to the appropriate page, e.g. L<perlfunc>.
188
189=head2 New Documentation
190
191XXX Changes which create B<new> files in F<pod/> go here.
192
193=head3 L<XXX>
194
195XXX Description of the purpose of the new file here
196
15f62f05 197=head2 Changes to Existing Documentation
4234ac96 198
15f62f05
KE
199We have attempted to update the documentation to reflect the changes
200listed in this document. If you find any we have missed, send email
201to L<perlbug@perl.org|mailto:perlbug@perl.org>.
4234ac96 202
0e18d1c4
N
203XXX Changes which significantly change existing files in F<pod/> go here.
204However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
205section.
206
15f62f05
KE
207Additionally, the following selected changes have been made:
208
0e18d1c4 209=head3 L<XXX>
0ce66d44
A
210
211=over 4
212
0deccbc4
A
213=item *
214
0e18d1c4 215XXX Description of the change here
0deccbc4
A
216
217=back
0ce66d44 218
0e18d1c4
N
219=head1 Diagnostics
220
221The following additions or changes have been made to diagnostic output,
222including warnings and fatal error messages. For the complete list of
223diagnostic messages, see L<perldiag>.
224
225XXX New or changed warnings emitted by the core's C<C> code go here. Also
226include any changes in L<perldiag> that reconcile it to the C<C> code.
227
228=head2 New Diagnostics
229
230XXX Newly added diagnostic messages go under here, separated into New Errors
231and New Warnings
232
233=head3 New Errors
65c75f8f
A
234
235=over 4
236
237=item *
238
0e18d1c4 239XXX L<message|perldiag/"message">
65c75f8f
A
240
241=back
242
0e18d1c4 243=head3 New Warnings
65c75f8f
A
244
245=over 4
246
247=item *
248
0e18d1c4 249XXX L<message|perldiag/"message">
65c75f8f
A
250
251=back
252
9e8e4a84 253=head2 Changes to Existing Diagnostics
65c75f8f 254
0e18d1c4
N
255XXX Changes (i.e. rewording) of diagnostic messages go here
256
4380f76d
KE
257=over 4
258
259=item *
260
0e18d1c4 261XXX Describe change here
65c75f8f
A
262
263=back
264
0e18d1c4
N
265=head1 Utility Changes
266
267XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
268Most of these are built within the directory F<utils>.
269
270[ List utility changes as a =head2 entry for each utility and =item
271entries for each change
272Use L<XXX> with program names to get proper documentation linking. ]
273
274=head2 L<XXX>
65c75f8f
A
275
276=over 4
277
278=item *
279
0e18d1c4 280XXX
65c75f8f 281
0e18d1c4 282=back
65c75f8f 283
0e18d1c4 284=head1 Configuration and Compilation
0ce66d44 285
0e18d1c4
N
286XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
287go here. Any other changes to the Perl build process should be listed here.
288However, any platform-specific changes should be listed in the
289L</Platform Support> section, instead.
4234ac96 290
0e18d1c4
N
291[ List changes as an =item entry ].
292
293=over 4
4234ac96 294
423dbb1d 295=item *
65c75f8f 296
0e18d1c4 297XXX
65c75f8f 298
423dbb1d 299=back
65c75f8f 300
423dbb1d 301=head1 Testing
65c75f8f 302
0e18d1c4
N
303XXX Any significant changes to the testing of a freshly built perl should be
304listed here. Changes which create B<new> files in F<t/> go here as do any
305large changes to the testing harness (e.g. when parallel testing was added).
306Changes to existing files in F<t/> aren't worth summarizing, although the bugs
307that they represent may be covered elsewhere.
308
309XXX If there were no significant test changes, say this:
310
311Tests were added and changed to reflect the other additions and changes
312in this release.
313
314XXX If instead there were significant changes, say this:
315
4380f76d
KE
316Tests were added and changed to reflect the other additions and
317changes in this release. Furthermore, these significant changes were
318made:
319
0e18d1c4
N
320[ List each test improvement as an =item entry ]
321
4380f76d
KE
322=over 4
323
324=item *
325
0e18d1c4 326XXX
9e8e4a84 327
0e18d1c4 328=back
9e8e4a84 329
0e18d1c4 330=head1 Platform Support
9e8e4a84 331
0e18d1c4 332XXX Any changes to platform support should be listed in the sections below.
9e8e4a84 333
0e18d1c4
N
334[ Within the sections, list each platform as an =item entry with specific
335changes as paragraphs below it. ]
65c75f8f 336
0e18d1c4 337=head2 New Platforms
65c75f8f 338
0e18d1c4
N
339XXX List any platforms that this version of perl compiles on, that previous
340versions did not. These will either be enabled by new files in the F<hints/>
341directories, or new subdirectories and F<README> files at the top level of the
342source tree.
65c75f8f 343
65c75f8f
A
344=over 4
345
0e18d1c4 346=item XXX-some-platform
65c75f8f 347
0e18d1c4 348XXX
65c75f8f
A
349
350=back
351
0e18d1c4
N
352=head2 Discontinued Platforms
353
354XXX List any platforms that this version of perl no longer compiles on.
65c75f8f 355
65c75f8f 356=over 4
4380f76d 357
0e18d1c4 358=item XXX-some-platform
ea89b333 359
0e18d1c4 360XXX
20ccb10a 361
e0f0cf8a 362=back
20ccb10a 363
0e18d1c4 364=head2 Platform-Specific Notes
0ce66d44 365
0e18d1c4
N
366XXX List any changes for specific platforms. This could include configuration
367and compilation changes or changes in portability/compatibility. However,
368changes within modules for platforms should generally be listed in the
369L</Modules and Pragmata> section.
b20a43d7 370
0e18d1c4 371=over 4
0ce66d44 372
0e18d1c4 373=item XXX-some-platform
65c75f8f 374
0e18d1c4 375XXX
0ce66d44 376
0e18d1c4 377=back
ff2d4c11 378
0e18d1c4 379=head1 Internal Changes
0ce66d44 380
0e18d1c4
N
381XXX Changes which affect the interface available to C<XS> code go here. Other
382significant internal changes for future core maintainers should be noted as
383well.
990f9aa0 384
0e18d1c4 385[ List each change as an =item entry ]
65c75f8f 386
0e18d1c4 387=over 4
990f9aa0 388
73b95840
KW
389=item *
390
2debb4dc
TC
391Added C<newSVsv_nomg()> to copy a SV without processing get magic on
392the source. [perl #132964]
73b95840 393
0e18d1c4 394=back
73b95840 395
0e18d1c4 396=head1 Selected Bug Fixes
73b95840 397
0e18d1c4
N
398XXX Important bug fixes in the core language are summarized here. Bug fixes in
399files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
73b95840 400
0e18d1c4 401[ List each fix as an =item entry ]
73b95840 402
0e18d1c4 403=over 4
73b95840 404
0e18d1c4 405=item *
73b95840 406
b5e20476
KW
407C<pack()> no longer can return malformed UTF-8. It croaks if it would
408otherwise return a UTF-8 string that contains malformed UTF-8. This
409protects agains potential security threats. [perl #131642]
73b95840 410
0e18d1c4 411=back
73b95840 412
0e18d1c4 413=head1 Known Problems
73b95840 414
0e18d1c4
N
415XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
416tests that had to be C<TODO>ed for the release would be noted here. Unfixed
417platform specific bugs also go here.
73b95840 418
0e18d1c4 419[ List each fix as an =item entry ]
73b95840 420
0e18d1c4 421=over 4
73b95840 422
0e18d1c4 423=item *
73b95840 424
0e18d1c4 425XXX
73b95840
KW
426
427=back
428
0e18d1c4 429=head1 Errata From Previous Releases
75451d8c 430
0e18d1c4 431=over 4
75451d8c 432
0e18d1c4 433=item *
98265db1 434
0e18d1c4
N
435XXX Add anything here that we forgot to add, or were mistaken about, in
436the perldelta of a previous release.
98265db1 437
65c75f8f 438=back
1c0558a0 439
0e18d1c4 440=head1 Obituary
423dbb1d 441
0e18d1c4
N
442XXX If any significant core contributor or member of the CPAN community has
443died, add a short obituary here.
423dbb1d 444
0e18d1c4 445=head1 Acknowledgements
423dbb1d 446
0e18d1c4 447XXX Generate this with:
1c0558a0 448
0e18d1c4 449 perl Porting/acknowledgements.pl v5.29.8..HEAD
f5b73711 450
44691e6f
AB
451=head1 Reporting Bugs
452
373fec1e 453If you find what you think is a bug, you might check the perl bug database
15f62f05
KE
454at L<https://rt.perl.org/>. There may also be information at
455L<http://www.perl.org/>, the Perl Home Page.
44691e6f 456
e08634c5
SH
457If you believe you have an unreported bug, please run the L<perlbug> program
458included with your release. Be sure to trim your bug down to a tiny but
459sufficient test case. Your bug report, along with the output of C<perl -V>,
0e18d1c4 460will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f 461
87c118b9
DM
462If the bug you are reporting has security implications which make it
463inappropriate to send to a publicly archived mailing list, then see
373fec1e
SH
464L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
465for details of how to report the issue.
44691e6f 466
390ae6f9
S
467=head1 Give Thanks
468
373fec1e
SH
469If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
470you can do so by running the C<perlthanks> program:
390ae6f9
S
471
472 perlthanks
473
474This will send an email to the Perl 5 Porters list with your show of thanks.
475
44691e6f
AB
476=head1 SEE ALSO
477
e08634c5
SH
478The F<Changes> file for an explanation of how to view exhaustive details on
479what changed.
44691e6f
AB
480
481The F<INSTALL> file for how to build Perl.
482
483The F<README> file for general stuff.
484
485The F<Artistic> and F<Copying> files for copyright information.
486
487=cut