This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for /[[:ascii:]]/ changes
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
4ec06e46
CBW
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.8
89853d76 9
b5cbfe35 10=head1 DESCRIPTION
89853d76 11
4ec06e46 12This document describes differences between the 5.27.7 release and the 5.27.8
b5cbfe35 13release.
89853d76 14
4ec06e46
CBW
15If you are upgrading from an earlier release such as 5.27.6, first read
16L<perl5277delta>, which describes differences between 5.27.6 and 5.27.7.
29d69c3c 17
4ec06e46 18=head1 Notice
9e0909b2 19
4ec06e46 20XXX Any important notices here
9e0909b2 21
4ec06e46 22=head1 Core Enhancements
9e0909b2 23
4ec06e46
CBW
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.
9e0909b2 27
4ec06e46 28[ List each enhancement as a =head2 entry ]
b1a6328e 29
ae047103
Z
30=head2 Close-on-exec flag set atomically
31
32When opening a file descriptor, perl now generally opens it with its
33close-on-exec flag already set, on platforms that support doing so.
34This improves thread safety, because it means that an C<exec> initiated
35by one thread can no longer cause a file descriptor in the process
36of being opened by another thread to be accidentally passed to the
37executed program.
38
39Additionally, perl now sets the close-on-exec flag more reliably, whether
40it does so atomically or not. Most file descriptors were getting the
41flag set, but some were being missed.
42
034602eb
KW
43=head2 Mixed Unicode scripts are now detectable
44
45A mixture of scripts, such as Cyrillic and Latin, in a string is often
46the sign of a spoofing attack. A new regular expression construct
47now allows for easy detection of these. For example, you can say
48
49 qr/(?script_run: \d+ \b )/x
50
51And the digits matched will all be from the same set of 10. You won't
52get a look-alike digit from a different script that has a different
53value than what it appears to be.
54
4ec06e46 55=head1 Security
9e0909b2 56
4ec06e46
CBW
57XXX Any security-related notices go here. In particular, any security
58vulnerabilities closed should be noted here rather than in the
59L</Selected Bug Fixes> section.
b1a6328e 60
4ec06e46 61[ List each security issue as a =head2 entry ]
9e0909b2 62
4ec06e46 63=head1 Incompatible Changes
15397007 64
4ec06e46 65XXX For a release on a stable branch, this section aspires to be:
15397007 66
4ec06e46
CBW
67 There are no changes intentionally incompatible with 5.XXX.XXX
68 If any exist, they are bugs, and we request that you submit a
69 report. See L</Reporting Bugs> below.
e1b825c1 70
4ec06e46 71[ List each incompatible change as a =head2 entry ]
e1b825c1 72
3e6fc602
Z
73=head2 Smartmatch and switch reversion
74
75The changes to the experimental smart match operator (C<~~>) and switch
76(C<given>/C<when>) constructs that were made in Perl 5.27.7 have been
77reverted due to the extent of the trouble caused to CPAN modules.
78It is expected that smartmatch will be changed again in the future,
79but preceded by some kind of explicit deprecation.
80
25219f3f 81=head1 Deprecations
7d65f652 82
4ec06e46 83XXX Any deprecated features, syntax, modules etc. should be listed here.
cab9f0b0 84
25219f3f 85=head2 Module removals
4c46c124 86
4ec06e46 87XXX Remove this section if not applicable.
2707ab55 88
4ec06e46
CBW
89The following modules will be removed from the core distribution in a
90future release, and will at that time need to be installed from CPAN.
91Distributions on CPAN which require these modules will need to list them as
92prerequisites.
2707ab55 93
4ec06e46
CBW
94The core versions of these modules will now issue C<"deprecated">-category
95warnings to alert you to this fact. To silence these deprecation warnings,
96install the modules in question from CPAN.
8841d380 97
4ec06e46
CBW
98Note that these are (with rare exceptions) fine modules that you are encouraged
99to continue to use. Their disinclusion from core primarily hinges on their
100necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
101not usually on concerns over their design.
2707ab55 102
4ec06e46 103=over
2707ab55 104
4ec06e46 105=item XXX
b2a6778b 106
4ec06e46
CBW
107XXX Note that deprecated modules should be listed here even if they are listed
108as an updated module in the L</Modules and Pragmata> section.
95609a20 109
4ec06e46 110=back
364b8cf9 111
4ec06e46 112[ List each other deprecation as a =head2 entry ]
364b8cf9 113
4ec06e46 114=head1 Performance Enhancements
8841d380 115
4ec06e46
CBW
116XXX Changes which enhance performance without changing behaviour go here.
117There may well be none in a stable release.
95609a20 118
4ec06e46 119[ List each enhancement as an =item entry ]
c3fac04c 120
4ec06e46 121=over 4
2707ab55
CBW
122
123=item *
124
d5573933
KW
125The performance of pattern matching C<[[:ascii:]]> and C<[[:^ascii:]]>
126has been improved significantly except on EBCDIC platforms.
2707ab55 127
4ec06e46 128=back
2707ab55 129
4ec06e46 130=head1 Modules and Pragmata
2707ab55 131
4ec06e46
CBW
132XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
133go here. If Module::CoreList is updated, generate an initial draft of the
134following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
135for important changes should then be added by hand. In an ideal world,
136dual-life modules would have a F<Changes> file that could be cribbed.
2707ab55 137
4ec06e46
CBW
138The list of new and updated modules is modified automatically as part of
139preparing a Perl release, so the only reason to manually add entries here is if
140you're summarising the important changes in the module update. (Also, if the
141manually-added details don't match the automatically-generated ones, the
142release manager will have to investigate the situation carefully.)
2707ab55 143
4ec06e46 144[ Within each section, list entries as an =item entry ]
c3fac04c 145
4ec06e46 146=head2 New Modules and Pragmata
3752113a 147
4ec06e46 148=over 4
c933e4bb
FC
149
150=item *
151
4ec06e46 152XXX Remove this section if not applicable.
42034324 153
4ec06e46 154=back
b2a6778b 155
4ec06e46 156=head2 Updated Modules and Pragmata
2707ab55 157
4ec06e46 158=over 4
b2a6778b
KE
159
160=item *
161
4ec06e46 162L<XXX> has been upgraded from version A.xx to B.yy.
ad3f654c 163
4ec06e46 164If there was something important to note about this change, include that here.
7358a033 165
56da5534
KW
166=item *
167
168L<Unicode::UCD> has been upgraded from version 0.69 to 0.70.
169
170The function C<num> now accepts an optional parameter to help in
171diagnosing error returns.
172
4ec06e46 173=back
2707ab55 174
4ec06e46 175=head2 Removed Modules and Pragmata
64b9a139 176
4ec06e46 177=over 4
e6a2e5ca 178
2707ab55 179=item *
b2a6778b 180
4ec06e46 181XXX
b2a6778b 182
4ec06e46 183=back
2707ab55 184
4ec06e46 185=head1 Documentation
2707ab55 186
4ec06e46
CBW
187XXX Changes to files in F<pod/> go here. Consider grouping entries by
188file and be sure to link to the appropriate page, e.g. L<perlfunc>.
2707ab55 189
4ec06e46 190=head2 New Documentation
2707ab55 191
4ec06e46 192XXX Changes which create B<new> files in F<pod/> go here.
2707ab55 193
4ec06e46 194=head3 L<XXX>
2707ab55 195
4ec06e46 196XXX Description of the purpose of the new file here
b2a6778b 197
25219f3f 198=head2 Changes to Existing Documentation
b2a6778b 199
25219f3f
KE
200We have attempted to update the documentation to reflect the changes
201listed in this document. If you find any we have missed, send email
202to L<perlbug@perl.org|mailto:perlbug@perl.org>.
b2a6778b 203
4ec06e46
CBW
204XXX Changes which significantly change existing files in F<pod/> go here.
205However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
206section.
52e58e76 207
4ec06e46 208Additionally, the following selected changes have been made:
86e03141 209
4ec06e46 210=head3 L<XXX>
86e03141 211
4ec06e46 212=over 4
01d02537 213
4ec06e46 214=item *
01d02537 215
4ec06e46 216XXX Description of the change here
4914bebe 217
4ec06e46 218=back
4914bebe 219
25219f3f 220=head1 Diagnostics
b2a6778b 221
25219f3f
KE
222The following additions or changes have been made to diagnostic output,
223including warnings and fatal error messages. For the complete list of
224diagnostic messages, see L<perldiag>.
b2a6778b 225
4ec06e46
CBW
226XXX New or changed warnings emitted by the core's C<C> code go here. Also
227include any changes in L<perldiag> that reconcile it to the C<C> code.
228
25219f3f 229=head2 New Diagnostics
b2a6778b 230
4ec06e46
CBW
231XXX Newly added diagnostic messages go under here, separated into New Errors
232and New Warnings
233
25219f3f 234=head3 New Errors
b2a6778b 235
25219f3f 236=over 4
b2a6778b
KE
237
238=item *
239
4ec06e46 240XXX L<message|perldiag/"message">
b2a6778b 241
25219f3f 242=back
b2a6778b 243
25219f3f 244=head3 New Warnings
b2a6778b 245
25219f3f 246=over 4
64b9a139
SH
247
248=item *
249
4ec06e46 250XXX L<message|perldiag/"message">
64b9a139 251
e6a2e5ca 252=back
64b9a139 253
25219f3f 254=head2 Changes to Existing Diagnostics
64b9a139 255
4ec06e46
CBW
256XXX Changes (i.e. rewording) of diagnostic messages go here
257
04f89ea7
Z
258=over 4
259
64b9a139
SH
260=item *
261
4ec06e46 262XXX Describe change here
9fca523d 263
4ec06e46 264=back
9fca523d 265
4ec06e46 266=head1 Utility Changes
52e3acf8 267
4ec06e46
CBW
268XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
269Most of these are built within the directory F<utils>.
270
271[ List utility changes as a =head2 entry for each utility and =item
272entries for each change
273Use L<XXX> with program names to get proper documentation linking. ]
cab9f0b0 274
4ec06e46
CBW
275=head2 L<XXX>
276
277=over 4
cab9f0b0 278
9deb4e0b
Z
279=item *
280
4ec06e46 281XXX
9deb4e0b 282
25219f3f 283=back
e509fc38 284
25219f3f 285=head1 Configuration and Compilation
64b9a139 286
4ec06e46
CBW
287XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
288go here. Any other changes to the Perl build process should be listed here.
289However, any platform-specific changes should be listed in the
290L</Platform Support> section, instead.
291
292[ List changes as an =item entry ].
293
e6a2e5ca 294=over 4
64b9a139
SH
295
296=item *
297
4ec06e46 298XXX
a8d9a219 299
e6a2e5ca
SH
300=back
301
4ec06e46 302=head1 Testing
dea26044 303
4ec06e46
CBW
304XXX Any significant changes to the testing of a freshly built perl should be
305listed here. Changes which create B<new> files in F<t/> go here as do any
306large changes to the testing harness (e.g. when parallel testing was added).
307Changes to existing files in F<t/> aren't worth summarizing, although the bugs
308that they represent may be covered elsewhere.
a8ba758d 309
4ec06e46 310XXX If there were no significant test changes, say this:
9ef07b78 311
4ec06e46
CBW
312Tests were added and changed to reflect the other additions and changes
313in this release.
a8ba758d 314
4ec06e46 315XXX If instead there were significant changes, say this:
a8ba758d 316
4ec06e46
CBW
317Tests were added and changed to reflect the other additions and
318changes in this release. Furthermore, these significant changes were
319made:
a8ba758d 320
4ec06e46 321[ List each test improvement as an =item entry ]
e6a2e5ca 322
25219f3f 323=over 4
a8ba758d 324
ee5287f6
LM
325=item *
326
4ec06e46 327XXX
59eb8be1 328
4ec06e46 329=back
59eb8be1 330
4ec06e46 331=head1 Platform Support
ee5287f6 332
4ec06e46 333XXX Any changes to platform support should be listed in the sections below.
5a736967 334
4ec06e46
CBW
335[ Within the sections, list each platform as an =item entry with specific
336changes as paragraphs below it. ]
5a736967 337
4ec06e46 338=head2 New Platforms
e6a2e5ca 339
4ec06e46
CBW
340XXX List any platforms that this version of perl compiles on, that previous
341versions did not. These will either be enabled by new files in the F<hints/>
342directories, or new subdirectories and F<README> files at the top level of the
343source tree.
e6a2e5ca 344
25219f3f 345=over 4
e6a2e5ca 346
4ec06e46 347=item XXX-some-platform
4faa3060 348
4ec06e46 349XXX
e1b825c1 350
4ec06e46 351=back
e1b825c1 352
4ec06e46 353=head2 Discontinued Platforms
66d3c925 354
4ec06e46 355XXX List any platforms that this version of perl no longer compiles on.
66d3c925 356
4ec06e46 357=over 4
4dab62e3 358
4ec06e46 359=item XXX-some-platform
4dab62e3 360
4ec06e46 361XXX
1b16b015 362
4ec06e46 363=back
1b16b015 364
4ec06e46 365=head2 Platform-Specific Notes
64def2ae 366
4ec06e46
CBW
367XXX List any changes for specific platforms. This could include configuration
368and compilation changes or changes in portability/compatibility. However,
369changes within modules for platforms should generally be listed in the
370L</Modules and Pragmata> section.
64def2ae 371
4ec06e46 372=over 4
9a40fcb6 373
4ec06e46 374=item XXX-some-platform
9a40fcb6 375
4ec06e46 376XXX
d679c20f 377
4ec06e46 378=back
30f9405e 379
4ec06e46 380=head1 Internal Changes
30f9405e 381
4ec06e46
CBW
382XXX Changes which affect the interface available to C<XS> code go here. Other
383significant internal changes for future core maintainers should be noted as
384well.
222b5ca9 385
4ec06e46 386[ List each change as an =item entry ]
222b5ca9 387
4ec06e46 388=over 4
64072da0 389
244d2682
FC
390=item *
391
4ec06e46 392XXX
8af6a5dc 393
4ec06e46
CBW
394=back
395
396=head1 Selected Bug Fixes
8af6a5dc 397
4ec06e46
CBW
398XXX Important bug fixes in the core language are summarized here. Bug fixes in
399files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
998753fe 400
4ec06e46 401[ List each fix as an =item entry ]
998753fe 402
4ec06e46 403=over 4
53fff747
Z
404
405=item *
406
4ec06e46 407XXX
244d2682 408
4ec06e46 409=back
244d2682 410
4ec06e46 411=head1 Known Problems
8f46363a 412
4ec06e46
CBW
413XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
414tests that had to be C<TODO>ed for the release would be noted here. Unfixed
415platform specific bugs also go here.
8f46363a 416
4ec06e46
CBW
417[ List each fix as an =item entry ]
418
419=over 4
244d2682 420
aa0c5741
Z
421=item *
422
4ec06e46 423XXX
aa0c5741 424
857320cb
Z
425=item *
426
427The bugfix for [perl #2754] in Perl 5.27.7 turned out to cause so much
428trouble on CPAN [perl #132577] that it is being postponed. The bug has
429been restored, so C<exit(0)> in a C<UNITCHECK> or C<CHECK> block now
430once again permits the main program to run, and C<exit(0)> in a C<BEGIN>
431block once again permits C<INIT> blocks to run before exiting. The bug
432will be fixed again for Perl 5.30.
433
25219f3f 434=back
4faa3060 435
4ec06e46 436=head1 Errata From Previous Releases
8abafd33 437
4ec06e46
CBW
438=over 4
439
440=item *
e6a2e5ca 441
4ec06e46
CBW
442XXX Add anything here that we forgot to add, or were mistaken about, in
443the perldelta of a previous release.
8abafd33 444
4ec06e46
CBW
445=back
446
447=head1 Obituary
b2e49ab9 448
4ec06e46
CBW
449XXX If any significant core contributor or member of the CPAN community has
450died, add a short obituary here.
060724e5 451
4ec06e46 452=head1 Acknowledgements
060724e5 453
4ec06e46 454XXX Generate this with:
060724e5 455
4ec06e46 456 perl Porting/acknowledgements.pl v5.27.7..HEAD
f5b73711 457
44691e6f
AB
458=head1 Reporting Bugs
459
b5cbfe35
S
460If you find what you think is a bug, you might check the perl bug database
461at L<https://rt.perl.org/> . There may also be information at
462L<http://www.perl.org/> , the Perl Home Page.
44691e6f 463
e08634c5
SH
464If you believe you have an unreported bug, please run the L<perlbug> program
465included with your release. Be sure to trim your bug down to a tiny but
466sufficient test case. Your bug report, along with the output of C<perl -V>,
b5cbfe35 467will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f 468
87c118b9
DM
469If the bug you are reporting has security implications which make it
470inappropriate to send to a publicly archived mailing list, then see
c0ea3294
SH
471L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
472for details of how to report the issue.
44691e6f 473
390ae6f9
S
474=head1 Give Thanks
475
476If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
477you can do so by running the C<perlthanks> program:
478
479 perlthanks
480
481This will send an email to the Perl 5 Porters list with your show of thanks.
482
44691e6f
AB
483=head1 SEE ALSO
484
e08634c5
SH
485The F<Changes> file for an explanation of how to view exhaustive details on
486what changed.
44691e6f
AB
487
488The F<INSTALL> file for how to build Perl.
489
490The F<README> file for general stuff.
491
492The F<Artistic> and F<Copying> files for copyright information.
493
494=cut