This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Correct a perldelta entry
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
c0ea3294
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.25.4
eabfc7bc 9
2cfe9b50 10=head1 DESCRIPTION
eabfc7bc 11
c0ea3294 12This document describes differences between the 5.25.3 release and the 5.25.4
4b8803f0 13release.
f3ed8cbf 14
c0ea3294
SH
15If you are upgrading from an earlier release such as 5.25.2, first read
16L<perl5253delta>, which describes differences between 5.25.2 and 5.25.3.
2901a589 17
c0ea3294 18=head1 Notice
a49fc7b3 19
c0ea3294 20XXX Any important notices here
68328fa6 21
c0ea3294 22=head1 Core Enhancements
68328fa6 23
c0ea3294
SH
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.
48791bf1 27
c0ea3294 28[ List each enhancement as a =head2 entry ]
3714fdb0 29
c0ea3294 30=head1 Security
3714fdb0 31
c0ea3294
SH
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.
3714fdb0 35
c0ea3294 36[ List each security issue as a =head2 entry ]
3714fdb0 37
efdbe372 38=head1 Incompatible Changes
1656665e 39
c0ea3294 40XXX For a release on a stable branch, this section aspires to be:
8bf4c401 41
c0ea3294
SH
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.
8c3f6b0b 45
c0ea3294 46[ List each incompatible change as a =head2 entry ]
c338e234 47
c0ea3294 48=head1 Deprecations
c338e234 49
c0ea3294 50XXX Any deprecated features, syntax, modules etc. should be listed here.
70f2a509 51
c0ea3294 52=head2 Module removals
70f2a509 53
c0ea3294 54XXX Remove this section if inapplicable.
70f2a509 55
c0ea3294
SH
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.
70f2a509 60
c0ea3294
SH
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.
0302547a 64
c0ea3294
SH
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.
14d57f25 69
c0ea3294 70=over
14d57f25 71
c0ea3294 72=item XXX
14d57f25 73
c0ea3294
SH
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.
14d57f25 76
c0ea3294 77=back
14d57f25 78
c0ea3294 79[ List each other deprecation as a =head2 entry ]
14d57f25 80
c0ea3294 81=head1 Performance Enhancements
70f2a509 82
c0ea3294
SH
83XXX Changes which enhance performance without changing behaviour go here.
84There may well be none in a stable release.
70f2a509 85
c0ea3294 86[ List each enhancement as a =item entry ]
70f2a509 87
c0ea3294 88=over 4
70f2a509
SH
89
90=item *
91
f02074d6
DM
92The rather slow implementation for the experimental subroutine signatures
93feature has been made much faster; it is now comparable in speed with the
94old-style C<my ($a, $b, @c) = @_>.
70f2a509 95
c0ea3294 96=back
70f2a509 97
c0ea3294 98=head1 Modules and Pragmata
70f2a509 99
c0ea3294
SH
100XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
101go here. If Module::CoreList is updated, generate an initial draft of the
102following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
103for important changes should then be added by hand. In an ideal world,
104dual-life modules would have a F<Changes> file that could be cribbed.
70f2a509 105
c0ea3294 106[ Within each section, list entries as a =item entry ]
70f2a509 107
c0ea3294 108=head2 New Modules and Pragmata
70f2a509 109
c0ea3294 110=over 4
70f2a509
SH
111
112=item *
113
c0ea3294 114XXX
70f2a509 115
c0ea3294 116=back
70f2a509 117
c0ea3294 118=head2 Updated Modules and Pragmata
70f2a509 119
c0ea3294 120=over 4
70f2a509
SH
121
122=item *
123
c0ea3294 124L<XXX> has been upgraded from version A.xx to B.yy.
70f2a509 125
4c42c77b
JK
126=item *
127
128L<NEXT> has been upgraded from version 0.65 to 0.67.
129
c0ea3294 130=back
70f2a509 131
c0ea3294 132=head2 Removed Modules and Pragmata
70f2a509 133
c0ea3294 134=over 4
70f2a509
SH
135
136=item *
137
c0ea3294 138XXX
70f2a509 139
c0ea3294 140=back
70f2a509 141
c0ea3294 142=head1 Documentation
70f2a509 143
c0ea3294
SH
144XXX Changes to files in F<pod/> go here. Consider grouping entries by
145file and be sure to link to the appropriate page, e.g. L<perlfunc>.
70f2a509 146
c0ea3294 147=head2 New Documentation
70f2a509 148
c0ea3294 149XXX Changes which create B<new> files in F<pod/> go here.
70f2a509 150
c0ea3294 151=head3 L<XXX>
70f2a509 152
c0ea3294 153XXX Description of the purpose of the new file here
8c3f6b0b 154
228bfab9 155=head2 Changes to Existing Documentation
8c3f6b0b 156
c0ea3294
SH
157XXX Changes which significantly change existing files in F<pod/> go here.
158However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
159section.
160
161=head3 L<XXX>
8c3f6b0b 162
228bfab9 163=over 4
8c3f6b0b
MH
164
165=item *
166
c0ea3294 167XXX Description of the change here
ce6646d7
SH
168
169=back
170
c0ea3294 171=head1 Diagnostics
ce6646d7 172
c0ea3294
SH
173The following additions or changes have been made to diagnostic output,
174including warnings and fatal error messages. For the complete list of
175diagnostic messages, see L<perldiag>.
ce6646d7 176
c0ea3294
SH
177XXX New or changed warnings emitted by the core's C<C> code go here. Also
178include any changes in L<perldiag> that reconcile it to the C<C> code.
ce6646d7 179
c0ea3294 180=head2 New Diagnostics
ce6646d7 181
c0ea3294
SH
182XXX Newly added diagnostic messages go under here, separated into New Errors
183and New Warnings
ce6646d7 184
c0ea3294 185=head3 New Errors
ce6646d7
SH
186
187=over 4
188
189=item *
190
c0ea3294 191XXX L<message|perldiag/"message">
ce6646d7
SH
192
193=back
194
c0ea3294 195=head3 New Warnings
ce6646d7
SH
196
197=over 4
198
199=item *
200
c0ea3294 201XXX L<message|perldiag/"message">
ce6646d7
SH
202
203=back
204
c0ea3294
SH
205=head2 Changes to Existing Diagnostics
206
207XXX Changes (i.e. rewording) of diagnostic messages go here
ce6646d7
SH
208
209=over 4
210
211=item *
212
c0ea3294 213XXX Describe change here
8c3f6b0b 214
228bfab9 215=back
8c3f6b0b 216
c0ea3294 217=head1 Utility Changes
8c3f6b0b 218
c0ea3294
SH
219XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
220Most of these are built within the directory F<utils>.
8c3f6b0b 221
c0ea3294
SH
222[ List utility changes as a =head2 entry for each utility and =item
223entries for each change
224Use L<XXX> with program names to get proper documentation linking. ]
0302547a 225
c0ea3294 226=head2 L<XXX>
e388eafa
LM
227
228=over 4
229
230=item *
231
c0ea3294 232XXX
fb0f05f2 233
c0ea3294 234=back
fb0f05f2 235
c0ea3294 236=head1 Configuration and Compilation
e388eafa 237
c0ea3294
SH
238XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
239go here. Any other changes to the Perl build process should be listed here.
240However, any platform-specific changes should be listed in the
241L</Platform Support> section, instead.
e388eafa 242
c0ea3294 243[ List changes as a =item entry ].
e388eafa
LM
244
245=over 4
246
247=item *
248
c0ea3294 249XXX
fb0f05f2 250
c0ea3294 251=back
fb0f05f2 252
c0ea3294 253=head1 Testing
e388eafa 254
c0ea3294
SH
255XXX Any significant changes to the testing of a freshly built perl should be
256listed here. Changes which create B<new> files in F<t/> go here as do any
257large changes to the testing harness (e.g. when parallel testing was added).
258Changes to existing files in F<t/> aren't worth summarizing, although the bugs
259that they represent may be covered elsewhere.
e388eafa 260
c0ea3294 261[ List each test improvement as a =item entry ]
e388eafa 262
e388eafa
LM
263=over 4
264
265=item *
266
c0ea3294 267XXX
6674eaad 268
c0ea3294 269=back
6674eaad 270
c0ea3294 271=head1 Platform Support
6674eaad 272
c0ea3294 273XXX Any changes to platform support should be listed in the sections below.
6674eaad 274
c0ea3294
SH
275[ Within the sections, list each platform as a =item entry with specific
276changes as paragraphs below it. ]
e388eafa 277
c0ea3294 278=head2 New Platforms
b20d3b89 279
c0ea3294
SH
280XXX List any platforms that this version of perl compiles on, that previous
281versions did not. These will either be enabled by new files in the F<hints/>
282directories, or new subdirectories and F<README> files at the top level of the
283source tree.
0302547a 284
efdbe372 285=over 4
0302547a 286
c0ea3294 287=item XXX-some-platform
216c09bb 288
c0ea3294 289XXX
8165798c 290
228bfab9 291=back
8165798c 292
c0ea3294 293=head2 Discontinued Platforms
8165798c 294
c0ea3294 295XXX List any platforms that this version of perl no longer compiles on.
228bfab9 296
efdbe372 297=over 4
bf1007bc 298
c0ea3294 299=item XXX-some-platform
bf1007bc 300
c0ea3294 301XXX
0302547a 302
228bfab9 303=back
18940b1f 304
c0ea3294 305=head2 Platform-Specific Notes
228bfab9 306
c0ea3294
SH
307XXX List any changes for specific platforms. This could include configuration
308and compilation changes or changes in portability/compatibility. However,
309changes within modules for platforms should generally be listed in the
310L</Modules and Pragmata> section.
4de751aa 311
c0ea3294 312=over 4
4de751aa 313
c0ea3294 314=item XXX-some-platform
4de751aa 315
c0ea3294 316XXX
e34ec132 317
c0ea3294 318=back
e34ec132 319
c0ea3294 320=head1 Internal Changes
b05a99b8 321
c0ea3294
SH
322XXX Changes which affect the interface available to C<XS> code go here. Other
323significant internal changes for future core maintainers should be noted as
324well.
b05a99b8 325
c0ea3294 326[ List each change as a =item entry ]
de4e24a8 327
c0ea3294 328=over 4
de4e24a8 329
44bcb177
FC
330=item *
331
f02074d6
DM
332Three new ops, C<OP_ARGELEM>, C<OP_ARGDEFELEM> and C<OP_ARGCHECK> have
333been added. These are intended principally to implement the individual
334elements of a subroutine signature, plus any overall checking required.
44bcb177 335
c0ea3294 336=back
6674eaad 337
c0ea3294 338=head1 Selected Bug Fixes
6674eaad 339
c0ea3294
SH
340XXX Important bug fixes in the core language are summarized here. Bug fixes in
341files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
342
343[ List each fix as a =item entry ]
6674eaad 344
c0ea3294 345=over 4
6674eaad
SH
346
347=item *
348
7f8ad91f
DM
349Problems with in-place array sorts: code like C<@a = sort { ... } @a>,
350where the source and destination of the sort are the same plain array, are
351optimised to do less copying around. Two side-effects of this optimisation
352were that the contents of C<@a> as visible to to sort routine were
353partially sorted, and under some circumstances accessing C<@a> during the
354sort could crash the interpreter. Both these issues have been fixed, and
355Sort functions see the original value of C<@a>.
c0ea3294 356
866373cb
FC
357=item *
358
359Non-ASCII string delimiters are now reported correctly in error messages
360for unterminated strings. [perl #128701]
361
97fd6880
FC
362=item *
363
364C<pack("p", ...)> used to emit its warning ("Attempt to pack pointer to
365temporary value") erroneously in some cases, but has been fixed.
366
d5dece5d
FC
367=item *
368
369C<@DB::args> is now exempt from "used once" warnings. The warnings only
370occurred under B<-w>, because F<warnings.pm> itself uses C<@DB::args>
371multiple times.
372
7c26c031
FC
373=item *
374
375The use of built-in arrays or hash slices in a double-quoted string no
376longer issues a warning ("Possible unintended interpolation...") if the
377variable has not been mentioned before. This affected code like
378C<qq|@DB::args|> and C<qq|@SIG{'CHLD', 'HUP'}|>. (The special variables
379C<@-> and C<@+> were already exempt from the warning.)
380
07cfdfcc
FC
381=item *
382
383C<gethostent> and similar functions now perform a null check internally, to
384avoid crashing with torsocks. This was a regression from 5.22. [perl
385#128740]
386
27368b5c
FC
387=item *
388
389C<defined *{'!'}>, C<defined *{'['}>, and C<defined *{'-'}> no longer leak
390memory if the typeglob in question has never been accessed before.
391
4b99cb86
JH
392=item *
393
394In 5.25.4 fchown() was changed not to accept negative one as an argument
395because in some platforms that is an error. However, in some other platforms
396that is an acceptable argument. This change has been reverted [perl #128967].
397
c61c589c
FC
398=item *
399
400Mentioning the same constant twice in a row (which is a syntax error) no
401longer fails an assertion under debugging builds. This was a regression
402from 5.20. [perl #126482]
403
7d897bd0
JH
404=item *
405
406Many issues relating to C<printf "%a"> of hexadecimal floating point
407were fixed. In addition, the "subnormals" (formerly known as "denormals")
408floating point anumbers are now supported both with the plain IEEE 754
409floating point numbers (64-bit or 128-bit) and the x86 80-bit
410"extended precision". Note that subnormal hexadecimal floating
411point literals will give a warning about "exponent underflow".
412[perl #128843, #128889, #128890, #128893, #128909, #128919]
413
4690a2e0
KW
414=item *
415
416A regression in 5.24 with C<tr/\N{U+...}/foo/> when the code point was between
417128 and 255 has been fixed. [perl #128734].
418
419=item *
420
421A regression from the previous development release, 5.23.3, where
422compiling a regular expression could crash the interpreter has been
423fixed. [perl #128686].
424
425=item *
426
24c34555
FC
427Use of a string delimiter whose code point is above 2**31 now works
428correctly on platforms that allow this. Previously, certain characters,
429due to truncation, would be confused with other delimiter characters
430with special meaning (such as C<?> in C<m?...?>), resulting
431in inconsistent behaviour. Note that this is non-portable,
4690a2e0
KW
432and is based on Perl's extension to UTF-8, and is probably not
433displayable nor enterable by any editor. [perl #128738]
434
c0ea3294 435=back
6674eaad 436
c0ea3294 437=head1 Known Problems
6674eaad 438
c0ea3294
SH
439XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
440tests that had to be C<TODO>ed for the release would be noted here. Unfixed
441platform specific bugs also go here.
6674eaad 442
c0ea3294 443[ List each fix as a =item entry ]
6674eaad 444
c0ea3294 445=over 4
6674eaad
SH
446
447=item *
448
c0ea3294 449XXX
6674eaad 450
0302547a
RS
451=back
452
228bfab9 453=head1 Errata From Previous Releases
29002dbe 454
228bfab9 455=over 4
29002dbe 456
d0971191
FC
457=item *
458
c0ea3294
SH
459XXX Add anything here that we forgot to add, or were mistaken about, in
460the perldelta of a previous release.
6c50b67b 461
0302547a
RS
462=back
463
c0ea3294 464=head1 Obituary
24528e8e 465
c0ea3294
SH
466XXX If any significant core contributor has died, we've added a short obituary
467here.
24528e8e 468
c0ea3294 469=head1 Acknowledgements
24528e8e 470
c0ea3294 471XXX Generate this with:
24528e8e 472
c0ea3294 473 perl Porting/acknowledgements.pl v5.25.3..HEAD
f5b73711 474
44691e6f
AB
475=head1 Reporting Bugs
476
c0ea3294
SH
477If you find what you think is a bug, you might check the perl bug database
478at L<https://rt.perl.org/> . There may also be information at
4b8803f0 479L<http://www.perl.org/> , the Perl Home Page.
44691e6f 480
e08634c5
SH
481If you believe you have an unreported bug, please run the L<perlbug> program
482included with your release. Be sure to trim your bug down to a tiny but
483sufficient test case. Your bug report, along with the output of C<perl -V>,
484will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f 485
87c118b9
DM
486If the bug you are reporting has security implications which make it
487inappropriate to send to a publicly archived mailing list, then see
c0ea3294
SH
488L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
489for details of how to report the issue.
44691e6f
AB
490
491=head1 SEE ALSO
492
e08634c5
SH
493The F<Changes> file for an explanation of how to view exhaustive details on
494what changed.
44691e6f
AB
495
496The F<INSTALL> file for how to build Perl.
497
498The F<README> file for general stuff.
499
500The F<Artistic> and F<Copying> files for copyright information.
501
502=cut