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