This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for the 79881ad71252 merge
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
efdbe372
S
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.2
eabfc7bc 9
2cfe9b50 10=head1 DESCRIPTION
eabfc7bc 11
efdbe372 12This document describes differences between the 5.25.1 release and the 5.25.2
4b8803f0 13release.
f3ed8cbf 14
efdbe372
S
15If you are upgrading from an earlier release such as 5.25.0, first read
16L<perl5251delta>, which describes differences between 5.25.0 and 5.25.1.
17
18=head1 Notice
19
20XXX Any important notices here
eabfc7bc 21
0302547a
RS
22=head1 Core Enhancements
23
efdbe372
S
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.
fef6692e 27
efdbe372 28[ List each enhancement as a =head2 entry ]
fef6692e 29
a4a439fb
KW
30=head2 Perl can now do default collation in UTF-8 locales on platforms
31that support it
32
33Some platforms natively do a reasonable job of collating and sorting in
34UTF-8 locales. Perl now works with those. For portability and full
35control, L<Unicode::Collate> is still recommended, but now you may
36not need to do anything special to get good-enough results, depending on
37your application. See
38L<perllocale/Category C<LC_COLLATE>: Collation: Text Comparisons and Sorting>
39
6696cfa7
KW
40=head2 Better locale collation of strings containing embedded C<NUL>
41characters
42
43In locales that have multi-level character weights, these are now
44ignored at the higher priority ones. There are still some gotchas in
45some strings, though. See
46L<perllocale/Collation of strings containing embedded C<NUL> characters>.
47
efdbe372 48=head1 Security
bf1007bc 49
efdbe372
S
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.
bf1007bc 53
efdbe372 54[ List each security issue as a =head2 entry ]
1656665e 55
1ba11575
TC
56=head2 C<-Di> switch is now required for PerlIO debugging output
57
58Previously PerlIO debugging output would be sent to the file specified
59by the C<PERLIO_DEBUG> environment variable if perl wasn't running
60setuid and the C<-T> or C<-t> switches hadn't been parsed yet.
61
62If perl performed output at a point where it hadn't yet parsed its
63switches this could result in perl creating or overwriting the file
64named by C<PERLIO_DEBUG> even when the C<-T> switch had been supplied.
65
66Perl now requires the C<-Di> switch to produce PerlIO debugging
67output. By default this is written to C<stderr>, but can optionally
68be redirected to a file by setting the C<PERLIO_DEBUG> environment
69variable.
70
71If perl is running setuid or the C<-T> switch has supplied
72C<PERLIO_DEBUG> is ignored and the debugging output is sent to
73C<stderr> as for any other C<-D> switch.
74
efdbe372 75=head1 Incompatible Changes
1656665e 76
efdbe372 77XXX For a release on a stable branch, this section aspires to be:
1656665e 78
efdbe372
S
79 There are no changes intentionally incompatible with 5.XXX.XXX
80 If any exist, they are bugs, and we request that you submit a
81 report. See L</Reporting Bugs> below.
acab2422 82
efdbe372 83[ List each incompatible change as a =head2 entry ]
0302547a 84
efdbe372 85=head1 Deprecations
60108b47 86
efdbe372 87XXX Any deprecated features, syntax, modules etc. should be listed here.
60108b47 88
efdbe372 89=head2 Module removals
0302547a 90
efdbe372 91XXX Remove this section if inapplicable.
0302547a 92
efdbe372
S
93The following modules will be removed from the core distribution in a
94future release, and will at that time need to be installed from CPAN.
95Distributions on CPAN which require these modules will need to list them as
96prerequisites.
0302547a 97
efdbe372
S
98The core versions of these modules will now issue C<"deprecated">-category
99warnings to alert you to this fact. To silence these deprecation warnings,
100install the modules in question from CPAN.
0302547a 101
efdbe372
S
102Note that these are (with rare exceptions) fine modules that you are encouraged
103to continue to use. Their disinclusion from core primarily hinges on their
104necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
105not usually on concerns over their design.
106
107=over
0302547a 108
efdbe372 109=item XXX
a7efcf70 110
efdbe372
S
111XXX Note that deprecated modules should be listed here even if they are listed
112as an updated module in the L</Modules and Pragmata> section.
0302547a 113
a7efcf70 114=back
0302547a 115
efdbe372 116[ List each other deprecation as a =head2 entry ]
0302547a 117
efdbe372
S
118=head1 Performance Enhancements
119
120XXX Changes which enhance performance without changing behaviour go here.
121There may well be none in a stable release.
122
123[ List each enhancement as a =item entry ]
0302547a 124
a7efcf70 125=over 4
0302547a 126
a7efcf70 127=item *
0302547a 128
efdbe372 129XXX
0302547a 130
efdbe372 131=back
0302547a 132
efdbe372 133=head1 Modules and Pragmata
0302547a 134
efdbe372
S
135XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
136go here. If Module::CoreList is updated, generate an initial draft of the
137following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
138for important changes should then be added by hand. In an ideal world,
139dual-life modules would have a F<Changes> file that could be cribbed.
0302547a 140
efdbe372 141[ Within each section, list entries as a =item entry ]
0302547a 142
efdbe372 143=head2 New Modules and Pragmata
0302547a 144
efdbe372 145=over 4
0302547a
RS
146
147=item *
148
efdbe372 149XXX
4de751aa 150
efdbe372 151=back
0302547a 152
efdbe372
S
153=head2 Updated Modules and Pragmata
154
155=over 4
0302547a 156
a7efcf70 157=item *
0302547a 158
efdbe372 159L<XXX> has been upgraded from version A.xx to B.yy.
0302547a 160
adff8e6f
S
161=item *
162
163L<Module::CoreList> has been upgraded from 5.20160520 to 5.20160620.
164
efdbe372
S
165=back
166
167=head2 Removed Modules and Pragmata
0302547a 168
efdbe372 169=over 4
0302547a 170
a7efcf70
S
171=item *
172
efdbe372 173XXX
0302547a 174
efdbe372 175=back
0302547a 176
efdbe372 177=head1 Documentation
0302547a 178
efdbe372
S
179XXX Changes to files in F<pod/> go here. Consider grouping entries by
180file and be sure to link to the appropriate page, e.g. L<perlfunc>.
0302547a 181
efdbe372 182=head2 New Documentation
0302547a 183
efdbe372 184XXX Changes which create B<new> files in F<pod/> go here.
a7efcf70 185
efdbe372 186=head3 L<XXX>
a7efcf70 187
efdbe372 188XXX Description of the purpose of the new file here
a7efcf70 189
efdbe372 190=head2 Changes to Existing Documentation
0302547a 191
efdbe372
S
192XXX Changes which significantly change existing files in F<pod/> go here.
193However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
194section.
195
196=head3 L<XXX>
4de751aa 197
efdbe372 198=over 4
a7efcf70
S
199
200=item *
201
efdbe372 202XXX Description of the change here
0302547a 203
efdbe372 204=back
0302547a 205
efdbe372 206=head1 Diagnostics
0302547a 207
efdbe372
S
208The following additions or changes have been made to diagnostic output,
209including warnings and fatal error messages. For the complete list of
210diagnostic messages, see L<perldiag>.
0302547a 211
efdbe372
S
212XXX New or changed warnings emitted by the core's C<C> code go here. Also
213include any changes in L<perldiag> that reconcile it to the C<C> code.
0302547a 214
efdbe372 215=head2 New Diagnostics
0302547a 216
efdbe372
S
217XXX Newly added diagnostic messages go under here, separated into New Errors
218and New Warnings
0302547a 219
efdbe372 220=head3 New Errors
0302547a 221
efdbe372 222=over 4
0302547a 223
a7efcf70 224=item *
0302547a 225
9c88bb56 226L<Version control conflict marker|perldiag/"Version control conflict marker">
397c43d8
LM
227
228=item *
229
efdbe372 230XXX L<message|perldiag/"message">
0302547a 231
efdbe372
S
232=back
233
234=head3 New Warnings
0302547a 235
efdbe372 236=over 4
0302547a 237
463bbb8d 238=item *
0302547a 239
efdbe372 240XXX L<message|perldiag/"message">
463bbb8d
S
241
242=back
0302547a 243
efdbe372 244=head2 Changes to Existing Diagnostics
0302547a 245
efdbe372 246XXX Changes (i.e. rewording) of diagnostic messages go here
0302547a
RS
247
248=over 4
249
250=item *
251
efdbe372 252XXX Describe change here
0302547a
RS
253
254=back
255
efdbe372 256=head1 Utility Changes
0302547a 257
efdbe372
S
258XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
259Most of these are built within the directory F<utils>.
0302547a 260
efdbe372
S
261[ List utility changes as a =head2 entry for each utility and =item
262entries for each change
263Use L<XXX> with program names to get proper documentation linking. ]
264
265=head2 L<XXX>
0302547a
RS
266
267=over 4
268
269=item *
270
efdbe372 271XXX
bf1007bc 272
efdbe372 273=back
bf1007bc 274
efdbe372 275=head1 Configuration and Compilation
bf1007bc 276
efdbe372
S
277XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
278go here. Any other changes to the Perl build process should be listed here.
279However, any platform-specific changes should be listed in the
280L</Platform Support> section, instead.
bf1007bc 281
efdbe372
S
282[ List changes as a =item entry ].
283
284=over 4
bf1007bc
DM
285
286=item *
287
efdbe372 288XXX
0302547a
RS
289
290=back
291
efdbe372 292=head1 Testing
be2c0c65 293
efdbe372
S
294XXX Any significant changes to the testing of a freshly built perl should be
295listed here. Changes which create B<new> files in F<t/> go here as do any
296large changes to the testing harness (e.g. when parallel testing was added).
297Changes to existing files in F<t/> aren't worth summarizing, although the bugs
298that they represent may be covered elsewhere.
0302547a 299
efdbe372 300[ List each test improvement as a =item entry ]
0302547a 301
efdbe372 302=over 4
0302547a 303
69ab4fe8
FC
304=item *
305
efdbe372 306XXX
69ab4fe8 307
efdbe372 308=back
69ab4fe8 309
efdbe372 310=head1 Platform Support
69ab4fe8 311
efdbe372 312XXX Any changes to platform support should be listed in the sections below.
69ab4fe8 313
efdbe372
S
314[ Within the sections, list each platform as a =item entry with specific
315changes as paragraphs below it. ]
69ab4fe8 316
efdbe372 317=head2 New Platforms
69ab4fe8 318
efdbe372
S
319XXX List any platforms that this version of perl compiles on, that previous
320versions did not. These will either be enabled by new files in the F<hints/>
321directories, or new subdirectories and F<README> files at the top level of the
322source tree.
69ab4fe8 323
efdbe372
S
324=over 4
325
326=item XXX-some-platform
f8591e08 327
efdbe372 328XXX
f8591e08 329
0302547a
RS
330=back
331
efdbe372 332=head2 Discontinued Platforms
0302547a 333
efdbe372 334XXX List any platforms that this version of perl no longer compiles on.
0302547a
RS
335
336=over 4
337
efdbe372 338=item XXX-some-platform
0302547a 339
efdbe372 340XXX
0302547a
RS
341
342=back
343
efdbe372
S
344=head2 Platform-Specific Notes
345
346XXX List any changes for specific platforms. This could include configuration
347and compilation changes or changes in portability/compatibility. However,
348changes within modules for platforms should generally be listed in the
349L</Modules and Pragmata> section.
0302547a 350
0302547a
RS
351=over 4
352
efdbe372 353=item XXX-some-platform
0302547a 354
efdbe372 355XXX
0302547a 356
efdbe372 357=back
f54530a4 358
efdbe372 359=head1 Internal Changes
f54530a4 360
efdbe372
S
361XXX Changes which affect the interface available to C<XS> code go here. Other
362significant internal changes for future core maintainers should be noted as
363well.
4de751aa 364
efdbe372 365[ List each change as a =item entry ]
4de751aa 366
efdbe372 367=over 4
4de751aa
AC
368
369=item *
370
79f120c8
KW
371Perl no longer panics when switching into some locales on machines with
372buggy C<strxfrm()> implementations in their libc. [perl #121734]
4de751aa 373
0302547a
RS
374=back
375
efdbe372
S
376=head1 Selected Bug Fixes
377
378XXX Important bug fixes in the core language are summarized here. Bug fixes in
379files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
380
381[ List each fix as a =item entry ]
0302547a 382
0302547a
RS
383=over 4
384
385=item *
386
6667f488
TC
387C< until ($x = 1) { ... } > and C< ... until $x = 1 > now properly
388warn when syntax warnings are enabled. [perl #127333]
0302547a
RS
389
390=back
391
efdbe372 392=head1 Known Problems
0302547a 393
efdbe372
S
394XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
395tests that had to be C<TODO>ed for the release would be noted here. Unfixed
396platform specific bugs also go here.
0302547a 397
efdbe372 398[ List each fix as a =item entry ]
0302547a 399
efdbe372 400=over 4
0302547a 401
69ab4fe8
FC
402=item *
403
efdbe372 404XXX
69ab4fe8 405
efdbe372 406=back
69ab4fe8 407
efdbe372 408=head1 Errata From Previous Releases
69ab4fe8 409
efdbe372 410=over 4
0302547a 411
efdbe372 412=item *
0302547a 413
efdbe372
S
414XXX Add anything here that we forgot to add, or were mistaken about, in
415the perldelta of a previous release.
0302547a 416
efdbe372 417=back
0302547a 418
efdbe372 419=head1 Obituary
0302547a 420
efdbe372
S
421XXX If any significant core contributor has died, we've added a short obituary
422here.
0302547a 423
efdbe372 424=head1 Acknowledgements
be2c0c65 425
efdbe372 426XXX Generate this with:
be2c0c65 427
efdbe372 428 perl Porting/acknowledgements.pl v5.25.1..HEAD
f5b73711 429
44691e6f
AB
430=head1 Reporting Bugs
431
e08634c5
SH
432If you find what you think is a bug, you might check the articles recently
433posted to the comp.lang.perl.misc newsgroup and the perl bug database at
4b8803f0
RS
434L<https://rt.perl.org/> . There may also be information at
435L<http://www.perl.org/> , the Perl Home Page.
44691e6f 436
e08634c5
SH
437If you believe you have an unreported bug, please run the L<perlbug> program
438included with your release. Be sure to trim your bug down to a tiny but
439sufficient test case. Your bug report, along with the output of C<perl -V>,
440will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f 441
87c118b9
DM
442If the bug you are reporting has security implications which make it
443inappropriate to send to a publicly archived mailing list, then see
444L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
445for details of how to report the issue.
44691e6f
AB
446
447=head1 SEE ALSO
448
e08634c5
SH
449The F<Changes> file for an explanation of how to view exhaustive details on
450what changed.
44691e6f
AB
451
452The F<INSTALL> file for how to build Perl.
453
454The F<README> file for general stuff.
455
456The F<Artistic> and F<Copying> files for copyright information.
457
458=cut