This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
davem's perldelta entries for 5.25.10
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
6bd220c2
A
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.25.10
eabfc7bc 9
2cfe9b50 10=head1 DESCRIPTION
eabfc7bc 11
6bd220c2 12This document describes differences between the 5.25.9 release and the 5.25.10
4b8803f0 13release.
f3ed8cbf 14
6bd220c2
A
15If you are upgrading from an earlier release such as 5.25.8, first read
16L<perl5259delta>, which describes differences between 5.25.8 and 5.25.9.
f4b40f11 17
6bd220c2 18=head1 Notice
ec34c8a4 19
6bd220c2 20XXX Any important notices here
ec34c8a4 21
6bd220c2 22=head1 Core Enhancements
f4b40f11 23
6bd220c2
A
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.
ec34c8a4 27
6bd220c2 28[ List each enhancement as a =head2 entry ]
ec34c8a4 29
6bd220c2 30=head1 Security
ec34c8a4 31
6bd220c2
A
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.
ec34c8a4 35
6bd220c2 36[ List each security issue as a =head2 entry ]
f4b40f11 37
6bd220c2 38=head1 Incompatible Changes
ec34c8a4 39
6bd220c2 40XXX For a release on a stable branch, this section aspires to be:
ec34c8a4 41
6bd220c2
A
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.
f4b40f11 45
6bd220c2 46[ List each incompatible change as a =head2 entry ]
ec34c8a4 47
6bd220c2 48=head1 Deprecations
5e50eae4 49
6bd220c2 50XXX Any deprecated features, syntax, modules etc. should be listed here.
f4b40f11 51
6bd220c2 52=head2 Module removals
f4b40f11 53
6bd220c2 54XXX Remove this section if inapplicable.
f4b40f11 55
6bd220c2
A
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.
f4b40f11 60
6bd220c2
A
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.
5e50eae4 64
6bd220c2
A
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.
ec34c8a4 69
6bd220c2 70=over
f4b40f11 71
6bd220c2 72=item XXX
ec34c8a4 73
6bd220c2
A
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.
ec34c8a4 76
6bd220c2 77=back
f4b40f11 78
6bd220c2 79[ List each other deprecation as a =head2 entry ]
ec34c8a4 80
6bd220c2 81=head1 Performance Enhancements
d4151a23 82
6bd220c2
A
83XXX Changes which enhance performance without changing behaviour go here.
84There may well be none in a stable release.
ec34c8a4 85
6bd220c2 86[ List each enhancement as a =item entry ]
ec34c8a4 87
6bd220c2 88=over 4
f4b40f11
A
89
90=item *
91
6bd220c2 92XXX
ec34c8a4 93
6bd220c2 94=back
ec34c8a4 95
6bd220c2 96=head1 Modules and Pragmata
f4b40f11 97
6bd220c2
A
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.
f4b40f11 103
6bd220c2 104[ Within each section, list entries as a =item entry ]
f4b40f11 105
6bd220c2 106=head2 New Modules and Pragmata
f4b40f11 107
6bd220c2 108=over 4
f4b40f11
A
109
110=item *
111
6bd220c2 112XXX
f4b40f11 113
6bd220c2 114=back
ec34c8a4 115
6bd220c2 116=head2 Updated Modules and Pragmata
f4b40f11 117
6bd220c2 118=over 4
ec34c8a4
JK
119
120=item *
121
6bd220c2 122L<XXX> has been upgraded from version A.xx to B.yy.
ec34c8a4 123
6bd220c2 124=back
ec34c8a4 125
6bd220c2 126=head2 Removed Modules and Pragmata
ec34c8a4 127
6bd220c2 128=over 4
f4b40f11 129
ec34c8a4
JK
130=item *
131
6bd220c2 132XXX
ec34c8a4 133
6bd220c2 134=back
f4b40f11 135
6bd220c2 136=head1 Documentation
ec34c8a4 137
6bd220c2
A
138XXX Changes to files in F<pod/> go here. Consider grouping entries by
139file and be sure to link to the appropriate page, e.g. L<perlfunc>.
f4b40f11 140
6bd220c2 141=head2 New Documentation
5e50eae4 142
6bd220c2 143XXX Changes which create B<new> files in F<pod/> go here.
5e50eae4 144
6bd220c2 145=head3 L<XXX>
f4b40f11 146
6bd220c2 147XXX Description of the purpose of the new file here
58e76350 148
6bd220c2 149=head2 Changes to Existing Documentation
58e76350 150
6bd220c2
A
151XXX Changes which significantly change existing files in F<pod/> go here.
152However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
153section.
ec34c8a4 154
6bd220c2 155=head3 L<XXX>
f4b40f11 156
6bd220c2 157=over 4
ec34c8a4 158
e770df11
JK
159=item *
160
6bd220c2 161XXX Description of the change here
8bbdbfcb 162
3ce6a296 163=back
8bbdbfcb 164
3ce6a296 165=head1 Diagnostics
8bbdbfcb 166
3ce6a296
S
167The following additions or changes have been made to diagnostic output,
168including warnings and fatal error messages. For the complete list of
169diagnostic messages, see L<perldiag>.
170
6bd220c2
A
171XXX New or changed warnings emitted by the core's C<C> code go here. Also
172include any changes in L<perldiag> that reconcile it to the C<C> code.
173
3ce6a296
S
174=head2 New Diagnostics
175
6bd220c2
A
176XXX Newly added diagnostic messages go under here, separated into New Errors
177and New Warnings
178
179=head3 New Errors
3ce6a296
S
180
181=over 4
8bbdbfcb
CG
182
183=item *
184
6bd220c2 185XXX L<message|perldiag/"message">
3ce6a296
S
186
187=back
188
6bd220c2 189=head3 New Warnings
3ce6a296
S
190
191=over 4
bd5630ab 192
107db227 193=item *
2c4879e2 194
6bd220c2 195XXX L<message|perldiag/"message">
7ca0bfc4 196
6bd220c2 197=back
7ca0bfc4 198
6bd220c2 199=head2 Changes to Existing Diagnostics
7ca0bfc4 200
6bd220c2 201XXX Changes (i.e. rewording) of diagnostic messages go here
7ca0bfc4 202
6bd220c2 203=over 4
7ca0bfc4
A
204
205=item *
206
7cb258c1
A
207Use of unassigned code point or non-standalone grapheme for a delimiter will be a fatal error starting in Perl 5.30
208
209This was changed to drop a leading C<v> in C<v5.30>, so it uses the same
210style as other deprecation messages.
7ca0bfc4 211
6bd220c2 212=back
7ca0bfc4 213
6bd220c2 214=head1 Utility Changes
7ca0bfc4 215
6bd220c2
A
216XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
217Most of these are built within the directory F<utils>.
7ca0bfc4 218
6bd220c2
A
219[ List utility changes as a =head2 entry for each utility and =item
220entries for each change
221Use L<XXX> with program names to get proper documentation linking. ]
7ca0bfc4 222
6bd220c2 223=head2 L<XXX>
7ca0bfc4 224
6bd220c2 225=over 4
7ca0bfc4
A
226
227=item *
228
6bd220c2 229XXX
7ca0bfc4 230
6bd220c2 231=back
7ca0bfc4 232
6bd220c2 233=head1 Configuration and Compilation
7ca0bfc4 234
6bd220c2
A
235XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
236go here. Any other changes to the Perl build process should be listed here.
237However, any platform-specific changes should be listed in the
238L</Platform Support> section, instead.
7ca0bfc4 239
6bd220c2 240[ List changes as a =item entry ].
7ca0bfc4 241
6bd220c2 242=over 4
7ca0bfc4
A
243
244=item *
245
6bd220c2 246XXX
7ca0bfc4 247
6bd220c2 248=back
7ca0bfc4 249
6bd220c2 250=head1 Testing
7ca0bfc4 251
6bd220c2
A
252XXX Any significant changes to the testing of a freshly built perl should be
253listed here. Changes which create B<new> files in F<t/> go here as do any
254large changes to the testing harness (e.g. when parallel testing was added).
255Changes to existing files in F<t/> aren't worth summarizing, although the bugs
256that they represent may be covered elsewhere.
7ca0bfc4 257
6bd220c2 258[ List each test improvement as a =item entry ]
7ca0bfc4 259
6bd220c2 260=over 4
7ca0bfc4
A
261
262=item *
263
6bd220c2 264XXX
3ce6a296
S
265
266=back
267
6bd220c2 268=head1 Platform Support
3ce6a296 269
6bd220c2 270XXX Any changes to platform support should be listed in the sections below.
5e50eae4 271
6bd220c2
A
272[ Within the sections, list each platform as a =item entry with specific
273changes as paragraphs below it. ]
3ce6a296 274
6bd220c2 275=head2 New Platforms
5e50eae4 276
6bd220c2
A
277XXX List any platforms that this version of perl compiles on, that previous
278versions did not. These will either be enabled by new files in the F<hints/>
279directories, or new subdirectories and F<README> files at the top level of the
280source tree.
3ce6a296
S
281
282=over 4
a09f502b 283
6bd220c2 284=item XXX-some-platform
8bbdbfcb 285
6bd220c2 286XXX
3ce6a296
S
287
288=back
289
6bd220c2 290=head2 Discontinued Platforms
3ce6a296 291
6bd220c2 292XXX List any platforms that this version of perl no longer compiles on.
3ce6a296
S
293
294=over 4
8bbdbfcb 295
6bd220c2 296=item XXX-some-platform
1e671560 297
6bd220c2 298XXX
1e671560
TC
299
300=back
301
6bd220c2 302=head2 Platform-Specific Notes
3ce6a296 303
6bd220c2
A
304XXX List any changes for specific platforms. This could include configuration
305and compilation changes or changes in portability/compatibility. However,
306changes within modules for platforms should generally be listed in the
307L</Modules and Pragmata> section.
8f7edc68 308
6bd220c2 309=over 4
8f7edc68 310
6bd220c2 311=item XXX-some-platform
8f7edc68 312
6bd220c2 313XXX
8f7edc68 314
3ce6a296
S
315=back
316
3ce6a296
S
317=head1 Internal Changes
318
6bd220c2
A
319XXX Changes which affect the interface available to C<XS> code go here. Other
320significant internal changes for future core maintainers should be noted as
321well.
d1f8d421 322
6bd220c2 323[ List each change as a =item entry ]
d1f8d421 324
6bd220c2 325=over 4
94953955 326
d60baaa7
KW
327=item *
328
64afbd29
DM
329The C<op_class()> API function has been added. This is like the existing
330C<OP_CLASS()> macro, but can more accurately determine what struct an op
331has been allocated as. For example C<OP_CLASS()> might return
332C<OA_BASEOP_OR_UNOP> indicating that ops of this type are usually
333allocated as an C<OP> or C<UNOP>; while <op_class()> will return
334C<OPclass_BASEOP> or C<OPclass_UNOP> as appropriate.
335
336=item *
337
338The output format of the C<op_dump()> function (as used by C<perl -Dx>)
339has changed: it now displays an "ASCII-art" tree structure, and shows more
340low-level details about each op, such as its address and class.
d60baaa7 341
3ce6a296
S
342=back
343
344=head1 Selected Bug Fixes
345
6bd220c2
A
346XXX Important bug fixes in the core language are summarized here. Bug fixes in
347files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
3ce6a296 348
6bd220c2 349[ List each fix as a =item entry ]
3ce6a296 350
6bd220c2 351=over 4
8bbdbfcb 352
3ce6a296
S
353=item *
354
bab23532
TC
355Attempting to use the deprecated variable C<$#> as the object in an
356indirect object method call could cause a heap use after free or
357buffer overflow. [perl #129274]
5e50eae4 358
1935dcd6
TC
359=item *
360
361When checking for an indirect object method call in some rare cases
362the parser could reallocate the line buffer but then continue to use
363pointers to the old buffer. [perl #129190]
364
faab9793
TC
365=item *
366
367Supplying a glob as the format argument to L<perlfunc/formline> would
368cause an assertion failure. [perl #130722]
369
d264c823
TC
370=item *
371
372Code like C< $value1 =~ qr/.../ ~~ $value2 > would have the match
373converted into a qr// operator, leaving extra elements on the stack to
374confuse any surrounding expression. [perl #130705]
375
b3dc9cf3
DM
376=item *
377
378Since 5.24.0 in some obscure cases, a regex which included code blocks
379from multiple sources (e.g. via embedded via qr// objects) could end up
380with the wrong current pad and crash or give weird results. [perl #129881]
381
382=item *
383
384Occasionally C<local()>s in a code block within a patterns weren't being
385undone when the pattern matching backtracked over the code block.
386[perl #126697]
387
6bd220c2 388=back
5e50eae4 389
6bd220c2 390=head1 Known Problems
262514fd 391
6bd220c2
A
392XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
393tests that had to be C<TODO>ed for the release would be noted here. Unfixed
394platform specific bugs also go here.
5e50eae4 395
6bd220c2 396[ List each fix as a =item entry ]
5e50eae4 397
6bd220c2 398=over 4
5e50eae4
A
399
400=item *
401
6bd220c2 402XXX
5e50eae4 403
6bd220c2 404=back
d34728b9 405
6bd220c2 406=head1 Errata From Previous Releases
d34728b9 407
6bd220c2 408=over 4
d34728b9
A
409
410=item *
411
6bd220c2
A
412XXX Add anything here that we forgot to add, or were mistaken about, in
413the perldelta of a previous release.
d34728b9 414
5e50eae4 415=back
a6a32e96 416
6bd220c2 417=head1 Obituary
262514fd 418
6bd220c2
A
419XXX If any significant core contributor has died, we've added a short obituary
420here.
2e0dcc12 421
6bd220c2 422=head1 Acknowledgements
2e0dcc12 423
6bd220c2 424XXX Generate this with:
2e0dcc12 425
6bd220c2 426 perl Porting/acknowledgements.pl v5.25.5..HEAD
f5b73711 427
44691e6f
AB
428=head1 Reporting Bugs
429
c0ea3294
SH
430If you find what you think is a bug, you might check the perl bug database
431at L<https://rt.perl.org/> . There may also be information at
4b8803f0 432L<http://www.perl.org/> , the Perl Home Page.
44691e6f 433
e08634c5
SH
434If you believe you have an unreported bug, please run the L<perlbug> program
435included with your release. Be sure to trim your bug down to a tiny but
436sufficient test case. Your bug report, along with the output of C<perl -V>,
437will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f 438
87c118b9
DM
439If the bug you are reporting has security implications which make it
440inappropriate to send to a publicly archived mailing list, then see
c0ea3294
SH
441L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
442for details of how to report the issue.
44691e6f
AB
443
444=head1 SEE ALSO
445
e08634c5
SH
446The F<Changes> file for an explanation of how to view exhaustive details on
447what changed.
44691e6f
AB
448
449The F<INSTALL> file for how to build Perl.
450
451The F<README> file for general stuff.
452
453The F<Artistic> and F<Copying> files for copyright information.
454
455=cut