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