Commit | Line | Data |
---|---|---|
4c793fe3 FR |
1 | =encoding utf8 |
2 | ||
3 | =head1 NAME | |
4 | ||
ee0887a9 SH |
5 | [ this is a template for a new perldelta file. Any text flagged as |
6 | XXX needs to be processed before release. ] | |
4c793fe3 | 7 | |
ee0887a9 | 8 | perldelta - what is new for perl v5.13.6 |
4c793fe3 | 9 | |
ee0887a9 | 10 | =head1 DESCRIPTION |
0c692eed | 11 | |
ee0887a9 SH |
12 | This document describes differences between the 5.13.5 release and |
13 | the 5.13.6 release. | |
0c692eed | 14 | |
ee0887a9 SH |
15 | If you are upgrading from an earlier release such as 5.13.4, first read |
16 | L<perl5135delta>, which describes differences between 5.13.4 and | |
17 | 5.13.5. | |
0c692eed | 18 | |
ee0887a9 | 19 | =head1 Notice |
0c692eed | 20 | |
ee0887a9 | 21 | XXX Any important notices here |
4c793fe3 | 22 | |
ee0887a9 | 23 | =head1 Core Enhancements |
85318b69 | 24 | |
ee0887a9 SH |
25 | XXX New core language features go here. Summarise user-visible core language |
26 | enhancements. Particularly prominent performance optimisations could go | |
27 | here, but most should go in the L</Performance Enhancements> section. | |
85318b69 | 28 | |
ee0887a9 | 29 | [ List each enhancement as a =head2 entry ] |
85318b69 | 30 | |
fb85c044 KW |
31 | =head2 C<(?^...)> regex construct added to signify default modifiers |
32 | ||
33 | A caret (also called a "cirumflex accent") C<"^"> immediately following | |
34 | a C<"(?"> in a regular expression now means that the subexpression is to | |
35 | not inherit the surrounding modifiers such as C</i>, but to revert to the | |
36 | Perl defaults. Any modifiers following the caret override the defaults. | |
37 | ||
38 | The stringification of regular expressions now uses this notation. The | |
39 | main purpose of this is to allow tests that rely on the stringification | |
40 | to not have to change when new modifiers are added. See | |
41 | L<perlre/Extended Patterns>. | |
42 | ||
9de15fec KW |
43 | =head2 C<"d">, C<"l">, and C<"u"> regex modifiers added |
44 | ||
45 | These modifiers are currently only available within a C<(?...)> construct. | |
46 | ||
47 | The C<"l"> modifier says to compile the regular expression as if it were | |
48 | in the scope of C<use locale>, even if it is not. | |
49 | ||
50 | The C<"u"> modifier currently does nothing. | |
51 | ||
52 | The C<"d"> modifier is used in the scope of C<use locale> to compile the | |
53 | regular expression as if it were not in that scope. | |
54 | See L<perlre/(?dlupimsx-imsx)>. | |
55 | ||
ee0887a9 | 56 | =head1 Security |
85318b69 | 57 | |
ee0887a9 SH |
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. | |
85318b69 | 61 | |
ee0887a9 | 62 | [ List each security issue as a =head2 entry ] |
4c793fe3 FR |
63 | |
64 | =head1 Incompatible Changes | |
65 | ||
fb85c044 KW |
66 | =head2 Stringification of regexes has changed |
67 | ||
68 | Default regular expression modifiers are now notated by using | |
69 | C<(?^...)>. Code relying on the old stringification will fail. The | |
70 | purpose of this is so that when new modifiers are added, such code will | |
71 | not have to change, as the stringification will automatically | |
72 | incorporate the new modifiers. | |
73 | ||
74 | Code that needs to work properly with both old- and new-style regexes | |
75 | can use something like the following: | |
76 | ||
77 | # Accept both old and new-style stringification | |
78 | my $modifiers = (qr/foobar/ =~ /\Q(?^/) ? '^' : '-xism'; | |
44428a46 | 79 | |
fb85c044 | 80 | And then use C<$modifiers> instead of C<-xism>. |
44428a46 | 81 | |
9de15fec KW |
82 | =head2 Regular expressions retain their localeness when interpolated |
83 | ||
84 | Regular expressions compiled under C<"use locale"> now retain this when | |
85 | interpolated into a new regular expression compiled outside a | |
86 | C<"use locale">, and vice-versa. | |
87 | ||
88 | Previously, a regular expression interpolated into another one inherited | |
89 | the localeness of the surrounding one, losing whatever state it | |
90 | originally had. This is considered a bug fix, but may trip up code that | |
91 | has come to rely on the incorrect behavior. | |
92 | ||
ee0887a9 | 93 | [ List each incompatible change as a =head2 entry ] |
4c793fe3 FR |
94 | |
95 | =head1 Deprecations | |
96 | ||
ee0887a9 SH |
97 | XXX Any deprecated features, syntax, modules etc. should be listed here. |
98 | In particular, deprecated modules should be listed here even if they are | |
99 | listed as an updated module in the L</Modules and Pragmata> section. | |
85318b69 | 100 | |
ee0887a9 | 101 | [ List each deprecation as a =head2 entry ] |
4c793fe3 FR |
102 | |
103 | =head1 Performance Enhancements | |
104 | ||
ee0887a9 SH |
105 | XXX Changes which enhance performance without changing behaviour go here. There |
106 | may well be none in a stable release. | |
4c793fe3 | 107 | |
ee0887a9 | 108 | [ List each enhancement as a =item entry ] |
4c793fe3 | 109 | |
ee0887a9 | 110 | =over 4 |
4c793fe3 | 111 | |
e2babdfb FR |
112 | =item * |
113 | ||
ee0887a9 | 114 | XXX |
e2babdfb | 115 | |
4c793fe3 FR |
116 | =back |
117 | ||
118 | =head1 Modules and Pragmata | |
119 | ||
ee0887a9 SH |
120 | XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/> |
121 | go here. If Module::CoreList is updated, generate an initial draft of the | |
122 | following sections using F<Porting/corelist-perldelta.pl>, which prints stub | |
123 | entries to STDOUT. Results can be pasted in place of the '=head2' entries | |
124 | below. A paragraph summary for important changes should then be added by hand. | |
125 | In an ideal world, dual-life modules would have a F<Changes> file that could be | |
126 | cribbed. | |
fc1418b7 | 127 | |
ee0887a9 | 128 | [ Within each section, list entries as a =item entry ] |
df91fef1 | 129 | |
ee0887a9 | 130 | =head2 New Modules and Pragmata |
ccb45ef4 | 131 | |
ee0887a9 | 132 | =over 4 |
df91fef1 | 133 | |
ee0887a9 | 134 | =item * |
df91fef1 | 135 | |
ee0887a9 | 136 | XXX |
e2babdfb | 137 | |
ee0887a9 | 138 | =back |
e2babdfb | 139 | |
ee0887a9 | 140 | =head2 Updated Modules and Pragmata |
fc1418b7 | 141 | |
ee0887a9 | 142 | =over 4 |
fc1418b7 | 143 | |
ee0887a9 | 144 | =item * |
e2babdfb | 145 | |
de0e3ce7 FR |
146 | C<NEXT> has been upgraded from version 0.64 to 0.65. |
147 | ||
148 | =item * | |
149 | ||
1c2dcb3e CBW |
150 | C<PathTools> has been upgraded from version 3.31_01 to 3.33. |
151 | ||
152 | =item * | |
153 | ||
154 | C<Unicode::Normalize> has been upgraded from version 1.06 to 1.07 | |
c9a84c8b | 155 | |
ee0887a9 | 156 | =back |
c9a84c8b | 157 | |
ee0887a9 | 158 | =head2 Removed Modules and Pragmata |
c9a84c8b | 159 | |
ee0887a9 | 160 | =over 4 |
4c793fe3 | 161 | |
ee0887a9 | 162 | =item * |
48c1efd2 | 163 | |
ee0887a9 | 164 | XXX |
4c793fe3 FR |
165 | |
166 | =back | |
167 | ||
168 | =head1 Documentation | |
169 | ||
ee0887a9 SH |
170 | XXX Changes to files in F<pod/> go here. Consider grouping entries by |
171 | file and be sure to link to the appropriate page, e.g. L<perlfunc>. | |
4c793fe3 | 172 | |
ee0887a9 | 173 | =head2 New Documentation |
4c793fe3 | 174 | |
ee0887a9 | 175 | XXX Changes which create B<new> files in F<pod/> go here. |
4c793fe3 | 176 | |
ee0887a9 | 177 | =head3 L<XXX> |
4c793fe3 | 178 | |
ee0887a9 | 179 | XXX Description of the purpose of the new file here |
4c793fe3 | 180 | |
ee0887a9 | 181 | =head2 Changes to Existing Documentation |
fc1418b7 | 182 | |
ee0887a9 SH |
183 | XXX Changes which significantly change existing files in F<pod/> go here. |
184 | However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics> | |
185 | section. | |
fc1418b7 | 186 | |
ee0887a9 | 187 | =head3 L<XXX> |
e2babdfb | 188 | |
7bc3efda SH |
189 | =over 4 |
190 | ||
191 | =item * | |
192 | ||
ee0887a9 | 193 | XXX Description of the change here |
7bc3efda SH |
194 | |
195 | =back | |
e2babdfb | 196 | |
4c793fe3 FR |
197 | =head1 Diagnostics |
198 | ||
199 | The following additions or changes have been made to diagnostic output, | |
200 | including warnings and fatal error messages. For the complete list of | |
201 | diagnostic messages, see L<perldiag>. | |
202 | ||
ee0887a9 SH |
203 | XXX New or changed warnings emitted by the core's C<C> code go here. Also |
204 | include any changes in L<perldiag> that reconcile it to the C<C> code. | |
4c793fe3 | 205 | |
ee0887a9 | 206 | [ Within each section, list entries as a =item entry ] |
4c793fe3 | 207 | |
ee0887a9 | 208 | =head2 New Diagnostics |
4c793fe3 | 209 | |
ee0887a9 | 210 | XXX Newly added diagnostic messages go here |
fc1418b7 | 211 | |
ee0887a9 | 212 | =over 4 |
fc1418b7 SH |
213 | |
214 | =item * | |
215 | ||
ee0887a9 | 216 | XXX |
ebce6c40 | 217 | |
4c793fe3 FR |
218 | =back |
219 | ||
ee0887a9 | 220 | =head2 Changes to Existing Diagnostics |
4c793fe3 | 221 | |
ee0887a9 | 222 | XXX Changes (i.e. rewording) of diagnostic messages go here |
4c793fe3 FR |
223 | |
224 | =over 4 | |
225 | ||
226 | =item * | |
227 | ||
ee0887a9 | 228 | XXX |
4c793fe3 FR |
229 | |
230 | =back | |
231 | ||
ee0887a9 | 232 | =head1 Utility Changes |
4c793fe3 | 233 | |
ee0887a9 SH |
234 | XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go |
235 | here. Most of these are built within the directories F<utils> and F<x2p>. | |
4c793fe3 | 236 | |
ee0887a9 SH |
237 | [ List utility changes as a =head3 entry for each utility and =item |
238 | entries for each change | |
239 | Use L<XXX> with program names to get proper documentation linking. ] | |
fc1418b7 | 240 | |
ee0887a9 | 241 | =head3 L<XXX> |
fc1418b7 | 242 | |
ee0887a9 | 243 | =over 4 |
4c793fe3 | 244 | |
44428a46 FC |
245 | =item * |
246 | ||
ee0887a9 | 247 | XXX |
44428a46 | 248 | |
4c793fe3 FR |
249 | =back |
250 | ||
ee0887a9 | 251 | =head1 Configuration and Compilation |
4c793fe3 | 252 | |
ee0887a9 SH |
253 | XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools |
254 | go here. Any other changes to the Perl build process should be listed here. | |
255 | However, any platform-specific changes should be listed in the | |
256 | L</Platform Support> section, instead. | |
4c793fe3 | 257 | |
ee0887a9 | 258 | [ List changes as a =item entry ]. |
4c793fe3 | 259 | |
0c692eed FR |
260 | =over 4 |
261 | ||
262 | =item * | |
263 | ||
ee0887a9 | 264 | XXX |
0c692eed FR |
265 | |
266 | =back | |
4c793fe3 | 267 | |
ee0887a9 | 268 | =head1 Testing |
0c692eed | 269 | |
ee0887a9 SH |
270 | XXX Any significant changes to the testing of a freshly built perl should be |
271 | listed here. Changes which create B<new> files in F<t/> go here as do any | |
272 | large changes to the testing harness (e.g. when parallel testing was added). | |
273 | Changes to existing files in F<t/> aren't worth summarising, although the bugs | |
274 | that they represent may be covered elsewhere. | |
0c692eed | 275 | |
ee0887a9 | 276 | [ List each test improvement as a =item entry ] |
0c692eed | 277 | |
ee0887a9 | 278 | =over 4 |
0c692eed FR |
279 | |
280 | =item * | |
281 | ||
ee0887a9 | 282 | XXX |
4c793fe3 FR |
283 | |
284 | =back | |
285 | ||
ee0887a9 | 286 | =head1 Platform Support |
4c793fe3 | 287 | |
ee0887a9 | 288 | XXX Any changes to platform support should be listed in the sections below. |
4c793fe3 | 289 | |
ee0887a9 SH |
290 | [ Within the sections, list each platform as a =item entry with specific |
291 | changes as paragraphs below it. ] | |
4c793fe3 | 292 | |
ee0887a9 | 293 | =head2 New Platforms |
0c692eed | 294 | |
ee0887a9 SH |
295 | XXX List any platforms that this version of perl compiles on, that previous |
296 | versions did not. These will either be enabled by new files in the F<hints/> | |
297 | directories, or new subdirectories and F<README> files at the top level of the | |
298 | source tree. | |
0c692eed | 299 | |
ee0887a9 | 300 | =over 4 |
0c692eed | 301 | |
ee0887a9 | 302 | =item XXX-some-platform |
0c692eed | 303 | |
ee0887a9 | 304 | XXX |
0c692eed | 305 | |
ee0887a9 | 306 | =back |
0c692eed | 307 | |
ee0887a9 | 308 | =head2 Discontinued Platforms |
4c793fe3 | 309 | |
ee0887a9 | 310 | XXX List any platforms that this version of perl no longer compiles on. |
8ebb9810 | 311 | |
ee0887a9 | 312 | =over 4 |
8ebb9810 | 313 | |
ee0887a9 | 314 | =item XXX-some-platform |
48c1efd2 | 315 | |
ee0887a9 | 316 | XXX |
48c1efd2 | 317 | |
ee0887a9 | 318 | =back |
44428a46 | 319 | |
ee0887a9 | 320 | =head2 Platform-Specific Notes |
44428a46 | 321 | |
ee0887a9 SH |
322 | XXX List any changes for specific platforms. This could include configuration |
323 | and compilation changes or changes in portability/compatibility. However, | |
324 | changes within modules for platforms should generally be listed in the | |
325 | L</Modules and Pragmata> section. | |
f4beb78f | 326 | |
ee0887a9 | 327 | =over 4 |
f4beb78f | 328 | |
ee0887a9 | 329 | =item XXX-some-platform |
ccb45ef4 | 330 | |
ee0887a9 | 331 | XXX |
ccb45ef4 | 332 | |
ee0887a9 | 333 | =back |
85318b69 | 334 | |
ee0887a9 | 335 | =head1 Internal Changes |
85318b69 | 336 | |
ee0887a9 SH |
337 | XXX Changes which affect the interface available to C<XS> code go here. |
338 | Other significant internal changes for future core maintainers should | |
339 | be noted as well. | |
85318b69 | 340 | |
ee0887a9 | 341 | [ List each test improvement as a =item entry ] |
80b6a949 | 342 | |
ee0887a9 | 343 | =over 4 |
80b6a949 | 344 | |
e2babdfb FR |
345 | =item * |
346 | ||
a5763045 FC |
347 | See L</Regular expressions retain their localeness when interpolated>, |
348 | above. | |
e2babdfb | 349 | |
ee0887a9 | 350 | =back |
e2babdfb | 351 | |
ee0887a9 | 352 | =head1 Selected Bug Fixes |
e2babdfb | 353 | |
ee0887a9 SH |
354 | XXX Important bug fixes in the core language are summarised here. |
355 | Bug fixes in files in F<ext/> and F<lib/> are best summarised in | |
356 | L</Modules and Pragmata>. | |
e2babdfb | 357 | |
ee0887a9 | 358 | [ List each fix as a =item entry ] |
346e4e56 | 359 | |
ee0887a9 | 360 | =over 4 |
346e4e56 | 361 | |
78846812 FR |
362 | =item * |
363 | ||
4e9f151b FC |
364 | A regular expression match in the right-hand side of a global substitution |
365 | (C<s///g>) that is in the same scope will no longer cause match variables | |
366 | to have the wrong values on subsequent iterations. This can happen when an | |
e54f3f30 FC |
367 | array or hash subscript is interpolated in the right-hand side, as in |
368 | C<s|(.)|@a{ print($1), /./ }|g> | |
369 | L<[perl #19078]|http://rt.perl.org/rt3//Public/Bug/Display.html?id=19078>. | |
370 | ||
371 | =item * | |
372 | ||
373 | Constant-folding used to cause | |
374 | ||
375 | $text =~ ( 1 ? /phoo/ : /bear/) | |
376 | ||
377 | to turn into | |
378 | ||
379 | $text =~ /phoo/ | |
380 | ||
381 | at compile time. Now it correctly matches against C<$_> | |
382 | L<[perl #20444]|http://rt.perl.org/rt3//Public/Bug/Display.html?id=20444>. | |
78846812 | 383 | |
a5763045 FC |
384 | =item * |
385 | ||
386 | Parsing Perl code (either with string C<eval> or by loading modules) from | |
387 | within a C<UNITCHECK> block no longer causes the interpreter to crash | |
388 | L<[perl #70614]|http://rt.perl.org/rt3//Public/Bug/Display.html?id=70614>. | |
389 | ||
5a9a79a4 FC |
390 | =item * |
391 | ||
392 | When C<-d> is used on the shebang (C<#!>) line, the debugger now has access | |
393 | to the lines of the main program. In the past, this sometimes worked and | |
394 | sometimes did not, depending on what order things happened to be arranged | |
395 | in memory. | |
396 | ||
4c793fe3 FR |
397 | =back |
398 | ||
962fbe1d SH |
399 | =head1 Known Problems |
400 | ||
ee0887a9 SH |
401 | XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any |
402 | tests that had to be C<TODO>ed for the release would be noted here, unless | |
403 | they were specific to a particular platform (see below). | |
962fbe1d | 404 | |
ee0887a9 SH |
405 | This is a list of some significant unfixed bugs, which are regressions |
406 | from either 5.XXX.XXX or 5.XXX.XXX. | |
962fbe1d | 407 | |
ee0887a9 SH |
408 | [ List each fix as a =item entry ] |
409 | ||
410 | =over 4 | |
08d032c0 SH |
411 | |
412 | =item * | |
413 | ||
ee0887a9 | 414 | XXX |
962fbe1d SH |
415 | |
416 | =back | |
417 | ||
ee0887a9 | 418 | =head1 Obituary |
4c793fe3 | 419 | |
ee0887a9 SH |
420 | XXX If any significant core contributor has died, we've added a short obituary |
421 | here. | |
0195fb5f | 422 | |
ee0887a9 | 423 | =head1 Acknowledgements |
0195fb5f | 424 | |
ee0887a9 | 425 | XXX The list of people to thank goes here. |
4c793fe3 FR |
426 | |
427 | =head1 Reporting Bugs | |
428 | ||
429 | If you find what you think is a bug, you might check the articles | |
430 | recently posted to the comp.lang.perl.misc newsgroup and the perl | |
431 | bug database at http://rt.perl.org/perlbug/ . There may also be | |
432 | information at http://www.perl.org/ , the Perl Home Page. | |
433 | ||
434 | If you believe you have an unreported bug, please run the B<perlbug> | |
435 | program included with your release. Be sure to trim your bug down | |
436 | to a tiny but sufficient test case. Your bug report, along with the | |
437 | output of C<perl -V>, will be sent off to perlbug@perl.org to be | |
438 | analysed by the Perl porting team. | |
439 | ||
440 | If the bug you are reporting has security implications, which make it | |
441 | inappropriate to send to a publicly archived mailing list, then please send | |
ee0887a9 | 442 | it to perl5-security-report@perl.org. This points to a closed subscription |
4c793fe3 FR |
443 | unarchived mailing list, which includes all the core committers, who be able |
444 | to help assess the impact of issues, figure out a resolution, and help | |
445 | co-ordinate the release of patches to mitigate or fix the problem across all | |
ee0887a9 | 446 | platforms on which Perl is supported. Please only use this address for |
4c793fe3 FR |
447 | security issues in the Perl core, not for modules independently |
448 | distributed on CPAN. | |
449 | ||
450 | =head1 SEE ALSO | |
451 | ||
452 | The F<Changes> file for an explanation of how to view exhaustive details | |
453 | on what changed. | |
454 | ||
455 | The F<INSTALL> file for how to build Perl. | |
456 | ||
457 | The F<README> file for general stuff. | |
458 | ||
459 | The F<Artistic> and F<Copying> files for copyright information. | |
460 | ||
461 | =cut |