This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Add Unicode property wildcards
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
0e18d1c4
N
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.29.9
e4c43fa1 9
4026b091
S
10=head1 DESCRIPTION
11
0e18d1c4 12This document describes differences between the 5.29.8 release and the 5.29.9
4026b091
S
13release.
14
0e18d1c4
N
15If you are upgrading from an earlier release such as 5.29.7, first read
16L<perl5298delta>, which describes differences between 5.29.7 and 5.29.8.
e0f0cf8a 17
65c75f8f 18=head1 Notice
0ce66d44 19
0e18d1c4 20XXX Any important notices here
5203d63d 21
65c75f8f 22=head1 Core Enhancements
21d34e95 23
0e18d1c4
N
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.
4234ac96 27
0e18d1c4 28[ List each enhancement as a =head2 entry ]
0c8d0e83 29
1532347b
KW
30=head2 Wildcards in Unicode property value specifications are now
31partially supported
32
33You can now do something like this in a regular expression pattern
34
35 qr! \p{nv= /(?x) \A [0-5] \z / }!
36
37which matches all Unicode code points which have numeric value is
38between 0 and 5 inclusive.
39
40This marks another step in implementing the regular expression features
41the Unicode Consortium suggests.
42
43Most properties are supported, with the remainder planned for 5.32.
44Details are in L<perlunicode/Wildcards in Property Values>.
45
7b738cd3
KW
46=head2 Unicode 12.0 is supported
47
48For details, see L<https://www.unicode.org/versions/Unicode12.0.0/>.
49
50Because of a change in Unicode release cycles, Perl jumps from Unicode
5110.0 in Perl 5.28 to Unicode 12.0 in Perl 5.30.
52
44289c0b
KW
53=head2 It is now possible to compile perl to always use thread-safe
54locale operations.
55
56Previously, these calls were only used when the perl was compiled to be
57multi-threaded. To always enable them, add
58
59 -Accflags='-DUSE_THREAD_SAFE_LOCALE'
60
61to your F<Configure> flags.
62
63
0e18d1c4 64=head1 Security
0c8d0e83 65
0e18d1c4
N
66XXX Any security-related notices go here. In particular, any security
67vulnerabilities closed should be noted here rather than in the
68L</Selected Bug Fixes> section.
72b2b1d9 69
0e18d1c4 70[ List each security issue as a =head2 entry ]
72b2b1d9 71
65c75f8f 72=head1 Incompatible Changes
1ab3a811 73
0e18d1c4 74XXX For a release on a stable branch, this section aspires to be:
7b97bf55 75
0e18d1c4
N
76 There are no changes intentionally incompatible with 5.XXX.XXX
77 If any exist, they are bugs, and we request that you submit a
78 report. See L</Reporting Bugs> below.
3e52c030 79
0e18d1c4 80[ List each incompatible change as a =head2 entry ]
65c75f8f 81
b5e20476
KW
82=head2 C<pack()> no longer can return malformed UTF-8
83
84It croaks if it would otherwise return a UTF-8 string that contains
85malformed UTF-8. This protects agains potential security threats. This
86is considered a bug fix as well ([perl #131642]).
87
0e18d1c4 88=head1 Deprecations
3e52c030 89
0e18d1c4 90XXX Any deprecated features, syntax, modules etc. should be listed here.
3e52c030 91
0e18d1c4 92=head2 Module removals
3e52c030 93
0e18d1c4 94XXX Remove this section if not applicable.
3e52c030 95
0e18d1c4
N
96The following modules will be removed from the core distribution in a
97future release, and will at that time need to be installed from CPAN.
98Distributions on CPAN which require these modules will need to list them as
99prerequisites.
3e52c030 100
0e18d1c4
N
101The core versions of these modules will now issue C<"deprecated">-category
102warnings to alert you to this fact. To silence these deprecation warnings,
103install the modules in question from CPAN.
3e52c030 104
0e18d1c4
N
105Note that these are (with rare exceptions) fine modules that you are encouraged
106to continue to use. Their disinclusion from core primarily hinges on their
107necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
108not usually on concerns over their design.
3e52c030 109
0e18d1c4 110=over
3e52c030 111
0e18d1c4 112=item XXX
3e52c030 113
0e18d1c4
N
114XXX Note that deprecated modules should be listed here even if they are listed
115as an updated module in the L</Modules and Pragmata> section.
423dbb1d 116
0e18d1c4 117=back
423dbb1d 118
0e18d1c4 119[ List each other deprecation as a =head2 entry ]
ca8b93af 120
0e18d1c4 121=head1 Performance Enhancements
ca8b93af 122
0e18d1c4
N
123XXX Changes which enhance performance without changing behaviour go here.
124There may well be none in a stable release.
7b97bf55 125
0e18d1c4 126[ List each enhancement as an =item entry ]
d9ed9e94 127
0e18d1c4 128=over 4
423dbb1d
N
129
130=item *
131
0e18d1c4 132XXX
423dbb1d 133
0e18d1c4 134=back
423dbb1d 135
0e18d1c4 136=head1 Modules and Pragmata
7b97bf55 137
0e18d1c4
N
138XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
139go here. If Module::CoreList is updated, generate an initial draft of the
140following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
141for important changes should then be added by hand. In an ideal world,
142dual-life modules would have a F<Changes> file that could be cribbed.
7b97bf55 143
0e18d1c4
N
144The list of new and updated modules is modified automatically as part of
145preparing a Perl release, so the only reason to manually add entries here is if
146you're summarising the important changes in the module update. (Also, if the
147manually-added details don't match the automatically-generated ones, the
148release manager will have to investigate the situation carefully.)
7b97bf55 149
0e18d1c4 150[ Within each section, list entries as an =item entry ]
7b97bf55 151
0e18d1c4 152=head2 New Modules and Pragmata
7b97bf55 153
0e18d1c4 154=over 4
65c75f8f 155
d9ed9e94 156=item *
65c75f8f 157
0e18d1c4 158XXX Remove this section if not applicable.
65c75f8f 159
0e18d1c4 160=back
65c75f8f 161
0e18d1c4
N
162=head2 Updated Modules and Pragmata
163
164=over 4
3e52c030
A
165
166=item *
167
ff736663
TC
168L<perl5db.pl> has been upgraded from version 1.54 to 1.55.
169
170Debugging threaded code no longer deadlocks in C<DB::sub> nor
171C<DB::lsub>.
172
173=item *
174
165066ca 175L<PerlIO::encoding> has been upgraded from version 0.26 to 0.27.
423dbb1d 176
165066ca
TC
177Warnings enabled by setting the C<WARN_ON_ERR> flag in
178C<$PerlIO::encoding::fallback> are now only produced if warnings are
179enabled with C<use warnings "utf8";> or setting C<$^W>.
0e18d1c4 180
ff736663
TC
181=item *
182
183L<threads::shared> has been upgraded from version 1.59 to 1.60.
184
185Added support for extra tracing of locking, this requires a
186C<-DDEBUGGING> and extra compilation flags.
187
0e18d1c4 188=back
423dbb1d 189
0e18d1c4
N
190=head2 Removed Modules and Pragmata
191
192=over 4
d9ed9e94
N
193
194=item *
195
0e18d1c4 196XXX
3e52c030 197
4234ac96
AC
198=back
199
15f62f05 200=head1 Documentation
4234ac96 201
0e18d1c4
N
202XXX Changes to files in F<pod/> go here. Consider grouping entries by
203file and be sure to link to the appropriate page, e.g. L<perlfunc>.
204
205=head2 New Documentation
206
207XXX Changes which create B<new> files in F<pod/> go here.
208
209=head3 L<XXX>
210
211XXX Description of the purpose of the new file here
212
15f62f05 213=head2 Changes to Existing Documentation
4234ac96 214
15f62f05
KE
215We have attempted to update the documentation to reflect the changes
216listed in this document. If you find any we have missed, send email
217to L<perlbug@perl.org|mailto:perlbug@perl.org>.
4234ac96 218
0e18d1c4
N
219XXX Changes which significantly change existing files in F<pod/> go here.
220However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
221section.
222
15f62f05
KE
223Additionally, the following selected changes have been made:
224
0e18d1c4 225=head3 L<XXX>
0ce66d44
A
226
227=over 4
228
0deccbc4
A
229=item *
230
0e18d1c4 231XXX Description of the change here
0deccbc4
A
232
233=back
0ce66d44 234
0e18d1c4
N
235=head1 Diagnostics
236
237The following additions or changes have been made to diagnostic output,
238including warnings and fatal error messages. For the complete list of
239diagnostic messages, see L<perldiag>.
240
241XXX New or changed warnings emitted by the core's C<C> code go here. Also
242include any changes in L<perldiag> that reconcile it to the C<C> code.
243
244=head2 New Diagnostics
245
246XXX Newly added diagnostic messages go under here, separated into New Errors
247and New Warnings
248
249=head3 New Errors
65c75f8f
A
250
251=over 4
252
253=item *
254
0e18d1c4 255XXX L<message|perldiag/"message">
65c75f8f
A
256
257=back
258
0e18d1c4 259=head3 New Warnings
65c75f8f
A
260
261=over 4
262
263=item *
264
0e18d1c4 265XXX L<message|perldiag/"message">
65c75f8f
A
266
267=back
268
9e8e4a84 269=head2 Changes to Existing Diagnostics
65c75f8f 270
0e18d1c4
N
271XXX Changes (i.e. rewording) of diagnostic messages go here
272
4380f76d
KE
273=over 4
274
275=item *
276
0e18d1c4 277XXX Describe change here
65c75f8f
A
278
279=back
280
0e18d1c4
N
281=head1 Utility Changes
282
283XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
284Most of these are built within the directory F<utils>.
285
286[ List utility changes as a =head2 entry for each utility and =item
287entries for each change
288Use L<XXX> with program names to get proper documentation linking. ]
289
290=head2 L<XXX>
65c75f8f
A
291
292=over 4
293
294=item *
295
0e18d1c4 296XXX
65c75f8f 297
0e18d1c4 298=back
65c75f8f 299
0e18d1c4 300=head1 Configuration and Compilation
0ce66d44 301
0e18d1c4
N
302XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
303go here. Any other changes to the Perl build process should be listed here.
304However, any platform-specific changes should be listed in the
305L</Platform Support> section, instead.
4234ac96 306
0e18d1c4
N
307[ List changes as an =item entry ].
308
309=over 4
4234ac96 310
423dbb1d 311=item *
65c75f8f 312
0e18d1c4 313XXX
65c75f8f 314
423dbb1d 315=back
65c75f8f 316
423dbb1d 317=head1 Testing
65c75f8f 318
0e18d1c4
N
319XXX Any significant changes to the testing of a freshly built perl should be
320listed here. Changes which create B<new> files in F<t/> go here as do any
321large changes to the testing harness (e.g. when parallel testing was added).
322Changes to existing files in F<t/> aren't worth summarizing, although the bugs
323that they represent may be covered elsewhere.
324
325XXX If there were no significant test changes, say this:
326
327Tests were added and changed to reflect the other additions and changes
328in this release.
329
330XXX If instead there were significant changes, say this:
331
4380f76d
KE
332Tests were added and changed to reflect the other additions and
333changes in this release. Furthermore, these significant changes were
334made:
335
0e18d1c4
N
336[ List each test improvement as an =item entry ]
337
4380f76d
KE
338=over 4
339
340=item *
341
0e18d1c4 342XXX
9e8e4a84 343
0e18d1c4 344=back
9e8e4a84 345
0e18d1c4 346=head1 Platform Support
9e8e4a84 347
0e18d1c4 348XXX Any changes to platform support should be listed in the sections below.
9e8e4a84 349
0e18d1c4
N
350[ Within the sections, list each platform as an =item entry with specific
351changes as paragraphs below it. ]
65c75f8f 352
0e18d1c4 353=head2 New Platforms
65c75f8f 354
0e18d1c4
N
355XXX List any platforms that this version of perl compiles on, that previous
356versions did not. These will either be enabled by new files in the F<hints/>
357directories, or new subdirectories and F<README> files at the top level of the
358source tree.
65c75f8f 359
65c75f8f
A
360=over 4
361
0e18d1c4 362=item XXX-some-platform
65c75f8f 363
0e18d1c4 364XXX
65c75f8f
A
365
366=back
367
0e18d1c4
N
368=head2 Discontinued Platforms
369
370XXX List any platforms that this version of perl no longer compiles on.
65c75f8f 371
65c75f8f 372=over 4
4380f76d 373
0e18d1c4 374=item XXX-some-platform
ea89b333 375
0e18d1c4 376XXX
20ccb10a 377
e0f0cf8a 378=back
20ccb10a 379
0e18d1c4 380=head2 Platform-Specific Notes
0ce66d44 381
0e18d1c4
N
382XXX List any changes for specific platforms. This could include configuration
383and compilation changes or changes in portability/compatibility. However,
384changes within modules for platforms should generally be listed in the
385L</Modules and Pragmata> section.
b20a43d7 386
0e18d1c4 387=over 4
0ce66d44 388
0e18d1c4 389=item XXX-some-platform
65c75f8f 390
0e18d1c4 391XXX
0ce66d44 392
0e18d1c4 393=back
ff2d4c11 394
0e18d1c4 395=head1 Internal Changes
0ce66d44 396
0e18d1c4
N
397XXX Changes which affect the interface available to C<XS> code go here. Other
398significant internal changes for future core maintainers should be noted as
399well.
990f9aa0 400
0e18d1c4 401[ List each change as an =item entry ]
65c75f8f 402
0e18d1c4 403=over 4
990f9aa0 404
73b95840
KW
405=item *
406
2debb4dc
TC
407Added C<newSVsv_nomg()> to copy a SV without processing get magic on
408the source. [perl #132964]
73b95840 409
0e18d1c4 410=back
73b95840 411
0e18d1c4 412=head1 Selected Bug Fixes
73b95840 413
0e18d1c4
N
414XXX Important bug fixes in the core language are summarized here. Bug fixes in
415files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
73b95840 416
0e18d1c4 417[ List each fix as an =item entry ]
73b95840 418
0e18d1c4 419=over 4
73b95840 420
0e18d1c4 421=item *
73b95840 422
b5e20476
KW
423C<pack()> no longer can return malformed UTF-8. It croaks if it would
424otherwise return a UTF-8 string that contains malformed UTF-8. This
425protects agains potential security threats. [perl #131642]
73b95840 426
0e18d1c4 427=back
73b95840 428
0e18d1c4 429=head1 Known Problems
73b95840 430
0e18d1c4
N
431XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
432tests that had to be C<TODO>ed for the release would be noted here. Unfixed
433platform specific bugs also go here.
73b95840 434
0e18d1c4 435[ List each fix as an =item entry ]
73b95840 436
0e18d1c4 437=over 4
73b95840 438
0e18d1c4 439=item *
73b95840 440
0e18d1c4 441XXX
73b95840
KW
442
443=back
444
0e18d1c4 445=head1 Errata From Previous Releases
75451d8c 446
0e18d1c4 447=over 4
75451d8c 448
0e18d1c4 449=item *
98265db1 450
0e18d1c4
N
451XXX Add anything here that we forgot to add, or were mistaken about, in
452the perldelta of a previous release.
98265db1 453
65c75f8f 454=back
1c0558a0 455
0e18d1c4 456=head1 Obituary
423dbb1d 457
0e18d1c4
N
458XXX If any significant core contributor or member of the CPAN community has
459died, add a short obituary here.
423dbb1d 460
0e18d1c4 461=head1 Acknowledgements
423dbb1d 462
0e18d1c4 463XXX Generate this with:
1c0558a0 464
0e18d1c4 465 perl Porting/acknowledgements.pl v5.29.8..HEAD
f5b73711 466
44691e6f
AB
467=head1 Reporting Bugs
468
373fec1e 469If you find what you think is a bug, you might check the perl bug database
15f62f05
KE
470at L<https://rt.perl.org/>. There may also be information at
471L<http://www.perl.org/>, the Perl Home Page.
44691e6f 472
e08634c5
SH
473If you believe you have an unreported bug, please run the L<perlbug> program
474included with your release. Be sure to trim your bug down to a tiny but
475sufficient test case. Your bug report, along with the output of C<perl -V>,
0e18d1c4 476will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f 477
87c118b9
DM
478If the bug you are reporting has security implications which make it
479inappropriate to send to a publicly archived mailing list, then see
373fec1e
SH
480L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
481for details of how to report the issue.
44691e6f 482
390ae6f9
S
483=head1 Give Thanks
484
373fec1e
SH
485If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
486you can do so by running the C<perlthanks> program:
390ae6f9
S
487
488 perlthanks
489
490This will send an email to the Perl 5 Porters list with your show of thanks.
491
44691e6f
AB
492=head1 SEE ALSO
493
e08634c5
SH
494The F<Changes> file for an explanation of how to view exhaustive details on
495what changed.
44691e6f
AB
496
497The F<INSTALL> file for how to build Perl.
498
499The F<README> file for general stuff.
500
501The F<Artistic> and F<Copying> files for copyright information.
502
503=cut