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