Commit | Line | Data |
---|---|---|
44691e6f AB |
1 | =encoding utf8 |
2 | ||
3 | =head1 NAME | |
4 | ||
b5d4d3b9 MM |
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.21.8 | |
c68523cb | 9 | |
238894db | 10 | =head1 DESCRIPTION |
c68523cb | 11 | |
b5d4d3b9 | 12 | This document describes differences between the 5.21.7 release and the 5.21.8 |
238894db | 13 | release. |
c68523cb | 14 | |
b5d4d3b9 MM |
15 | If you are upgrading from an earlier release such as 5.21.6, first read |
16 | L<perl5217delta>, which describes differences between 5.21.6 and 5.21.7. | |
2ec11c70 | 17 | |
b5d4d3b9 | 18 | =head1 Notice |
2ec11c70 | 19 | |
b5d4d3b9 | 20 | XXX Any important notices here |
67f2cc75 | 21 | |
b5d4d3b9 | 22 | =head1 Core Enhancements |
67f2cc75 | 23 | |
b5d4d3b9 MM |
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. | |
67f2cc75 | 27 | |
b5d4d3b9 | 28 | [ List each enhancement as a =head2 entry ] |
295f7815 | 29 | |
ea5519d6 AB |
30 | =head2 The warnings pragma now supports warnings outside of "all" |
31 | ||
32 | Ever since perl v5.6.0 we've had no way of adding new warnings without | |
33 | retroactively adding them to all existing programs that used C<-w>, | |
34 | C<-W> or C<use warnings>. | |
35 | ||
36 | This caused us to not add new useful warnings out of fear that they | |
37 | might unduly burden users who just wanted to upgrade perl and didn't | |
38 | want to deal with a bunch of warnings from their existing code. | |
39 | ||
40 | We now support a way to have our cake and eat it too, and can add new | |
41 | warnings to the core going forward through other top-level warning | |
42 | categories. See L<the warnings documentation|warnings/Top-level | |
43 | warning categories & associated confusion> for details. | |
44 | ||
25941dca MH |
45 | =head2 Non-Capturing Regular Expression Flag |
46 | ||
47 | Regular expressions now support a C</n> flag that disables capturing | |
48 | and filling in C<$1>, C<$2>, etc... inside of groups: | |
49 | ||
50 | "hello" =~ /(hi|hello)/n; # $1 is not set | |
51 | ||
52 | This is equivalent to putting C<?:> at the beginning of every capturing group. | |
53 | ||
54 | See L<perlre/"n"> for more information. | |
55 | ||
b5d4d3b9 | 56 | =head1 Security |
3f22ed99 | 57 | |
b5d4d3b9 MM |
58 | XXX Any security-related notices go here. In particular, any security |
59 | vulnerabilities closed should be noted here rather than in the | |
60 | L</Selected Bug Fixes> section. | |
3f22ed99 | 61 | |
b5d4d3b9 | 62 | [ List each security issue as a =head2 entry ] |
aafa61ee | 63 | |
b5d4d3b9 | 64 | =head1 Incompatible Changes |
ef8784b7 | 65 | |
b5d4d3b9 | 66 | XXX For a release on a stable branch, this section aspires to be: |
ef8784b7 | 67 | |
b5d4d3b9 MM |
68 | There are no changes intentionally incompatible with 5.XXX.XXX |
69 | If any exist, they are bugs, and we request that you submit a | |
70 | report. See L</Reporting Bugs> below. | |
0a7766ab | 71 | |
b5d4d3b9 | 72 | [ List each incompatible change as a =head2 entry ] |
0a7766ab | 73 | |
4dc623f0 | 74 | =head1 Deprecations |
5b306eef | 75 | |
b5d4d3b9 | 76 | XXX Any deprecated features, syntax, modules etc. should be listed here. |
c0659f73 | 77 | |
b5d4d3b9 | 78 | =head2 Module removals |
c0659f73 | 79 | |
b5d4d3b9 | 80 | XXX Remove this section if inapplicable. |
6ed80d55 | 81 | |
b5d4d3b9 MM |
82 | The following modules will be removed from the core distribution in a |
83 | future release, and will at that time need to be installed from CPAN. | |
84 | Distributions on CPAN which require these modules will need to list them as | |
85 | prerequisites. | |
6ed80d55 | 86 | |
b5d4d3b9 MM |
87 | The core versions of these modules will now issue C<"deprecated">-category |
88 | warnings to alert you to this fact. To silence these deprecation warnings, | |
89 | install the modules in question from CPAN. | |
6ed80d55 | 90 | |
b5d4d3b9 MM |
91 | Note that these are (with rare exceptions) fine modules that you are encouraged |
92 | to continue to use. Their disinclusion from core primarily hinges on their | |
93 | necessity to bootstrapping a fully functional, CPAN-capable Perl installation, | |
94 | not usually on concerns over their design. | |
6ed80d55 | 95 | |
b5d4d3b9 | 96 | =over |
bb6a367a | 97 | |
b5d4d3b9 | 98 | =item XXX |
6ed80d55 | 99 | |
b5d4d3b9 MM |
100 | XXX Note that deprecated modules should be listed here even if they are listed |
101 | as an updated module in the L</Modules and Pragmata> section. | |
f348c3d8 | 102 | |
b5d4d3b9 | 103 | =back |
7635ad4d | 104 | |
b5d4d3b9 | 105 | [ List each other deprecation as a =head2 entry ] |
7635ad4d | 106 | |
b5d4d3b9 | 107 | =head1 Performance Enhancements |
7635ad4d | 108 | |
b5d4d3b9 MM |
109 | XXX Changes which enhance performance without changing behaviour go here. |
110 | There may well be none in a stable release. | |
60dde9d3 | 111 | |
b5d4d3b9 | 112 | [ List each enhancement as a =item entry ] |
60dde9d3 | 113 | |
b5d4d3b9 | 114 | =over 4 |
f348c3d8 | 115 | |
6ed80d55 | 116 | =item * |
f348c3d8 | 117 | |
b5d4d3b9 | 118 | XXX |
cd3802ac | 119 | |
b5d4d3b9 | 120 | =back |
cd3802ac | 121 | |
b5d4d3b9 | 122 | =head1 Modules and Pragmata |
d6c13051 | 123 | |
b5d4d3b9 MM |
124 | XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/> |
125 | go here. If Module::CoreList is updated, generate an initial draft of the | |
126 | following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary | |
127 | for important changes should then be added by hand. In an ideal world, | |
128 | dual-life modules would have a F<Changes> file that could be cribbed. | |
02a0bddf | 129 | |
b5d4d3b9 | 130 | [ Within each section, list entries as a =item entry ] |
128f4e12 | 131 | |
b5d4d3b9 | 132 | =head2 New Modules and Pragmata |
cd3802ac | 133 | |
b5d4d3b9 | 134 | =over 4 |
60dde9d3 MM |
135 | |
136 | =item * | |
137 | ||
b5d4d3b9 | 138 | XXX |
3aba4f3d | 139 | |
b5d4d3b9 | 140 | =back |
af292847 | 141 | |
b5d4d3b9 | 142 | =head2 Updated Modules and Pragmata |
190f5bb6 | 143 | |
b5d4d3b9 | 144 | =over 4 |
b045b8b5 TC |
145 | |
146 | =item * | |
147 | ||
b5d4d3b9 | 148 | L<XXX> has been upgraded from version A.xx to B.yy. |
190f5bb6 | 149 | |
a462fa00 DD |
150 | =item * |
151 | ||
152 | L<B> has been upgraded from version 1.54 to 1.55. | |
153 | ||
154 | A bug where, after an ithread creation or psuedofork, special/immortal SVs in | |
155 | the child ithread/psuedoprocess did not have the correct class of | |
156 | C<B::SPECIAL>, has been fixed. | |
157 | ||
b5d4d3b9 | 158 | =back |
ba31029d | 159 | |
b5d4d3b9 | 160 | =head2 Removed Modules and Pragmata |
b045b8b5 | 161 | |
b5d4d3b9 | 162 | =over 4 |
aa67537d | 163 | |
4c7a0d98 DD |
164 | =item * |
165 | ||
b5d4d3b9 | 166 | XXX |
4c7a0d98 | 167 | |
b5d4d3b9 | 168 | =back |
4c7a0d98 | 169 | |
b5d4d3b9 | 170 | =head1 Documentation |
f4eedc6b | 171 | |
b5d4d3b9 MM |
172 | XXX Changes to files in F<pod/> go here. Consider grouping entries by |
173 | file and be sure to link to the appropriate page, e.g. L<perlfunc>. | |
f4eedc6b | 174 | |
b5d4d3b9 | 175 | =head2 New Documentation |
6ed80d55 | 176 | |
b5d4d3b9 | 177 | XXX Changes which create B<new> files in F<pod/> go here. |
f348c3d8 | 178 | |
b5d4d3b9 | 179 | =head3 L<XXX> |
f348c3d8 | 180 | |
b5d4d3b9 | 181 | XXX Description of the purpose of the new file here |
f348c3d8 | 182 | |
b5d4d3b9 | 183 | =head2 Changes to Existing Documentation |
f348c3d8 | 184 | |
b5d4d3b9 MM |
185 | XXX Changes which significantly change existing files in F<pod/> go here. |
186 | However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics> | |
187 | section. | |
f348c3d8 | 188 | |
b5d4d3b9 | 189 | =head3 L<XXX> |
f348c3d8 | 190 | |
b5d4d3b9 | 191 | =over 4 |
6ed80d55 | 192 | |
60dde9d3 | 193 | =item * |
f348c3d8 | 194 | |
b5d4d3b9 | 195 | XXX Description of the change here |
4dc623f0 | 196 | |
b5d4d3b9 | 197 | =back |
84d03adf | 198 | |
b5d4d3b9 | 199 | =head1 Diagnostics |
ff433f2d | 200 | |
b5d4d3b9 MM |
201 | The following additions or changes have been made to diagnostic output, |
202 | including warnings and fatal error messages. For the complete list of | |
203 | diagnostic messages, see L<perldiag>. | |
4cd408ba | 204 | |
b5d4d3b9 MM |
205 | XXX New or changed warnings emitted by the core's C<C> code go here. Also |
206 | include any changes in L<perldiag> that reconcile it to the C<C> code. | |
6ed80d55 | 207 | |
b5d4d3b9 | 208 | =head2 New Diagnostics |
6ed80d55 | 209 | |
b5d4d3b9 MM |
210 | XXX Newly added diagnostic messages go under here, separated into New Errors |
211 | and New Warnings | |
6ed80d55 | 212 | |
b5d4d3b9 | 213 | =head3 New Errors |
f348c3d8 | 214 | |
b5d4d3b9 | 215 | =over 4 |
ab0b796c | 216 | |
60dde9d3 | 217 | =item * |
8c6180a9 | 218 | |
b5d4d3b9 | 219 | XXX L<message|perldiag/"message"> |
8c6180a9 | 220 | |
b5d4d3b9 | 221 | =back |
0561e60b | 222 | |
b5d4d3b9 | 223 | =head3 New Warnings |
dd200dff | 224 | |
b5d4d3b9 | 225 | =over 4 |
dd200dff | 226 | |
73e793fc FC |
227 | =item * |
228 | ||
b5d4d3b9 | 229 | XXX L<message|perldiag/"message"> |
73e793fc | 230 | |
613abc6d KW |
231 | =item * |
232 | ||
233 | L<Wide character (U+%X) in %s|perldiag/"Wide character (U+%X) in %s"> | |
234 | ||
b5d4d3b9 | 235 | =back |
8c6180a9 | 236 | |
b5d4d3b9 | 237 | =head2 Changes to Existing Diagnostics |
0561e60b | 238 | |
b5d4d3b9 | 239 | XXX Changes (i.e. rewording) of diagnostic messages go here |
4a328228 | 240 | |
b5d4d3b9 | 241 | =over 4 |
4cd408ba | 242 | |
1861205d FC |
243 | =item * |
244 | ||
b5d4d3b9 | 245 | XXX Describe change here |
1861205d | 246 | |
780fcc9f KW |
247 | The message |
248 | L<Locale '%s' may not work well.%s|perldiag/"Locale '%s' may not work well.%s"> | |
249 | is no longer raised unless the problemtatic locale is actually used in | |
250 | the Perl program. Previously it was raised if it merely was the | |
251 | underlying locale. All Perl programs have an underlying locale at all | |
252 | times, but something like a C<S<use locale>> is needed for that locale | |
253 | to actually have some effect. This message will not be raised when | |
254 | the underlying locale is hidden. | |
255 | ||
b5d4d3b9 | 256 | =back |
40a81b59 | 257 | |
b5d4d3b9 | 258 | =head1 Utility Changes |
2a395b86 | 259 | |
b5d4d3b9 MM |
260 | XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here. |
261 | Most of these are built within the directory F<utils>. | |
2a395b86 | 262 | |
b5d4d3b9 MM |
263 | [ List utility changes as a =head2 entry for each utility and =item |
264 | entries for each change | |
265 | Use L<XXX> with program names to get proper documentation linking. ] | |
12d22d1f | 266 | |
b5d4d3b9 | 267 | =head2 L<XXX> |
2a395b86 | 268 | |
b5d4d3b9 | 269 | =over 4 |
2a395b86 PM |
270 | |
271 | =item * | |
272 | ||
b5d4d3b9 | 273 | XXX |
bb8c7e27 | 274 | |
b5d4d3b9 | 275 | =back |
bb8c7e27 | 276 | |
b5d4d3b9 | 277 | =head1 Configuration and Compilation |
bb8c7e27 | 278 | |
b5d4d3b9 MM |
279 | XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools |
280 | go here. Any other changes to the Perl build process should be listed here. | |
281 | However, any platform-specific changes should be listed in the | |
282 | L</Platform Support> section, instead. | |
aa292ef2 | 283 | |
b5d4d3b9 | 284 | [ List changes as a =item entry ]. |
83b69bfd | 285 | |
b5d4d3b9 | 286 | =over 4 |
83b69bfd DD |
287 | |
288 | =item * | |
289 | ||
b5d4d3b9 | 290 | XXX |
13adb056 | 291 | |
b5d4d3b9 | 292 | =back |
391823f2 | 293 | |
b5d4d3b9 | 294 | =head1 Testing |
6ff8f256 | 295 | |
b5d4d3b9 MM |
296 | XXX Any significant changes to the testing of a freshly built perl should be |
297 | listed here. Changes which create B<new> files in F<t/> go here as do any | |
298 | large changes to the testing harness (e.g. when parallel testing was added). | |
299 | Changes to existing files in F<t/> aren't worth summarizing, although the bugs | |
300 | that they represent may be covered elsewhere. | |
80cc3290 | 301 | |
b5d4d3b9 | 302 | [ List each test improvement as a =item entry ] |
60dde9d3 | 303 | |
b5d4d3b9 | 304 | =over 4 |
db98db4e | 305 | |
8818afe8 TC |
306 | =item * |
307 | ||
b5d4d3b9 | 308 | XXX |
9d22ccf6 | 309 | |
b5d4d3b9 | 310 | =back |
480961b6 | 311 | |
b5d4d3b9 | 312 | =head1 Platform Support |
480961b6 | 313 | |
b5d4d3b9 | 314 | XXX Any changes to platform support should be listed in the sections below. |
94c9bf90 | 315 | |
b5d4d3b9 MM |
316 | [ Within the sections, list each platform as a =item entry with specific |
317 | changes as paragraphs below it. ] | |
94c9bf90 | 318 | |
b5d4d3b9 | 319 | =head2 New Platforms |
8af808bf | 320 | |
b5d4d3b9 MM |
321 | XXX List any platforms that this version of perl compiles on, that previous |
322 | versions did not. These will either be enabled by new files in the F<hints/> | |
323 | directories, or new subdirectories and F<README> files at the top level of the | |
324 | source tree. | |
8af808bf | 325 | |
b5d4d3b9 | 326 | =over 4 |
fdcaecb7 | 327 | |
b5d4d3b9 | 328 | =item XXX-some-platform |
fdcaecb7 | 329 | |
b5d4d3b9 | 330 | XXX |
2af7c6b6 | 331 | |
4dc623f0 | 332 | =back |
2af7c6b6 | 333 | |
b5d4d3b9 | 334 | =head2 Discontinued Platforms |
60dde9d3 | 335 | |
b5d4d3b9 | 336 | XXX List any platforms that this version of perl no longer compiles on. |
c0b32823 | 337 | |
4dc623f0 | 338 | =over 4 |
b1a4e8b3 | 339 | |
b5d4d3b9 | 340 | =item XXX-some-platform |
b1a4e8b3 | 341 | |
b5d4d3b9 | 342 | XXX |
9e26817d | 343 | |
4dc623f0 | 344 | =back |
9e26817d | 345 | |
4dc623f0 | 346 | =head2 Platform-Specific Notes |
70cee83f | 347 | |
b5d4d3b9 MM |
348 | XXX List any changes for specific platforms. This could include configuration |
349 | and compilation changes or changes in portability/compatibility. However, | |
350 | changes within modules for platforms should generally be listed in the | |
351 | L</Modules and Pragmata> section. | |
70cee83f | 352 | |
b5d4d3b9 | 353 | =over 4 |
e5fbfbc1 | 354 | |
b4045391 | 355 | =item Win32 |
e5fbfbc1 | 356 | |
b4045391 DD |
357 | =over 4 |
358 | ||
359 | =item * | |
360 | ||
361 | Previously, on Visual C++ for Win64 built Perls only, when compiling every Perl | |
362 | XS module (including CPAN ones) and Perl aware .c file with a 64 bit Visual C++, | |
363 | would uncondtionally have around a dozen warnings from hv_func.h. These | |
364 | warnings have been silenced. GCC all bitness and Visual C++ for Win32 were | |
365 | not affected. | |
366 | ||
367 | =back | |
353075a0 | 368 | |
4dc623f0 | 369 | =back |
353075a0 | 370 | |
4dc623f0 | 371 | =head1 Internal Changes |
9f122eef | 372 | |
b5d4d3b9 MM |
373 | XXX Changes which affect the interface available to C<XS> code go here. Other |
374 | significant internal changes for future core maintainers should be noted as | |
375 | well. | |
bd2aa467 | 376 | |
b5d4d3b9 | 377 | [ List each change as a =item entry ] |
2ec11c70 | 378 | |
b5d4d3b9 | 379 | =over 4 |
2ec11c70 DM |
380 | |
381 | =item * | |
382 | ||
2683609f YO |
383 | Added Perl_sv_get_backrefs() to determine if an SV is a weak-referent. |
384 | ||
385 | Function either returns an SV * of type AV, which contains the set of | |
386 | weakreferences which reference the passed in SV, or a simple RV * which | |
387 | is the only weakref to this item. | |
388 | ||
389 | =item * | |
390 | ||
b5d4d3b9 | 391 | XXX |
2ec11c70 | 392 | |
4dc623f0 | 393 | =back |
c7f058f0 | 394 | |
4dc623f0 | 395 | =head1 Selected Bug Fixes |
0ef4323a | 396 | |
b5d4d3b9 MM |
397 | XXX Important bug fixes in the core language are summarized here. Bug fixes in |
398 | files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>. | |
279aef25 | 399 | |
b5d4d3b9 | 400 | [ List each fix as a =item entry ] |
00ba25b8 | 401 | |
b5d4d3b9 | 402 | =over 4 |
00ba25b8 | 403 | |
567291b6 FC |
404 | =item * |
405 | ||
b5d4d3b9 | 406 | XXX |
fcfb7b86 | 407 | |
b5d4d3b9 | 408 | =back |
fcfb7b86 | 409 | |
b5d4d3b9 | 410 | =head1 Known Problems |
8bb83ec2 | 411 | |
b5d4d3b9 MM |
412 | XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any |
413 | tests that had to be C<TODO>ed for the release would be noted here. Unfixed | |
414 | platform specific bugs also go here. | |
8bb83ec2 | 415 | |
b5d4d3b9 | 416 | [ List each fix as a =item entry ] |
1318b6d7 | 417 | |
b5d4d3b9 | 418 | =over 4 |
1318b6d7 | 419 | |
6f67fbfe FC |
420 | =item * |
421 | ||
b5d4d3b9 | 422 | XXX |
070733df | 423 | |
b5d4d3b9 | 424 | =back |
219f8441 | 425 | |
b5d4d3b9 | 426 | =head1 Errata From Previous Releases |
219f8441 | 427 | |
b5d4d3b9 | 428 | =over 4 |
5747f88b | 429 | |
61a8c397 FC |
430 | =item * |
431 | ||
b5d4d3b9 MM |
432 | XXX Add anything here that we forgot to add, or were mistaken about, in |
433 | the perldelta of a previous release. | |
61a8c397 | 434 | |
86372193 | 435 | =back |
bb8c7e27 | 436 | |
b5d4d3b9 | 437 | =head1 Obituary |
3a085d00 | 438 | |
b5d4d3b9 MM |
439 | XXX If any significant core contributor has died, we've added a short obituary |
440 | here. | |
01d42a22 | 441 | |
b5d4d3b9 | 442 | =head1 Acknowledgements |
01d42a22 | 443 | |
b5d4d3b9 | 444 | XXX Generate this with: |
01d42a22 | 445 | |
b5d4d3b9 | 446 | perl Porting/acknowledgements.pl v5.21.7..HEAD |
f5b73711 | 447 | |
44691e6f AB |
448 | =head1 Reporting Bugs |
449 | ||
e08634c5 SH |
450 | If you find what you think is a bug, you might check the articles recently |
451 | posted to the comp.lang.perl.misc newsgroup and the perl bug database at | |
238894db | 452 | https://rt.perl.org/ . There may also be information at |
7ef8b31d | 453 | http://www.perl.org/ , the Perl Home Page. |
44691e6f | 454 | |
e08634c5 SH |
455 | If you believe you have an unreported bug, please run the L<perlbug> program |
456 | included with your release. Be sure to trim your bug down to a tiny but | |
457 | sufficient test case. Your bug report, along with the output of C<perl -V>, | |
458 | will be sent off to perlbug@perl.org to be analysed by the Perl porting team. | |
44691e6f AB |
459 | |
460 | If the bug you are reporting has security implications, which make it | |
e08634c5 SH |
461 | inappropriate to send to a publicly archived mailing list, then please send it |
462 | to perl5-security-report@perl.org. This points to a closed subscription | |
463 | unarchived mailing list, which includes all the core committers, who will be | |
464 | able to help assess the impact of issues, figure out a resolution, and help | |
f9001595 | 465 | co-ordinate the release of patches to mitigate or fix the problem across all |
e08634c5 SH |
466 | platforms on which Perl is supported. Please only use this address for |
467 | security issues in the Perl core, not for modules independently distributed on | |
468 | CPAN. | |
44691e6f AB |
469 | |
470 | =head1 SEE ALSO | |
471 | ||
e08634c5 SH |
472 | The F<Changes> file for an explanation of how to view exhaustive details on |
473 | what changed. | |
44691e6f AB |
474 | |
475 | The F<INSTALL> file for how to build Perl. | |
476 | ||
477 | The F<README> file for general stuff. | |
478 | ||
479 | The F<Artistic> and F<Copying> files for copyright information. | |
480 | ||
481 | =cut |