Commit | Line | Data |
---|---|---|
44691e6f AB |
1 | =encoding utf8 |
2 | ||
3 | =head1 NAME | |
4 | ||
0890f1a5 FC |
5 | [ this is a template for a new perldelta file. Any text flagged as |
6 | XXX needs to be processed before release. ] | |
6e925ecb | 7 | |
0890f1a5 | 8 | perldelta - what is new for perl v5.15.1 |
f5938650 | 9 | |
0890f1a5 | 10 | =head1 DESCRIPTION |
760696b8 | 11 | |
0890f1a5 FC |
12 | This document describes differences between the 5.15.1 release and |
13 | the 5.15.0 release. | |
760696b8 | 14 | |
0890f1a5 FC |
15 | If you are upgrading from an earlier release such as 5.14.0, first read |
16 | L<perl5150delta>, which describes differences between 5.14.0 and | |
17 | 5.15.0. | |
760696b8 | 18 | |
0890f1a5 | 19 | =head1 Notice |
760696b8 | 20 | |
0890f1a5 | 21 | XXX Any important notices here |
6693394d | 22 | |
0890f1a5 | 23 | =head1 Core Enhancements |
6693394d | 24 | |
0890f1a5 FC |
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. | |
6693394d | 28 | |
0890f1a5 | 29 | [ List each enhancement as a =head2 entry ] |
6693394d | 30 | |
5cd408a2 EB |
31 | =head2 C<splice()> doesn't warn when truncating |
32 | ||
33 | You can now limit the size of an array using C<splice(@a,MAX_LEN)> without | |
34 | worrying about warnings. | |
35 | ||
062678b2 FC |
36 | =head2 The C<\$> prototype accepts any scalar lvalue |
37 | ||
38 | The C<\$> and C<\[$]> subroutine prototypes now accept any scalar lvalue | |
39 | argument. Previously they only accepted scalars beginning with C<$> and | |
40 | hash and array elements. This change makes them consistent with the way | |
41 | the built-in C<read> and C<recv> functions (among others) parse their | |
42 | arguments. This means that one can override the built-in functions with | |
43 | custom subroutines that parse their arguments the same way. | |
44 | ||
0890f1a5 | 45 | =head1 Security |
6693394d | 46 | |
0890f1a5 FC |
47 | XXX Any security-related notices go here. In particular, any security |
48 | vulnerabilities closed should be noted here rather than in the | |
49 | L</Selected Bug Fixes> section. | |
b7188eb5 | 50 | |
0890f1a5 | 51 | [ List each security issue as a =head2 entry ] |
e8e35311 | 52 | |
0890f1a5 | 53 | =head1 Incompatible Changes |
2c389f6c | 54 | |
0890f1a5 | 55 | XXX For a release on a stable branch, this section aspires to be: |
760696b8 | 56 | |
307f4217 NC |
57 | There are no changes intentionally incompatible with 5.XXX.XXX |
58 | If any exist, they are bugs and reports are welcome. | |
760696b8 | 59 | |
0890f1a5 | 60 | [ List each incompatible change as a =head2 entry ] |
760696b8 | 61 | |
0890f1a5 | 62 | =head1 Deprecations |
760696b8 | 63 | |
0890f1a5 FC |
64 | XXX Any deprecated features, syntax, modules etc. should be listed here. |
65 | In particular, deprecated modules should be listed here even if they are | |
66 | listed as an updated module in the L</Modules and Pragmata> section. | |
760696b8 | 67 | |
0890f1a5 | 68 | [ List each deprecation as a =head2 entry ] |
760696b8 | 69 | |
0890f1a5 | 70 | =head1 Performance Enhancements |
760696b8 | 71 | |
0890f1a5 FC |
72 | XXX Changes which enhance performance without changing behaviour go here. There |
73 | may well be none in a stable release. | |
760696b8 | 74 | |
0890f1a5 | 75 | [ List each enhancement as a =item entry ] |
6693394d FC |
76 | |
77 | =over 4 | |
78 | ||
79 | =item * | |
80 | ||
8ca8a454 | 81 | The implementation of C<s///r> makes one fewer copy of the scalar's value. |
6693394d | 82 | |
bfafcb9a NC |
83 | =item * |
84 | ||
85 | If a studied scalar is C<split> with a regex, the engine will now take | |
86 | advantage of the C<study> data. | |
87 | ||
6693394d FC |
88 | =back |
89 | ||
0890f1a5 | 90 | =head1 Modules and Pragmata |
bdb9ba77 | 91 | |
0890f1a5 FC |
92 | XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/> |
93 | go here. If Module::CoreList is updated, generate an initial draft of the | |
94 | following sections using F<Porting/corelist-perldelta.pl>, which prints stub | |
95 | entries to STDOUT. Results can be pasted in place of the '=head2' entries | |
96 | below. A paragraph summary for important changes should then be added by hand. | |
97 | In an ideal world, dual-life modules would have a F<Changes> file that could be | |
98 | cribbed. | |
bdb9ba77 | 99 | |
0890f1a5 | 100 | [ Within each section, list entries as a =item entry ] |
bdb9ba77 | 101 | |
0890f1a5 | 102 | =head2 New Modules and Pragmata |
6693394d | 103 | |
0890f1a5 | 104 | =over 4 |
6693394d FC |
105 | |
106 | =item * | |
107 | ||
0890f1a5 | 108 | XXX |
6693394d FC |
109 | |
110 | =back | |
111 | ||
0890f1a5 | 112 | =head2 Updated Modules and Pragmata |
760696b8 | 113 | |
0890f1a5 | 114 | =over 4 |
760696b8 FC |
115 | |
116 | =item * | |
117 | ||
cd272cae | 118 | L<Compress::Raw::Bzip2> has been upgraded from version 2.035 to version 2.037 |
1d5c9fb0 CBW |
119 | |
120 | =item * | |
121 | ||
98a34606 | 122 | L<Compress::Raw::Zlib> has been upgraded from version 2.035 to version 2.037 |
bc771c2e CBW |
123 | |
124 | Added offset parameter to CRC32 | |
125 | ||
126 | =item * | |
127 | ||
101c03fa | 128 | L<Compress::Zlib> has been upgraded from version 2.035 to version 2.037 |
529174d6 CBW |
129 | |
130 | IO::Compress::Zip and IO::Uncompress::Unzip now have support for LZMA (method 14). | |
101c03fa CBW |
131 | There is a fix for a CRC issue in IO::Compress::Unzip and it supports Streamed |
132 | Stored context now. And fixed a Zip64 issue in | |
529174d6 CBW |
133 | IO::Compress::Zip when the content size was exactly 0xFFFFFFFF. |
134 | ||
135 | =item * | |
136 | ||
508236ce CBW |
137 | L<IPC::Cmd> has been upgraded from version 0.70 to version 0.72 |
138 | ||
139 | Capturing of command output (both C<STDOUT> and C<STDERR>) is now supported | |
140 | using L<IPC::Open3> on MSWin32 without requiring L<IPC::Run>. | |
141 | ||
142 | =item * | |
143 | ||
bb3abb05 FC |
144 | L<attributes> has been upgraded from version 0.14 to 0.15, as part of the |
145 | lvalue attribute warnings fix. See L</Selected Bug Fixes>, below. | |
2c389f6c | 146 | |
7c420290 NC |
147 | =item * |
148 | ||
149 | L<Math::BigInt::FastCalc> has been upgraded from version 0.28 to version 0.29. | |
150 | ||
151 | The XS code is now compiled with C<PERL_NO_GET_CONTEXT>, which will aid | |
152 | performance under ithreads. | |
153 | ||
e8e35311 FC |
154 | =back |
155 | ||
0890f1a5 | 156 | =head2 Removed Modules and Pragmata |
bdb9ba77 | 157 | |
0890f1a5 | 158 | =over 4 |
bdb9ba77 DG |
159 | |
160 | =item * | |
161 | ||
0890f1a5 | 162 | XXX |
bdb9ba77 DG |
163 | |
164 | =back | |
165 | ||
0890f1a5 | 166 | =head1 Documentation |
f5938650 | 167 | |
0890f1a5 FC |
168 | XXX Changes to files in F<pod/> go here. Consider grouping entries by |
169 | file and be sure to link to the appropriate page, e.g. L<perlfunc>. | |
f5938650 | 170 | |
0890f1a5 | 171 | =head2 New Documentation |
f5938650 | 172 | |
0890f1a5 | 173 | XXX Changes which create B<new> files in F<pod/> go here. |
f5938650 | 174 | |
0890f1a5 | 175 | =head3 L<XXX> |
bdb9ba77 | 176 | |
0890f1a5 | 177 | XXX Description of the purpose of the new file here |
bdb9ba77 | 178 | |
0890f1a5 FC |
179 | =head2 Changes to Existing Documentation |
180 | ||
181 | XXX Changes which significantly change existing files in F<pod/> go here. | |
182 | However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics> | |
183 | section. | |
f5938650 | 184 | |
0890f1a5 | 185 | =head3 L<XXX> |
6693394d | 186 | |
0890f1a5 | 187 | =over 4 |
6693394d FC |
188 | |
189 | =item * | |
190 | ||
0890f1a5 | 191 | XXX Description of the change here |
6693394d FC |
192 | |
193 | =back | |
194 | ||
34dc2ec0 | 195 | =head1 Diagnostics |
b7188eb5 | 196 | |
34dc2ec0 DM |
197 | The following additions or changes have been made to diagnostic output, |
198 | including warnings and fatal error messages. For the complete list of | |
199 | diagnostic messages, see L<perldiag>. | |
44691e6f | 200 | |
0890f1a5 FC |
201 | XXX New or changed warnings emitted by the core's C<C> code go here. Also |
202 | include any changes in L<perldiag> that reconcile it to the C<C> code. | |
2c389f6c | 203 | |
0890f1a5 FC |
204 | [ Within each section, list entries as a =item entry that links to perldiag, |
205 | e.g. | |
2c389f6c | 206 | |
0890f1a5 | 207 | =item * |
b7188eb5 | 208 | |
0890f1a5 FC |
209 | L<Invalid version object|perldiag/"Invalid version object"> |
210 | ] | |
5076a392 | 211 | |
0890f1a5 | 212 | =head2 New Diagnostics |
5076a392 | 213 | |
0890f1a5 | 214 | XXX Newly added diagnostic messages go here |
e8e35311 | 215 | |
0890f1a5 | 216 | =head3 New Errors |
5076a392 | 217 | |
34dc2ec0 | 218 | =over 4 |
5076a392 | 219 | |
e8e35311 | 220 | =item * |
5076a392 | 221 | |
0890f1a5 | 222 | XXX L<message|perldiag/"message"> |
a0ed52f4 | 223 | |
bdb9ba77 | 224 | =back |
bdab33d1 | 225 | |
0890f1a5 | 226 | =head3 New Warnings |
d430b8e7 | 227 | |
0890f1a5 | 228 | =over 4 |
5076a392 | 229 | |
bdb9ba77 | 230 | =item * |
5076a392 | 231 | |
0890f1a5 | 232 | XXX L<message|perldiag/"message"> |
5076a392 | 233 | |
bdb9ba77 | 234 | =back |
e8e35311 | 235 | |
0890f1a5 | 236 | =head2 Changes to Existing Diagnostics |
42a91c97 | 237 | |
0890f1a5 | 238 | XXX Changes (i.e. rewording) of diagnostic messages go here |
6693394d | 239 | |
34dc2ec0 | 240 | =over 4 |
42a91c97 | 241 | |
6693394d | 242 | =item * |
42a91c97 | 243 | |
0890f1a5 | 244 | XXX Describe change here |
42a91c97 | 245 | |
34dc2ec0 | 246 | =back |
42a91c97 | 247 | |
0890f1a5 | 248 | =head1 Utility Changes |
69c6927c | 249 | |
0890f1a5 FC |
250 | XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go |
251 | here. Most of these are built within the directories F<utils> and F<x2p>. | |
69c6927c | 252 | |
0890f1a5 FC |
253 | [ List utility changes as a =head3 entry for each utility and =item |
254 | entries for each change | |
255 | Use L<XXX> with program names to get proper documentation linking. ] | |
c13a5c80 | 256 | |
0890f1a5 | 257 | =head3 L<XXX> |
c13a5c80 | 258 | |
0890f1a5 | 259 | =over 4 |
bdab33d1 | 260 | |
571f0e86 NC |
261 | =item * |
262 | ||
0890f1a5 | 263 | XXX |
384e62c0 DG |
264 | |
265 | =back | |
266 | ||
0890f1a5 | 267 | =head1 Configuration and Compilation |
cdc10f43 | 268 | |
0890f1a5 FC |
269 | XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools |
270 | go here. Any other changes to the Perl build process should be listed here. | |
271 | However, any platform-specific changes should be listed in the | |
272 | L</Platform Support> section, instead. | |
cdc10f43 | 273 | |
0890f1a5 | 274 | [ List changes as a =item entry ]. |
bdab33d1 | 275 | |
34dc2ec0 | 276 | =over 4 |
d430b8e7 FC |
277 | |
278 | =item * | |
279 | ||
0890f1a5 | 280 | XXX |
bdab33d1 DG |
281 | |
282 | =back | |
283 | ||
0890f1a5 | 284 | =head1 Testing |
bdab33d1 | 285 | |
0890f1a5 FC |
286 | XXX Any significant changes to the testing of a freshly built perl should be |
287 | listed here. Changes which create B<new> files in F<t/> go here as do any | |
288 | large changes to the testing harness (e.g. when parallel testing was added). | |
289 | Changes to existing files in F<t/> aren't worth summarising, although the bugs | |
290 | that they represent may be covered elsewhere. | |
f5938650 | 291 | |
0890f1a5 | 292 | [ List each test improvement as a =item entry ] |
f5938650 | 293 | |
0890f1a5 | 294 | =over 4 |
f5938650 FC |
295 | |
296 | =item * | |
297 | ||
0890f1a5 | 298 | XXX |
f5938650 FC |
299 | |
300 | =back | |
2fbb14a0 | 301 | |
0890f1a5 | 302 | =head1 Platform Support |
975dff8c | 303 | |
0890f1a5 | 304 | XXX Any changes to platform support should be listed in the sections below. |
975dff8c | 305 | |
0890f1a5 FC |
306 | [ Within the sections, list each platform as a =item entry with specific |
307 | changes as paragraphs below it. ] | |
975dff8c | 308 | |
0890f1a5 | 309 | =head2 New Platforms |
975dff8c | 310 | |
0890f1a5 FC |
311 | XXX List any platforms that this version of perl compiles on, that previous |
312 | versions did not. These will either be enabled by new files in the F<hints/> | |
313 | directories, or new subdirectories and F<README> files at the top level of the | |
314 | source tree. | |
975dff8c | 315 | |
0890f1a5 | 316 | =over 4 |
975dff8c | 317 | |
0890f1a5 | 318 | =item XXX-some-platform |
975dff8c | 319 | |
0890f1a5 | 320 | XXX |
975dff8c FC |
321 | |
322 | =back | |
323 | ||
0890f1a5 | 324 | =head2 Discontinued Platforms |
da507230 | 325 | |
0890f1a5 | 326 | XXX List any platforms that this version of perl no longer compiles on. |
da507230 | 327 | |
0890f1a5 | 328 | =over 4 |
fad4a2e4 | 329 | |
0890f1a5 | 330 | =item XXX-some-platform |
4dbb339a | 331 | |
0890f1a5 | 332 | XXX |
4dbb339a | 333 | |
975dff8c FC |
334 | =back |
335 | ||
0890f1a5 | 336 | =head2 Platform-Specific Notes |
6693394d | 337 | |
0890f1a5 FC |
338 | XXX List any changes for specific platforms. This could include configuration |
339 | and compilation changes or changes in portability/compatibility. However, | |
340 | changes within modules for platforms should generally be listed in the | |
341 | L</Modules and Pragmata> section. | |
6693394d | 342 | |
0890f1a5 | 343 | =over 4 |
6693394d | 344 | |
0890f1a5 | 345 | =item XXX-some-platform |
6693394d | 346 | |
0890f1a5 | 347 | XXX |
6693394d FC |
348 | |
349 | =back | |
350 | ||
0890f1a5 | 351 | =head1 Internal Changes |
6693394d | 352 | |
0890f1a5 FC |
353 | XXX Changes which affect the interface available to C<XS> code go here. |
354 | Other significant internal changes for future core maintainers should | |
355 | be noted as well. | |
bdab33d1 | 356 | |
0890f1a5 | 357 | [ List each change as a =item entry ] |
f5938650 | 358 | |
0890f1a5 | 359 | =over 4 |
f5938650 FC |
360 | |
361 | =item * | |
362 | ||
0890f1a5 | 363 | XXX |
f5938650 | 364 | |
0890f1a5 | 365 | =back |
25aa614d | 366 | |
0890f1a5 | 367 | =head1 Selected Bug Fixes |
87d00a71 | 368 | |
0890f1a5 FC |
369 | XXX Important bug fixes in the core language are summarised here. |
370 | Bug fixes in files in F<ext/> and F<lib/> are best summarised in | |
371 | L</Modules and Pragmata>. | |
87d00a71 | 372 | |
0890f1a5 | 373 | [ List each fix as a =item entry ] |
87d00a71 | 374 | |
0890f1a5 | 375 | =over 4 |
87d00a71 | 376 | |
da507230 FC |
377 | =item * |
378 | ||
fff96ff7 FC |
379 | Applying the :lvalue attribute to subroutine that is already defined does |
380 | not work properly, as the attribute changes the way the sub is compiled. | |
381 | Hence, Perl 5.12 began warning when an attempt is made to apply the | |
382 | attribute to an already defined sub. In such cases, the attribute is | |
383 | discarded. | |
384 | ||
385 | But the change in 5.12 missed the case where custom attributes are also | |
386 | present: that case still silently and ineffectively applied the attribute. | |
387 | That omission has now been corrected. C<sub foo :lvalue :Whatever> (when | |
388 | C<foo> is already defined) now warns about the :lvalue attribute, and does | |
389 | not apply it. | |
da507230 | 390 | |
bb3abb05 FC |
391 | L<attributes.pm|attributes> has likewise been updated to warn and not apply |
392 | the attribute. | |
393 | ||
d25b0d7b FC |
394 | =item * |
395 | ||
4bee03f8 FC |
396 | =for comment |
397 | Not necessary for perl5160delta | |
398 | ||
d25b0d7b FC |
399 | The remaining discrepancies between explicit and implicit return from |
400 | lvalue subroutines have been resolved. They mainly involved which error | |
401 | message to display when a read-only value is returned in lvalue context. | |
402 | Also, returning a PADTMP (the result of most built-ins, like C<index>) in | |
403 | lvalue context is now forbidden for explicit return, as it always has been | |
404 | for implicit return. This is not a regression from 5.14, as all the cases | |
405 | in which it could happen where previously syntax errors. | |
406 | ||
4bee03f8 FC |
407 | =item * |
408 | ||
409 | =for comment | |
410 | Not necessary for perl5160delta | |
411 | ||
412 | Explicitly returning a tied C<my> variable from an lvalue subroutine in | |
413 | list lvalue context used to clear the variable before the assignment could | |
414 | happen. This is something that was missed when explicit return was made to | |
415 | work in 5.15.0. | |
416 | ||
d9463c66 FC |
417 | =item * |
418 | ||
419 | =for comment | |
420 | Not necessary for perl5160delta | |
421 | ||
422 | A minor memory leak, introduced in 5.15.0, has been fixed. It would occur | |
423 | when a hash is freed that has had its current iterator deleted | |
424 | [perl #93454]. | |
425 | ||
42a91c97 FC |
426 | =back |
427 | ||
c71a852f | 428 | =head1 Known Problems |
44691e6f | 429 | |
0890f1a5 FC |
430 | XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any |
431 | tests that had to be C<TODO>ed for the release would be noted here, unless | |
432 | they were specific to a particular platform (see below). | |
bda24d5c | 433 | |
0890f1a5 FC |
434 | This is a list of some significant unfixed bugs, which are regressions |
435 | from either 5.XXX.XXX or 5.XXX.XXX. | |
bda24d5c | 436 | |
0890f1a5 | 437 | [ List each fix as a =item entry ] |
bdb9ba77 | 438 | |
0890f1a5 | 439 | =over 4 |
014fb485 | 440 | |
d8e9570c DG |
441 | =item * |
442 | ||
0890f1a5 | 443 | XXX |
d8e9570c | 444 | |
bdb9ba77 | 445 | =back |
014fb485 | 446 | |
0890f1a5 FC |
447 | =head1 Obituary |
448 | ||
449 | XXX If any significant core contributor has died, we've added a short obituary | |
450 | here. | |
44691e6f | 451 | |
44691e6f AB |
452 | =head1 Acknowledgements |
453 | ||
0890f1a5 | 454 | XXX The list of people to thank goes here. |
29cf780c | 455 | |
44691e6f AB |
456 | =head1 Reporting Bugs |
457 | ||
458 | If you find what you think is a bug, you might check the articles | |
34dc2ec0 | 459 | recently posted to the comp.lang.perl.misc newsgroup and the perl |
44691e6f AB |
460 | bug database at http://rt.perl.org/perlbug/ . There may also be |
461 | information at http://www.perl.org/ , the Perl Home Page. | |
462 | ||
463 | If you believe you have an unreported bug, please run the L<perlbug> | |
464 | program included with your release. Be sure to trim your bug down | |
465 | to a tiny but sufficient test case. Your bug report, along with the | |
466 | output of C<perl -V>, will be sent off to perlbug@perl.org to be | |
467 | analysed by the Perl porting team. | |
468 | ||
469 | If the bug you are reporting has security implications, which make it | |
470 | inappropriate to send to a publicly archived mailing list, then please send | |
34dc2ec0 | 471 | it to perl5-security-report@perl.org. This points to a closed subscription |
b4707b2a FC |
472 | unarchived mailing list, which includes |
473 | all the core committers, who will be able | |
44691e6f AB |
474 | to help assess the impact of issues, figure out a resolution, and help |
475 | co-ordinate the release of patches to mitigate or fix the problem across all | |
34dc2ec0 DM |
476 | platforms on which Perl is supported. Please only use this address for |
477 | security issues in the Perl core, not for modules independently | |
44691e6f AB |
478 | distributed on CPAN. |
479 | ||
480 | =head1 SEE ALSO | |
481 | ||
482 | The F<Changes> file for an explanation of how to view exhaustive details | |
483 | on what changed. | |
484 | ||
485 | The F<INSTALL> file for how to build Perl. | |
486 | ||
487 | The F<README> file for general stuff. | |
488 | ||
489 | The F<Artistic> and F<Copying> files for copyright information. | |
490 | ||
491 | =cut |