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