This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta changes for this branch
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
915366d4
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.27.9
89853d76 9
b5cbfe35 10=head1 DESCRIPTION
89853d76 11
915366d4 12This document describes differences between the 5.27.8 release and the 5.27.9
b5cbfe35 13release.
89853d76 14
915366d4
A
15If you are upgrading from an earlier release such as 5.27.7, first read
16L<perl5278delta>, which describes differences between 5.27.7 and 5.27.8.
ae047103 17
915366d4 18=head1 Notice
ae047103 19
915366d4 20XXX Any important notices here
034602eb 21
915366d4 22=head1 Core Enhancements
034602eb 23
915366d4
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.
219ba69c 27
915366d4 28[ List each enhancement as a =head2 entry ]
219ba69c 29
f512d242
KW
30=head2 New read-only predefined variable C<${^SAFE_LOCALES}>
31
32This variable is 1 if the Perl interpreter is operating in an
33environment where it is safe to use and change locales (see
3a01ed59
KW
34L<perllocale>.) This variable is true when the perl is
35unthreaded, or compiled in a platform that supports thread-safe locale
36operation (see next item).
37
38=head2 Locales are now thread-safe on systems that support them
39
40These systems include Windows starting with Visual Studio 2005, and in
41POSIX 2008 systems.
42
43The implication is that you are now free to use locales and changes them
44in a threaded environment. Your changes affect only your thread.
45See L<perllocale/Multi-threaded operation>
f512d242 46
915366d4 47=head1 Security
219ba69c 48
915366d4
A
49XXX Any security-related notices go here. In particular, any security
50vulnerabilities closed should be noted here rather than in the
51L</Selected Bug Fixes> section.
219ba69c 52
915366d4 53[ List each security issue as a =head2 entry ]
219ba69c 54
915366d4 55=head1 Incompatible Changes
219ba69c 56
915366d4 57XXX For a release on a stable branch, this section aspires to be:
219ba69c 58
915366d4
A
59 There are no changes intentionally incompatible with 5.XXX.XXX
60 If any exist, they are bugs, and we request that you submit a
61 report. See L</Reporting Bugs> below.
219ba69c 62
915366d4 63[ List each incompatible change as a =head2 entry ]
219ba69c 64
915366d4 65=head1 Deprecations
219ba69c 66
915366d4 67XXX Any deprecated features, syntax, modules etc. should be listed here.
15397007 68
915366d4 69=head2 Module removals
3e6fc602 70
915366d4 71XXX Remove this section if not applicable.
3e6fc602 72
915366d4
A
73The following modules will be removed from the core distribution in a
74future release, and will at that time need to be installed from CPAN.
75Distributions on CPAN which require these modules will need to list them as
76prerequisites.
a8e51187 77
915366d4
A
78The core versions of these modules will now issue C<"deprecated">-category
79warnings to alert you to this fact. To silence these deprecation warnings,
80install the modules in question from CPAN.
a8e51187 81
915366d4
A
82Note that these are (with rare exceptions) fine modules that you are encouraged
83to continue to use. Their disinclusion from core primarily hinges on their
84necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
85not usually on concerns over their design.
a8e51187 86
915366d4 87=over
a8e51187 88
915366d4 89=item XXX
a8e51187 90
915366d4
A
91XXX Note that deprecated modules should be listed here even if they are listed
92as an updated module in the L</Modules and Pragmata> section.
ba52ce15 93
915366d4 94=back
ba52ce15 95
915366d4 96[ List each other deprecation as a =head2 entry ]
ba52ce15 97
915366d4 98=head1 Performance Enhancements
0367231c 99
915366d4
A
100XXX Changes which enhance performance without changing behaviour go here.
101There may well be none in a stable release.
0367231c 102
915366d4 103[ List each enhancement as an =item entry ]
8841d380 104
4ec06e46 105=over 4
2707ab55
CBW
106
107=item *
108
915366d4 109XXX
2707ab55 110
4ec06e46 111=back
2707ab55 112
4ec06e46 113=head1 Modules and Pragmata
2707ab55 114
915366d4
A
115XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
116go here. If Module::CoreList is updated, generate an initial draft of the
117following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
118for important changes should then be added by hand. In an ideal world,
119dual-life modules would have a F<Changes> file that could be cribbed.
c933e4bb 120
915366d4
A
121The list of new and updated modules is modified automatically as part of
122preparing a Perl release, so the only reason to manually add entries here is if
123you're summarising the important changes in the module update. (Also, if the
124manually-added details don't match the automatically-generated ones, the
125release manager will have to investigate the situation carefully.)
b2a6778b 126
915366d4 127[ Within each section, list entries as an =item entry ]
2707ab55 128
915366d4 129=head2 New Modules and Pragmata
b2a6778b 130
915366d4 131=over 4
a69078af
A
132
133=item *
9a84a9ba 134
915366d4 135XXX Remove this section if not applicable.
a69078af 136
915366d4 137=back
a69078af 138
915366d4 139=head2 Updated Modules and Pragmata
a69078af 140
915366d4 141=over 4
9a84a9ba 142
8c7aa727
JK
143=item *
144
915366d4 145L<XXX> has been upgraded from version A.xx to B.yy.
2707ab55 146
915366d4 147If there was something important to note about this change, include that here.
64b9a139 148
915366d4 149=back
a69078af 150
915366d4 151=head2 Removed Modules and Pragmata
a69078af 152
915366d4 153=over 4
a69078af
A
154
155=item *
156
915366d4 157XXX
e6a2e5ca 158
915366d4 159=back
b2a6778b 160
915366d4 161=head1 Documentation
a69078af 162
915366d4
A
163XXX Changes to files in F<pod/> go here. Consider grouping entries by
164file and be sure to link to the appropriate page, e.g. L<perlfunc>.
a69078af 165
915366d4 166=head2 New Documentation
a69078af 167
915366d4 168XXX Changes which create B<new> files in F<pod/> go here.
b2a6778b 169
915366d4 170=head3 L<XXX>
2707ab55 171
915366d4 172XXX Description of the purpose of the new file here
2707ab55 173
25219f3f 174=head2 Changes to Existing Documentation
b2a6778b 175
25219f3f
KE
176We have attempted to update the documentation to reflect the changes
177listed in this document. If you find any we have missed, send email
178to L<perlbug@perl.org|mailto:perlbug@perl.org>.
b2a6778b 179
915366d4
A
180XXX Changes which significantly change existing files in F<pod/> go here.
181However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
182section.
183
4ec06e46 184Additionally, the following selected changes have been made:
86e03141 185
915366d4 186=head3 L<XXX>
86e03141 187
4ec06e46 188=over 4
01d02537 189
4ec06e46 190=item *
01d02537 191
915366d4 192XXX Description of the change here
8e14f284 193
915366d4 194=back
8e14f284 195
915366d4 196=head1 Diagnostics
8e14f284 197
915366d4
A
198The following additions or changes have been made to diagnostic output,
199including warnings and fatal error messages. For the complete list of
200diagnostic messages, see L<perldiag>.
8e14f284 201
915366d4
A
202XXX New or changed warnings emitted by the core's C<C> code go here. Also
203include any changes in L<perldiag> that reconcile it to the C<C> code.
8e14f284 204
915366d4 205=head2 New Diagnostics
4914bebe 206
915366d4
A
207XXX Newly added diagnostic messages go under here, separated into New Errors
208and New Warnings
4914bebe 209
915366d4 210=head3 New Errors
b2a6778b 211
25219f3f 212=over 4
b2a6778b
KE
213
214=item *
215
915366d4 216XXX L<message|perldiag/"message">
b2a6778b 217
25219f3f 218=back
b2a6778b 219
915366d4 220=head3 New Warnings
b2a6778b 221
25219f3f 222=over 4
64b9a139
SH
223
224=item *
225
8b7358b9
KW
226L<Locale '%s' contains (at least) the following characters which have
227non-standard meanings: %s The Perl program will use the standard
228meanings|perldiag/"Locale '%s' contains (at least) the following
229characters which have non-standard meanings: %s The Perl program will
230use the standard meanings">.
64b9a139 231
e6a2e5ca 232=back
64b9a139 233
915366d4
A
234=head2 Changes to Existing Diagnostics
235
236XXX Changes (i.e. rewording) of diagnostic messages go here
4ec06e46 237
04f89ea7
Z
238=over 4
239
64b9a139
SH
240=item *
241
915366d4 242XXX Describe change here
9fca523d 243
4ec06e46 244=back
9fca523d 245
915366d4 246=head1 Utility Changes
52e3acf8 247
915366d4
A
248XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
249Most of these are built within the directory F<utils>.
4ec06e46 250
915366d4
A
251[ List utility changes as a =head2 entry for each utility and =item
252entries for each change
253Use L<XXX> with program names to get proper documentation linking. ]
cab9f0b0 254
915366d4 255=head2 L<XXX>
4ec06e46
CBW
256
257=over 4
cab9f0b0 258
9deb4e0b
Z
259=item *
260
915366d4 261XXX
64b9a139 262
0a72295b 263=back
4ec06e46 264
915366d4
A
265=head1 Configuration and Compilation
266
267XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
268go here. Any other changes to the Perl build process should be listed here.
269However, any platform-specific changes should be listed in the
270L</Platform Support> section, instead.
271
272[ List changes as an =item entry ].
4ec06e46 273
e6a2e5ca 274=over 4
64b9a139
SH
275
276=item *
277
915366d4 278XXX
a8d9a219 279
e6a2e5ca
SH
280=back
281
4ec06e46 282=head1 Testing
dea26044 283
915366d4
A
284XXX Any significant changes to the testing of a freshly built perl should be
285listed here. Changes which create B<new> files in F<t/> go here as do any
286large changes to the testing harness (e.g. when parallel testing was added).
287Changes to existing files in F<t/> aren't worth summarizing, although the bugs
288that they represent may be covered elsewhere.
289
290XXX If there were no significant test changes, say this:
291
292Tests were added and changed to reflect the other additions and changes
293in this release.
294
295XXX If instead there were significant changes, say this:
296
4ec06e46
CBW
297Tests were added and changed to reflect the other additions and
298changes in this release. Furthermore, these significant changes were
299made:
a8ba758d 300
915366d4
A
301[ List each test improvement as an =item entry ]
302
25219f3f 303=over 4
a8ba758d 304
ee5287f6
LM
305=item *
306
2a897ae9
TC
307F<harness> no longer waits for 30 seconds when running
308F<t/io/openpid.t>. [perl #121028][perl #132867]
59eb8be1 309
4ec06e46 310=back
59eb8be1 311
4ec06e46 312=head1 Platform Support
ee5287f6 313
915366d4
A
314XXX Any changes to platform support should be listed in the sections below.
315
316[ Within the sections, list each platform as an =item entry with specific
317changes as paragraphs below it. ]
318
319=head2 New Platforms
320
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.
e6a2e5ca 325
25219f3f 326=over 4
e6a2e5ca 327
915366d4 328=item XXX-some-platform
4faa3060 329
915366d4 330XXX
e1b825c1 331
1d60dc3f
CB
332=item VMS
333
334CRTL features can now be set by embedders before invoking Perl by using the
335C<decc$feature_set> and C<decc$feature_set_value> functions. Previously any attempt
336to set features after image initialization were ignored.
337
915366d4 338=back
66d3c925 339
915366d4 340=head2 Discontinued Platforms
66d3c925 341
915366d4
A
342XXX List any platforms that this version of perl no longer compiles on.
343
344=over 4
4dab62e3 345
915366d4 346=item XXX-some-platform
4dab62e3 347
915366d4 348XXX
1b16b015 349
4ec06e46 350=back
1b16b015 351
915366d4
A
352=head2 Platform-Specific Notes
353
354XXX List any changes for specific platforms. This could include configuration
355and compilation changes or changes in portability/compatibility. However,
356changes within modules for platforms should generally be listed in the
357L</Modules and Pragmata> section.
acbb539d
DM
358
359=over 4
360
915366d4 361=item XXX-some-platform
acbb539d 362
915366d4 363XXX
acbb539d
DM
364
365=back
366
915366d4 367=head1 Internal Changes
64def2ae 368
915366d4
A
369XXX Changes which affect the interface available to C<XS> code go here. Other
370significant internal changes for future core maintainers should be noted as
371well.
9a40fcb6 372
915366d4 373[ List each change as an =item entry ]
d679c20f 374
915366d4 375=over 4
f5e05609
Z
376
377=item *
378
c5dd0eb1
KW
379A new compiler C<#define>, C<dTHX_DEBUGGING>. has been added. This is
380useful for XS or C code that only need the thread context because their
381debugging statements that get compiled only under C<-DDEBUGGING> need
382one.
30f9405e 383
9aac5db8
KW
384=item *
385
386A new API function L<perlapi/Perl_setlocale> has been added.
387
3a01ed59
KW
388=item *
389
390L<perlapi/sync_locale> has been revised to return a boolean as to
391whether the system was using the global locale or not.
392
915366d4 393=back
222b5ca9 394
915366d4 395=head1 Selected Bug Fixes
222b5ca9 396
915366d4
A
397XXX Important bug fixes in the core language are summarized here. Bug fixes in
398files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
64072da0 399
915366d4 400[ List each fix as an =item entry ]
244d2682 401
915366d4 402=over 4
4ec06e46 403
0a72295b 404=item *
8af6a5dc 405
084ed71b
TC
406Failures while compiling code within other constructs, such as with
407string interpolation and the right part of C<s///e> now cause
408compilation to abort earlier.
409
410Previously compilation could continue in order to report other errors,
411but the failed sub-parse could leave partly parsed constructs on the
412parser shift-reduce stack, confusing the parser, leading to perl
413crashes. [perl #125351]
998753fe 414
3a01ed59
KW
415=item *
416
417On threaded perls where the decimal point (radix) character is not a
418dot, it has been possible for a race to occur between threads when one
419needs to use the real radix character. This has now been fixed by use
420of a mutex on systems without thread-safe locales, and the problem just
421doesn't come up on those with thread-safe locales.
422
915366d4 423=back
53fff747 424
915366d4 425=head1 Known Problems
53fff747 426
915366d4
A
427XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
428tests that had to be C<TODO>ed for the release would be noted here. Unfixed
429platform specific bugs also go here.
244d2682 430
915366d4 431[ List each fix as an =item entry ]
acbb539d 432
915366d4 433=over 4
acbb539d
DM
434
435=item *
436
915366d4 437XXX
acbb539d 438
4ec06e46 439=back
244d2682 440
915366d4 441=head1 Errata From Previous Releases
8f46363a 442
4ec06e46 443=over 4
244d2682 444
aa0c5741
Z
445=item *
446
915366d4
A
447XXX Add anything here that we forgot to add, or were mistaken about, in
448the perldelta of a previous release.
857320cb 449
25219f3f 450=back
4faa3060 451
915366d4 452=head1 Obituary
5ef73200 453
915366d4
A
454XXX If any significant core contributor or member of the CPAN community has
455died, add a short obituary here.
5ef73200 456
915366d4 457=head1 Acknowledgements
5ef73200 458
915366d4 459XXX Generate this with:
5ef73200 460
915366d4 461 perl Porting/acknowledgements.pl v5.27.8..HEAD
f5b73711 462
44691e6f
AB
463=head1 Reporting Bugs
464
b5cbfe35
S
465If you find what you think is a bug, you might check the perl bug database
466at L<https://rt.perl.org/> . There may also be information at
467L<http://www.perl.org/> , the Perl Home Page.
44691e6f 468
e08634c5
SH
469If you believe you have an unreported bug, please run the L<perlbug> program
470included with your release. Be sure to trim your bug down to a tiny but
471sufficient test case. Your bug report, along with the output of C<perl -V>,
b5cbfe35 472will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f 473
87c118b9
DM
474If the bug you are reporting has security implications which make it
475inappropriate to send to a publicly archived mailing list, then see
c0ea3294
SH
476L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
477for details of how to report the issue.
44691e6f 478
390ae6f9
S
479=head1 Give Thanks
480
481If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
482you can do so by running the C<perlthanks> program:
483
484 perlthanks
485
486This will send an email to the Perl 5 Porters list with your show of thanks.
487
44691e6f
AB
488=head1 SEE ALSO
489
e08634c5
SH
490The F<Changes> file for an explanation of how to view exhaustive details on
491what changed.
44691e6f
AB
492
493The F<INSTALL> file for how to build Perl.
494
495The F<README> file for general stuff.
496
497The F<Artistic> and F<Copying> files for copyright information.
498
499=cut