Commit | Line | Data |
---|---|---|
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 |
6 | to be processed before release. ] | |
7 | ||
8 | perldelta - what is new for perl v5.29.9 | |
e4c43fa1 | 9 | |
4026b091 S |
10 | =head1 DESCRIPTION |
11 | ||
0e18d1c4 | 12 | This document describes differences between the 5.29.8 release and the 5.29.9 |
4026b091 S |
13 | release. |
14 | ||
0e18d1c4 N |
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. | |
e0f0cf8a | 17 | |
65c75f8f | 18 | =head1 Notice |
0ce66d44 | 19 | |
0e18d1c4 | 20 | XXX Any important notices here |
5203d63d | 21 | |
65c75f8f | 22 | =head1 Core Enhancements |
21d34e95 | 23 | |
0e18d1c4 N |
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. | |
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 |
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 | ||
7b738cd3 KW |
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 | ||
44289c0b KW |
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 | ||
0e18d1c4 | 64 | =head1 Security |
0c8d0e83 | 65 | |
0e18d1c4 N |
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. | |
72b2b1d9 | 69 | |
0e18d1c4 | 70 | [ List each security issue as a =head2 entry ] |
72b2b1d9 | 71 | |
65c75f8f | 72 | =head1 Incompatible Changes |
1ab3a811 | 73 | |
0e18d1c4 | 74 | XXX 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 | ||
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 | ||
0e18d1c4 | 88 | =head1 Deprecations |
3e52c030 | 89 | |
0e18d1c4 | 90 | XXX Any deprecated features, syntax, modules etc. should be listed here. |
3e52c030 | 91 | |
0e18d1c4 | 92 | =head2 Module removals |
3e52c030 | 93 | |
0e18d1c4 | 94 | XXX Remove this section if not applicable. |
3e52c030 | 95 | |
0e18d1c4 N |
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. | |
3e52c030 | 100 | |
0e18d1c4 N |
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. | |
3e52c030 | 104 | |
0e18d1c4 N |
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. | |
3e52c030 | 109 | |
0e18d1c4 | 110 | =over |
3e52c030 | 111 | |
0e18d1c4 | 112 | =item XXX |
3e52c030 | 113 | |
0e18d1c4 N |
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. | |
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 |
123 | XXX Changes which enhance performance without changing behaviour go here. |
124 | There 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 | 132 | XXX |
423dbb1d | 133 | |
0e18d1c4 | 134 | =back |
423dbb1d | 135 | |
0e18d1c4 | 136 | =head1 Modules and Pragmata |
7b97bf55 | 137 | |
0e18d1c4 N |
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. | |
7b97bf55 | 143 | |
0e18d1c4 N |
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.) | |
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 | 158 | XXX 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 |
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 | ||
165066ca | 175 | L<PerlIO::encoding> has been upgraded from version 0.26 to 0.27. |
423dbb1d | 176 | |
165066ca TC |
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>. | |
0e18d1c4 | 180 | |
ff736663 TC |
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 | ||
0e18d1c4 | 188 | =back |
423dbb1d | 189 | |
0e18d1c4 N |
190 | =head2 Removed Modules and Pragmata |
191 | ||
192 | =over 4 | |
d9ed9e94 N |
193 | |
194 | =item * | |
195 | ||
0e18d1c4 | 196 | XXX |
3e52c030 | 197 | |
4234ac96 AC |
198 | =back |
199 | ||
15f62f05 | 200 | =head1 Documentation |
4234ac96 | 201 | |
0e18d1c4 N |
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 | ||
15f62f05 | 213 | =head2 Changes to Existing Documentation |
4234ac96 | 214 | |
15f62f05 KE |
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>. | |
4234ac96 | 218 | |
0e18d1c4 N |
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 | ||
15f62f05 KE |
223 | Additionally, 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 | 231 | XXX Description of the change here |
0deccbc4 A |
232 | |
233 | =back | |
0ce66d44 | 234 | |
0e18d1c4 N |
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 | |
65c75f8f A |
250 | |
251 | =over 4 | |
252 | ||
253 | =item * | |
254 | ||
0e18d1c4 | 255 | XXX 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 | 265 | XXX L<message|perldiag/"message"> |
65c75f8f A |
266 | |
267 | =back | |
268 | ||
9e8e4a84 | 269 | =head2 Changes to Existing Diagnostics |
65c75f8f | 270 | |
0e18d1c4 N |
271 | XXX Changes (i.e. rewording) of diagnostic messages go here |
272 | ||
4380f76d KE |
273 | =over 4 |
274 | ||
275 | =item * | |
276 | ||
0e18d1c4 | 277 | XXX Describe change here |
65c75f8f A |
278 | |
279 | =back | |
280 | ||
0e18d1c4 N |
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> | |
65c75f8f A |
291 | |
292 | =over 4 | |
293 | ||
294 | =item * | |
295 | ||
0e18d1c4 | 296 | XXX |
65c75f8f | 297 | |
0e18d1c4 | 298 | =back |
65c75f8f | 299 | |
0e18d1c4 | 300 | =head1 Configuration and Compilation |
0ce66d44 | 301 | |
0e18d1c4 N |
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. | |
4234ac96 | 306 | |
0e18d1c4 N |
307 | [ List changes as an =item entry ]. |
308 | ||
309 | =over 4 | |
4234ac96 | 310 | |
423dbb1d | 311 | =item * |
65c75f8f | 312 | |
0e18d1c4 | 313 | XXX |
65c75f8f | 314 | |
423dbb1d | 315 | =back |
65c75f8f | 316 | |
423dbb1d | 317 | =head1 Testing |
65c75f8f | 318 | |
0e18d1c4 N |
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 | ||
4380f76d KE |
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 | ||
0e18d1c4 N |
336 | [ List each test improvement as an =item entry ] |
337 | ||
4380f76d KE |
338 | =over 4 |
339 | ||
340 | =item * | |
341 | ||
0e18d1c4 | 342 | XXX |
9e8e4a84 | 343 | |
0e18d1c4 | 344 | =back |
9e8e4a84 | 345 | |
0e18d1c4 | 346 | =head1 Platform Support |
9e8e4a84 | 347 | |
0e18d1c4 | 348 | XXX 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 |
351 | changes as paragraphs below it. ] | |
65c75f8f | 352 | |
0e18d1c4 | 353 | =head2 New Platforms |
65c75f8f | 354 | |
0e18d1c4 N |
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. | |
65c75f8f | 359 | |
65c75f8f A |
360 | =over 4 |
361 | ||
0e18d1c4 | 362 | =item XXX-some-platform |
65c75f8f | 363 | |
0e18d1c4 | 364 | XXX |
65c75f8f A |
365 | |
366 | =back | |
367 | ||
0e18d1c4 N |
368 | =head2 Discontinued Platforms |
369 | ||
370 | XXX 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 | 376 | XXX |
20ccb10a | 377 | |
e0f0cf8a | 378 | =back |
20ccb10a | 379 | |
0e18d1c4 | 380 | =head2 Platform-Specific Notes |
0ce66d44 | 381 | |
0e18d1c4 N |
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. | |
b20a43d7 | 386 | |
0e18d1c4 | 387 | =over 4 |
0ce66d44 | 388 | |
0e18d1c4 | 389 | =item XXX-some-platform |
65c75f8f | 390 | |
0e18d1c4 | 391 | XXX |
0ce66d44 | 392 | |
0e18d1c4 | 393 | =back |
ff2d4c11 | 394 | |
0e18d1c4 | 395 | =head1 Internal Changes |
0ce66d44 | 396 | |
0e18d1c4 N |
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. | |
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 |
407 | Added C<newSVsv_nomg()> to copy a SV without processing get magic on |
408 | the source. [perl #132964] | |
73b95840 | 409 | |
0e18d1c4 | 410 | =back |
73b95840 | 411 | |
0e18d1c4 | 412 | =head1 Selected Bug Fixes |
73b95840 | 413 | |
0e18d1c4 N |
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>. | |
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 |
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] | |
73b95840 | 426 | |
0e18d1c4 | 427 | =back |
73b95840 | 428 | |
0e18d1c4 | 429 | =head1 Known Problems |
73b95840 | 430 | |
0e18d1c4 N |
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. | |
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 | 441 | XXX |
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 |
451 | XXX Add anything here that we forgot to add, or were mistaken about, in |
452 | the perldelta of a previous release. | |
98265db1 | 453 | |
65c75f8f | 454 | =back |
1c0558a0 | 455 | |
0e18d1c4 | 456 | =head1 Obituary |
423dbb1d | 457 | |
0e18d1c4 N |
458 | XXX If any significant core contributor or member of the CPAN community has |
459 | died, add a short obituary here. | |
423dbb1d | 460 | |
0e18d1c4 | 461 | =head1 Acknowledgements |
423dbb1d | 462 | |
0e18d1c4 | 463 | XXX 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 | 469 | If you find what you think is a bug, you might check the perl bug database |
15f62f05 KE |
470 | at L<https://rt.perl.org/>. There may also be information at |
471 | L<http://www.perl.org/>, the Perl Home Page. | |
44691e6f | 472 | |
e08634c5 SH |
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>, | |
0e18d1c4 | 476 | will be sent off to perlbug@perl.org to be analysed by the Perl porting team. |
44691e6f | 477 | |
87c118b9 DM |
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 | |
373fec1e SH |
480 | L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> |
481 | for details of how to report the issue. | |
44691e6f | 482 | |
390ae6f9 S |
483 | =head1 Give Thanks |
484 | ||
373fec1e SH |
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: | |
390ae6f9 S |
487 | |
488 | perlthanks | |
489 | ||
490 | This 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 |
494 | The F<Changes> file for an explanation of how to view exhaustive details on |
495 | what changed. | |
44691e6f AB |
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 |