This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for 31b6f23ed55c
[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
81b22c17
TC
288F<make_ext.pl> no longer updates a module's F<pm_to_blib> file when no
289files require updates. This could cause dependencies, F<perlmain.c>
290in particular, to be rebuilt unnecessarily. [perl #126710]
0302547a
RS
291
292=back
293
efdbe372 294=head1 Testing
be2c0c65 295
efdbe372
S
296XXX Any significant changes to the testing of a freshly built perl should be
297listed here. Changes which create B<new> files in F<t/> go here as do any
298large changes to the testing harness (e.g. when parallel testing was added).
299Changes to existing files in F<t/> aren't worth summarizing, although the bugs
300that they represent may be covered elsewhere.
0302547a 301
efdbe372 302[ List each test improvement as a =item entry ]
0302547a 303
efdbe372 304=over 4
0302547a 305
69ab4fe8
FC
306=item *
307
efdbe372 308XXX
69ab4fe8 309
efdbe372 310=back
69ab4fe8 311
efdbe372 312=head1 Platform Support
69ab4fe8 313
efdbe372 314XXX Any changes to platform support should be listed in the sections below.
69ab4fe8 315
efdbe372
S
316[ Within the sections, list each platform as a =item entry with specific
317changes as paragraphs below it. ]
69ab4fe8 318
efdbe372 319=head2 New Platforms
69ab4fe8 320
efdbe372
S
321XXX List any platforms that this version of perl compiles on, that previous
322versions did not. These will either be enabled by new files in the F<hints/>
323directories, or new subdirectories and F<README> files at the top level of the
324source tree.
69ab4fe8 325
efdbe372
S
326=over 4
327
328=item XXX-some-platform
f8591e08 329
efdbe372 330XXX
f8591e08 331
0302547a
RS
332=back
333
efdbe372 334=head2 Discontinued Platforms
0302547a 335
efdbe372 336XXX List any platforms that this version of perl no longer compiles on.
0302547a
RS
337
338=over 4
339
efdbe372 340=item XXX-some-platform
0302547a 341
efdbe372 342XXX
0302547a
RS
343
344=back
345
efdbe372
S
346=head2 Platform-Specific Notes
347
348XXX List any changes for specific platforms. This could include configuration
349and compilation changes or changes in portability/compatibility. However,
350changes within modules for platforms should generally be listed in the
351L</Modules and Pragmata> section.
0302547a 352
0302547a
RS
353=over 4
354
efdbe372 355=item XXX-some-platform
0302547a 356
efdbe372 357XXX
0302547a 358
efdbe372 359=back
f54530a4 360
efdbe372 361=head1 Internal Changes
f54530a4 362
efdbe372
S
363XXX Changes which affect the interface available to C<XS> code go here. Other
364significant internal changes for future core maintainers should be noted as
365well.
4de751aa 366
efdbe372 367[ List each change as a =item entry ]
4de751aa 368
efdbe372 369=over 4
4de751aa
AC
370
371=item *
372
79f120c8
KW
373Perl no longer panics when switching into some locales on machines with
374buggy C<strxfrm()> implementations in their libc. [perl #121734]
4de751aa 375
0302547a
RS
376=back
377
efdbe372
S
378=head1 Selected Bug Fixes
379
380XXX Important bug fixes in the core language are summarized here. Bug fixes in
381files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
382
383[ List each fix as a =item entry ]
0302547a 384
0302547a
RS
385=over 4
386
387=item *
388
6667f488
TC
389C< until ($x = 1) { ... } > and C< ... until $x = 1 > now properly
390warn when syntax warnings are enabled. [perl #127333]
0302547a
RS
391
392=back
393
efdbe372 394=head1 Known Problems
0302547a 395
efdbe372
S
396XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
397tests that had to be C<TODO>ed for the release would be noted here. Unfixed
398platform specific bugs also go here.
0302547a 399
efdbe372 400[ List each fix as a =item entry ]
0302547a 401
efdbe372 402=over 4
0302547a 403
69ab4fe8
FC
404=item *
405
efdbe372 406XXX
69ab4fe8 407
efdbe372 408=back
69ab4fe8 409
efdbe372 410=head1 Errata From Previous Releases
69ab4fe8 411
efdbe372 412=over 4
0302547a 413
efdbe372 414=item *
0302547a 415
efdbe372
S
416XXX Add anything here that we forgot to add, or were mistaken about, in
417the perldelta of a previous release.
0302547a 418
efdbe372 419=back
0302547a 420
efdbe372 421=head1 Obituary
0302547a 422
efdbe372
S
423XXX If any significant core contributor has died, we've added a short obituary
424here.
0302547a 425
efdbe372 426=head1 Acknowledgements
be2c0c65 427
efdbe372 428XXX Generate this with:
be2c0c65 429
efdbe372 430 perl Porting/acknowledgements.pl v5.25.1..HEAD
f5b73711 431
44691e6f
AB
432=head1 Reporting Bugs
433
e08634c5
SH
434If you find what you think is a bug, you might check the articles recently
435posted to the comp.lang.perl.misc newsgroup and the perl bug database at
4b8803f0
RS
436L<https://rt.perl.org/> . There may also be information at
437L<http://www.perl.org/> , the Perl Home Page.
44691e6f 438
e08634c5
SH
439If you believe you have an unreported bug, please run the L<perlbug> program
440included with your release. Be sure to trim your bug down to a tiny but
441sufficient test case. Your bug report, along with the output of C<perl -V>,
442will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f 443
87c118b9
DM
444If the bug you are reporting has security implications which make it
445inappropriate to send to a publicly archived mailing list, then see
446L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
447for details of how to report the issue.
44691e6f
AB
448
449=head1 SEE ALSO
450
e08634c5
SH
451The F<Changes> file for an explanation of how to view exhaustive details on
452what changed.
44691e6f
AB
453
454The F<INSTALL> file for how to build Perl.
455
456The F<README> file for general stuff.
457
458The F<Artistic> and F<Copying> files for copyright information.
459
460=cut