Commit | Line | Data |
---|---|---|
855e1b21 NC |
1 | =encoding utf8 |
2 | ||
3 | =head1 NAME | |
4 | ||
5 | [ this is a template for a new perldelta file. Any text flagged as | |
6 | XXX needs to be processed before release. ] | |
7 | ||
8 | perldelta - what is new for perl v5.13.3 | |
9 | ||
10 | =head1 DESCRIPTION | |
11 | ||
12 | This document describes differences between the 5.13.3 release and | |
13 | the 5.13.2 release. | |
14 | ||
7ea08b87 DG |
15 | If you are upgrading from an earlier release such as 5.13.1, first read |
16 | L<perl5132delta>, which describes differences between 5.13.1 and | |
17 | 5.13.2. | |
855e1b21 NC |
18 | |
19 | =head1 Notice | |
20 | ||
21 | XXX Any important notices here | |
22 | ||
7ea08b87 DG |
23 | =head1 Core Enhancements |
24 | ||
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. | |
28 | ||
29 | [ List each enhancement as a =head2 entry ] | |
30 | ||
f0a2b745 KW |
31 | =head2 \o{...} |
32 | ||
33 | The escape sequence C<"\o"> in double-quotish contexts is now defined. It | |
34 | must be followed by braces enclosing an octal number of at least one digit. It | |
35 | means the character whose ordinal value is that octal number. This construct | |
36 | allows large octal ordinals beyond the current max of 0777 to be represented. | |
37 | It also allows you to specify a character in octal which can safely be | |
38 | concatenated with other regex snippets without danger of changing its meaning, | |
39 | and one which won't ever be confused with being a backreference to a regex | |
40 | capture group. See L<perlre/Capture groups> | |
41 | ||
63098191 | 42 | =head2 C<\N{I<name>}> and C<charnames> enhancements |
16036bcd | 43 | |
63098191 KW |
44 | C<\N{}> and C<charnames::vianame> now know about the abbreviated character |
45 | names listed by Unicode, such as NBSP, SHY, LRO, ZWJ, etc., as well as all the | |
46 | customary abbreviations for the C0 and C1 control characters (such as ACK, BEL, | |
47 | CAN, etc.), as well as a few new variants in common usage of some C1 full | |
48 | names. | |
16036bcd KW |
49 | |
50 | In the past, it was ineffective to override one of Perl's abbreviations with | |
51 | your own custom alias. Now it works. | |
52 | ||
232cbbee | 53 | And you can create a custom alias directly to the ordinal of a character, known |
8f3c3cf1 | 54 | by C<\N{...}>, C<charnames::vianame()>, and C<charnames::viacode()>. |
232cbbee KW |
55 | Previously, an alias had to be to an official Unicode character name. This |
56 | made it impossible to create an alias for a code point that had no name, | |
57 | such as the ones reserved for private use. So this change allows you to make | |
58 | more effective use of private use characters. Only if there is no official | |
59 | name will C<charnames::viacode()> return your custom one. | |
60 | ||
61 | See L<charnames> for details on all these changes. | |
62 | ||
655d344e DG |
63 | =head2 Other enhancements |
64 | ||
efdecbbd NC |
65 | =over |
66 | ||
655d344e DG |
67 | =item * |
68 | ||
69 | Uppercase X/B allowed in hexadecimal/binary literals (RT#76296) (a674e8d) | |
70 | ||
efdecbbd NC |
71 | =back |
72 | ||
7ea08b87 DG |
73 | =head1 Security |
74 | ||
75 | XXX Any security-related notices go here. In particular, any security | |
76 | vulnerabilities closed should be noted here rather than in the | |
77 | L</Selected Bug Fixes> section. | |
78 | ||
79 | [ List each security issue as a =head2 entry ] | |
80 | ||
855e1b21 NC |
81 | =head1 Incompatible Changes |
82 | ||
83 | XXX For a release on a stable branch, this section aspires to be: | |
84 | ||
85 | There are no changes intentionally incompatible with 5.XXX.XXX. If any | |
86 | exist, they are bugs and reports are welcome. | |
87 | ||
7ea08b87 | 88 | [ List each incompatible change as a =head2 entry ] |
855e1b21 | 89 | |
fa1639c5 KW |
90 | =head2 \400 - \777 |
91 | ||
92 | Use of C<\400> - C<\777> in regexes in certain circumstances has given different, | |
93 | anomalous behavior than their use in all other double-quotish contexts. Since | |
94 | 5.10.1, a deprecated warning message has been raised when this happens. Now, | |
95 | all double-quotish contexts have the same behavior, namely to be equivalent to | |
96 | C<\x{100}> - C<\x{1FF}>, with no deprecation warning. Use of these values in the | |
97 | command line option C<"-0"> retains the current meaning to slurp input files | |
f0a2b745 KW |
98 | whole; previously, this was documented only for C<"-0777">. It is recommended, |
99 | however, because of various ambiguities, to use the new L</\o{...}> construct | |
100 | to represent characters in octal. | |
fa1639c5 | 101 | |
7ea08b87 | 102 | =head1 Deprecations |
855e1b21 | 103 | |
7ea08b87 DG |
104 | XXX Any deprecated features, syntax, modules etc. should be listed here. |
105 | In particular, deprecated modules should be listed here even if they are | |
106 | listed as an updated module in the L</Modules and Pragmata> section. | |
855e1b21 | 107 | |
7ea08b87 | 108 | [ List each deprecation as a =head2 entry ] |
855e1b21 | 109 | |
a0316a43 DG |
110 | =head2 Omitting a space between regular expression and subsequent word |
111 | ||
112 | Omitting a space between a regex pattern or pattern modifiers and the | |
113 | following word is deprecated. Deprecation for regular expression matches | |
114 | was added in Perl 5.13.2. In this release, the deprecation is extended | |
115 | to regular expression substitutions. For example, | |
116 | C<< s/foo/bar/sand $bar >> will still be parsed as | |
117 | C<< s/foo/bar/s and $bar >> but will issue a warning. | |
118 | ||
119 | =head2 Deprecation warning added for deprecated-in-core .pl libs | |
120 | ||
121 | This is a mandatory warning, not obeying -X or lexical warning bits. | |
122 | The warning is modelled on that supplied by deprecate.pm for | |
123 | deprecated-in-core .pm libraries. It points to the specific CPAN | |
124 | distribution that contains the .pl libraries. The CPAN version, of | |
125 | course, does not generate the warning. (0111154) | |
126 | ||
7ea08b87 DG |
127 | =head1 Performance Enhancements |
128 | ||
129 | XXX Changes which enhance performance without changing behaviour go here. There | |
130 | may well be none in a stable release. | |
131 | ||
132 | [ List each enhancement as a =item entry ] | |
133 | ||
134 | =over 4 | |
135 | ||
136 | =item * | |
137 | ||
655d344e | 138 | There are several small optimizations to improve CPU cache performance |
7ea08b87 DG |
139 | |
140 | =back | |
855e1b21 NC |
141 | |
142 | =head1 Modules and Pragmata | |
143 | ||
144 | XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/> | |
145 | go here. If Module::CoreList is updated, generate an initial draft of the | |
146 | following sections using F<Porting/corelist-perldelta.pl>, which prints stub | |
147 | entries to STDOUT. Results can be pasted in place of the '=head2' entries | |
148 | below. A paragraph summary for important changes should then be added by hand. | |
149 | In an ideal world, dual-life modules would have a F<Changes> file that could be | |
150 | cribbed. | |
151 | ||
7ea08b87 DG |
152 | [ Within each section, list entries as a =item entry ] |
153 | ||
855e1b21 NC |
154 | =head2 New Modules and Pragmata |
155 | ||
7ea08b87 | 156 | =over 4 |
855e1b21 | 157 | |
7ea08b87 | 158 | =item * |
855e1b21 | 159 | |
7ea08b87 | 160 | XXX |
855e1b21 | 161 | |
7ea08b87 | 162 | =back |
855e1b21 | 163 | |
7ea08b87 | 164 | =head2 Updated Modules and Pragmata |
855e1b21 | 165 | |
a0316a43 DG |
166 | XXX Make sure these get sorted, are phrased similarly and all version |
167 | numbers are correct | |
168 | ||
855e1b21 NC |
169 | =over 4 |
170 | ||
7ea08b87 DG |
171 | =item * |
172 | ||
e8cfd41a DG |
173 | autodie updated to CPAN version 2.10 (a009834) |
174 | ||
175 | =item * | |
176 | ||
655d344e DG |
177 | charnames -- viacode() is now significantly faster (f3227b7) |
178 | ||
179 | =item * | |
180 | ||
a0316a43 DG |
181 | version now prevents object methods from being called as class methods |
182 | (d808b68) | |
183 | ||
184 | =item * | |
185 | ||
e8cfd41a DG |
186 | warnings updated to 1.10. Calling C<use warnings> without |
187 | arguments is now significantly more efficient. (8452af9) | |
188 | ||
189 | =item * | |
190 | ||
ca68faa2 CBW |
191 | Archive-Extract updated to CPAN version 0.42 (d7f8799) |
192 | ||
193 | Updates since 0.38 include: a safe print method that Michael Schwern | |
194 | contributed, that guards Archive::Extract from changes to $\; a | |
195 | fix to the tests when run in core perl from Robin Barker; and | |
196 | support for TZ files contributed by Paul Marquess, who also supplied a | |
197 | modification for the lzma logic to favour IO::Uncompress::Unlzma | |
198 | ||
199 | =item * | |
200 | ||
a0316a43 DG |
201 | Archive-Tar updated to version 1.64 (afabe0e) |
202 | ||
827ada3b CBW |
203 | Important changes since 1.54 include: compatibility with busybox |
204 | implementations of tar which was added by Mark Swayne; a fix so | |
205 | that write() and create_archive() close only handles | |
206 | they opened by Darrell K.; and a bug was fixed regarding the exit code | |
207 | of extract_archive which was spotted by and upstreamed from RedHat by | |
208 | Martin Cermak. | |
209 | ||
210 | =item * | |
211 | ||
e8cfd41a DG |
212 | Attribute-Handlers updated to CPAN version 0.88 (f2ea78b) |
213 | ||
214 | =item * | |
215 | ||
655d344e DG |
216 | Compress-Raw-Bzip2 updated to CPAN version 2.027 (9e09409) |
217 | ||
218 | =item * | |
219 | ||
220 | Compress-Raw-Zlib updated to CPAN version 2.027 (f02c02e) | |
221 | ||
222 | =item * | |
223 | ||
a0316a43 DG |
224 | CPANPLUS updated to version 0.9007 (d4e225a) |
225 | ||
226 | Fix the shell test to skip if test is not being run under a | |
227 | terminal; resolved the issue where a prereq on Config would not be | |
228 | recognised as a core module | |
229 | ||
230 | =item * | |
231 | ||
232 | Digest-MD5 updated to CPAN version 2.40 (326fafa) | |
233 | ||
234 | =item * | |
235 | ||
2c1a561b CBW |
236 | Digest-SHA updated to CPAN version 5.48 (dfe1edc) |
237 | ||
238 | =item * | |
239 | ||
a0316a43 DG |
240 | Exporter no longer overrides C<$SIG{__WARN__}> (RT #74472) (9b86bb5) |
241 | ||
242 | =item * | |
243 | ||
e8cfd41a DG |
244 | ExtUtils-CBuilder updated to CPAN version 0.2703 (7b0eef9) |
245 | ||
246 | =item * | |
247 | ||
248 | ExtUtils-Manifest updated to CPAN version 1.58 (49c6bc4) | |
249 | ||
250 | =item * | |
251 | ||
a0316a43 DG |
252 | ExtUtil-ParseXS updated to version 2.2206 (494e8c4) |
253 | ||
254 | =item * | |
255 | ||
256 | File::Copy skips suid tests on a nosuid partition (cae9400) | |
257 | ||
258 | =item * | |
259 | ||
655d344e DG |
260 | IO-Compress upated to CPAN version 2.027 (e8796d6) |
261 | ||
262 | =item * | |
263 | ||
a0316a43 DG |
264 | IPC-Cmd updated to CPAN version 0.60 (e667e1e) |
265 | ||
266 | =item * | |
267 | ||
2d635dbf CBW |
268 | IPC-SysV updated to CPAN version 2.03 (10613b6) |
269 | ||
a0316a43 DG |
270 | =item * |
271 | ||
272 | Locale::Maketext guts have been merged back into the main module (87d86da) | |
273 | and adds external cache support (ace47d6) | |
274 | ||
2d635dbf CBW |
275 | =item * |
276 | ||
a0316a43 | 277 | Module-Build updated to CPAN version 0.3607 (40c9afb) |
655d344e DG |
278 | |
279 | =item * | |
280 | ||
ee10537b CBW |
281 | Module-Load updated to CPAN version 0.18 (93eaa32) |
282 | ||
283 | =item * | |
284 | ||
e8cfd41a DG |
285 | Time-HiRes updated to CPAN version 1.9721 (68c5b4d) |
286 | ||
287 | =item * | |
288 | ||
289 | Time-Piece updated to CPAN version 1.20 (90d55c2) | |
290 | ||
291 | =item * | |
292 | ||
293 | Unicode-Collate updated to CPAN version 0.53. Includes Unicode Collation | |
294 | Algorithm 18 (74b94a7) | |
295 | ||
296 | =item * | |
297 | ||
298 | Unicode-Normalize updated to CPAN release 1.06 (a96160d) | |
7ea08b87 DG |
299 | |
300 | =back | |
301 | ||
302 | =head2 Removed Modules and Pragmata | |
303 | ||
304 | =over 4 | |
305 | ||
306 | =item * | |
855e1b21 NC |
307 | |
308 | XXX | |
309 | ||
310 | =back | |
311 | ||
7ea08b87 DG |
312 | =head1 Documentation |
313 | ||
314 | XXX Changes to files in F<pod/> go here. Consider grouping entries by | |
315 | file and be sure to link to the appropriate page, e.g. L<perlfunc>. | |
316 | ||
317 | [ Within each section, list entries as a =item entry ] | |
318 | ||
319 | =head2 New Documentation | |
855e1b21 NC |
320 | |
321 | XXX Changes which create B<new> files in F<pod/> go here. | |
322 | ||
a0316a43 | 323 | =head3 L<perl5121delta> |
855e1b21 | 324 | |
655d344e | 325 | The Perl 5.12.1 perldelta file was added from the Perl maintenance branch |
855e1b21 | 326 | |
7ea08b87 | 327 | =head2 Changes to Existing Documentation |
855e1b21 NC |
328 | |
329 | XXX Changes which significantly change existing files in F<pod/> go here. | |
7ea08b87 DG |
330 | However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics> |
331 | section. | |
855e1b21 | 332 | |
a0316a43 | 333 | =head3 General changes |
655d344e | 334 | |
a0316a43 | 335 | =over |
855e1b21 | 336 | |
655d344e | 337 | =item * |
855e1b21 | 338 | |
a0316a43 DG |
339 | Octal character escapes in documentation now prefer either the C<\gDIGIT> |
340 | escape or else a three-digit octal escape as they have less ambiguity than | |
341 | other forms of octal escapes. (ce7b6f0) (d8b950d) | |
342 | ||
343 | =item * | |
344 | ||
345 | Documentation now standardizes on the term 'capture group' over 'buffer' | |
346 | in regular expression documentation(c27a5cf) | |
655d344e DG |
347 | |
348 | =back | |
349 | ||
350 | =head3 L<perlfunc> | |
351 | ||
352 | =over | |
353 | ||
354 | =item * | |
355 | ||
356 | Added cautionary note about "no VERSION" (e0de7c2) | |
357 | ||
358 | =item * | |
359 | ||
360 | Add additional notes regarding srand and forking (d460397) | |
7ea08b87 DG |
361 | |
362 | =back | |
363 | ||
a0316a43 DG |
364 | =head3 L<perlop> |
365 | ||
366 | =over 4 | |
367 | ||
368 | =item * | |
369 | ||
370 | Improved documentation of unusual character escapes (bf82ca4) | |
371 | ||
372 | =back | |
373 | ||
374 | =head3 L<perlrun> | |
375 | ||
376 | =over | |
377 | ||
378 | =item * | |
379 | ||
380 | Clarifies the behavior of the C<-0NNN> switch for C<-0400> or higher (7ba31cb) | |
381 | ||
382 | =back | |
383 | ||
384 | =head3 L<perlpolicy> | |
385 | ||
386 | =over | |
387 | ||
388 | =item * | |
389 | ||
390 | Added the policy on compatibility and deprecation along with definitions of | |
391 | terms like "deprecation" (70e4a83) | |
392 | ||
393 | =back | |
394 | ||
395 | =head3 L<perltie> | |
396 | ||
397 | =over | |
398 | ||
399 | =item * | |
400 | ||
401 | Some examples updated for modern Perl style (67d00dd) | |
402 | ||
403 | =back | |
404 | ||
7ea08b87 DG |
405 | =head1 Diagnostics |
406 | ||
407 | The following additions or changes have been made to diagnostic output, | |
408 | including warnings and fatal error messages. For the complete list of | |
409 | diagnostic messages, see L<perldiag>. | |
410 | ||
411 | XXX New or changed warnings emitted by the core's C<C> code go here. Also | |
412 | include any changes in L<perldiag> that reconcile it to the C<C> code. | |
413 | ||
414 | [ Within each section, list entries as a =item entry ] | |
415 | ||
416 | =head2 New Diagnostics | |
417 | ||
418 | XXX Newly added diagnostic messages go here | |
855e1b21 NC |
419 | |
420 | =over 4 | |
421 | ||
422 | =item * | |
423 | ||
424 | XXX | |
425 | ||
426 | =back | |
427 | ||
7ea08b87 | 428 | =head2 Changes to Existing Diagnostics |
855e1b21 | 429 | |
7ea08b87 | 430 | XXX Changes (i.e. rewording) of diagnostic messages go here |
855e1b21 | 431 | |
7ea08b87 DG |
432 | =over 4 |
433 | ||
434 | =item * | |
855e1b21 NC |
435 | |
436 | XXX | |
437 | ||
7ea08b87 DG |
438 | =back |
439 | ||
440 | =head1 Utility Changes | |
441 | ||
442 | XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go | |
443 | here. Most of these are built within the directories F<utils> and F<x2p>. | |
444 | ||
a0316a43 | 445 | =head3 L<perldb> |
7ea08b87 | 446 | |
a0316a43 | 447 | =over |
7ea08b87 | 448 | |
976a3bea JJ |
449 | =item * |
450 | ||
451 | The remote terminal works after forking and spawns new sessions - one | |
452 | for each forked process. | |
453 | ||
a0316a43 | 454 | =item * |
855e1b21 | 455 | |
a0316a43 | 456 | Uses the less pager path from Config instead of searching for it (bf320d6) |
855e1b21 | 457 | |
7ea08b87 DG |
458 | =back |
459 | ||
a0316a43 | 460 | |
7ea08b87 DG |
461 | =head1 Configuration and Compilation |
462 | ||
463 | XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools | |
464 | go here. Any other changes to the Perl build process should be listed here. | |
465 | However, any platform-specific changes should be listed in the | |
466 | L</Platform Support> section, instead. | |
467 | ||
468 | [ List changes as a =item entry ]. | |
855e1b21 NC |
469 | |
470 | =over 4 | |
471 | ||
7ea08b87 | 472 | =item * |
855e1b21 | 473 | |
a0316a43 | 474 | Adjusts 'make test.valgrind' to account for cpan/dist/ext separation. (e07ce2e) |
855e1b21 NC |
475 | |
476 | =back | |
477 | ||
7ea08b87 | 478 | =head1 Testing |
855e1b21 | 479 | |
7ea08b87 DG |
480 | XXX Any significant changes to the testing of a freshly built perl should be |
481 | listed here. Changes which create B<new> files in F<t/> go here as do any | |
482 | large changes to the testing harness (e.g. when parallel testing was added). | |
483 | Changes to existing files in F<t/> aren't worth summarising, although the bugs | |
484 | that they represent may be covered elsewhere. | |
485 | ||
486 | [ List each test improvement as a =item entry ] | |
855e1b21 NC |
487 | |
488 | =over 4 | |
489 | ||
490 | =item * | |
491 | ||
655d344e DG |
492 | F<t/harness> clears PERL5LIB, PERLLIB, PERL5OPT as t/TEST does (a2d3de1) |
493 | ||
494 | =item * | |
495 | ||
496 | Many common testing routines were refactored into t/lib/common.pl | |
497 | ||
498 | =item * | |
499 | ||
500 | Several test files have been modernized to use Test::More | |
855e1b21 NC |
501 | |
502 | =back | |
503 | ||
7ea08b87 DG |
504 | =head1 Platform Support |
505 | ||
506 | XXX Any changes to platform support should be listed in the sections below. | |
507 | ||
508 | [ Within the sections, list each platform as a =item entry with specific | |
509 | changes as paragraphs below it. ] | |
510 | ||
511 | =head2 New Platforms | |
855e1b21 | 512 | |
7ea08b87 DG |
513 | XXX List any platforms that this version of perl compiles on, that previous |
514 | versions did not. These will either be enabled by new files in the F<hints/> | |
515 | directories, or new subdirectories and F<README> files at the top level of the | |
516 | source tree. | |
855e1b21 NC |
517 | |
518 | =over 4 | |
519 | ||
7ea08b87 | 520 | =item XXX-some-platform |
855e1b21 NC |
521 | |
522 | XXX | |
523 | ||
524 | =back | |
525 | ||
7ea08b87 | 526 | =head2 Discontinued Platforms |
855e1b21 | 527 | |
7ea08b87 | 528 | XXX List any platforms that this version of perl no longer compiles on. |
855e1b21 NC |
529 | |
530 | =over 4 | |
531 | ||
e8cfd41a | 532 | =item MacOS Classic |
855e1b21 | 533 | |
e8cfd41a DG |
534 | Support for MacOS Classic within ExtUtils::MakeMaker was removed from Perl in |
535 | December 2004. Vestigial MacOS Classic specific code has now been removed | |
536 | from other core modules as well. | |
855e1b21 NC |
537 | |
538 | =back | |
539 | ||
7ea08b87 | 540 | =head2 Platform-Specific Notes |
855e1b21 | 541 | |
7ea08b87 DG |
542 | XXX List any changes for specific platforms. This could include configuration |
543 | and compilation changes or changes in portability/compatibility. However, | |
544 | changes within modules for platforms should generally be listed in the | |
545 | L</Modules and Pragmata> section. | |
855e1b21 NC |
546 | |
547 | =over 4 | |
548 | ||
a0316a43 | 549 | =item Win32 |
855e1b21 | 550 | |
a0316a43 DG |
551 | t/io/openpid.t now uses the alarm() watchdog strategy for more |
552 | robustness. (5732108) | |
855e1b21 NC |
553 | |
554 | =back | |
555 | ||
7ea08b87 | 556 | =head1 Internal Changes |
855e1b21 | 557 | |
7ea08b87 DG |
558 | XXX Changes which affect the interface available to C<XS> code go here. |
559 | Other significant internal changes for future core maintainers should | |
560 | be noted as well. | |
855e1b21 | 561 | |
a0316a43 | 562 | [ List each improvement as a =item entry ] |
855e1b21 NC |
563 | |
564 | =over 4 | |
565 | ||
566 | =item * | |
567 | ||
ce1e4fda DG |
568 | Under some circumstances, the C<CvGV()> field of a CV is now reference |
569 | counted. To ensure consistent behaviour, direct assignment to it, for | |
570 | example C<CvGV(cv) = gv> is now a compile-time error. A new macro, | |
571 | C<CvGV_set(cv,gv)> has been introduced to perform this operation safely. | |
572 | Note that modification of this field is not part of of the public API, | |
573 | regardless of this new macro. | |
574 | ||
575 | =item * | |
576 | ||
6ea72ee3 BM |
577 | It is now possible for XS code to hook into Perl's lexical scope |
578 | mechanism at compile time, using the new C<Perl_blockhook_register> | |
579 | function. See L<perlguts/"Compile-time scope hooks">. | |
855e1b21 | 580 | |
a0316a43 | 581 | =item * |
855e1b21 | 582 | |
a0316a43 DG |
583 | Added C<Perl_croak_no_modify()> to implement |
584 | C<Perl_croak("%s", PL_no_modify)>. (6ad8f25) | |
efdecbbd | 585 | |
655d344e DG |
586 | =item * |
587 | ||
a0316a43 DG |
588 | Added prototypes for C<tie()> and C<untie()> to allow overloading. (RT#75902) |
589 | (1db4d19) | |
590 | ||
591 | =item * | |
592 | ||
593 | Adds C<my_[l]stat_flags()> to replace C<my_[l]stat()>. C<my_stat()> and | |
594 | C<my_lstat()> call get magic on the stack arg, so create C<_flags()> | |
595 | variants that allow us to control this. (0d7d409) | |
655d344e | 596 | |
efdecbbd NC |
597 | =back |
598 | ||
7ea08b87 | 599 | =head1 Selected Bug Fixes |
855e1b21 | 600 | |
7ea08b87 DG |
601 | XXX Important bug fixes in the core language are summarised here. |
602 | Bug fixes in files in F<ext/> and F<lib/> are best summarised in | |
603 | L</Modules and Pragmata>. | |
855e1b21 | 604 | |
7ea08b87 | 605 | [ List each fix as a =item entry ] |
855e1b21 NC |
606 | |
607 | =over 4 | |
608 | ||
609 | =item * | |
610 | ||
ce1e4fda DG |
611 | Some work has been done on the internal pointers that link between symbol |
612 | tables (stashes), typeglobs and subroutines. This has the effect that | |
613 | various edge cases related to deleting stashes or stash entries (e.g. | |
614 | <%FOO:: = ()>), and complex typeglob or code reference aliasing, will no | |
615 | longer crash the interpreter. | |
616 | ||
617 | =item * | |
618 | ||
976a3bea JJ |
619 | Fixed readline() when interrupted by signals so it no longer returns |
620 | the "same thing" as before or random memory. | |
621 | ||
622 | =item * | |
623 | ||
e8cfd41a | 624 | Fixed a regression of kill() when a match variable is used for the |
655d344e | 625 | process ID to kill. (RT#75812) (8af710e) |
e8cfd41a DG |
626 | |
627 | =item * | |
628 | ||
629 | Fixed several subtle bugs in sort() when @_ is accessed within a subroutine | |
630 | used for sorting. (RT#72334) (8f443ca) | |
631 | ||
655d344e DG |
632 | =item * |
633 | ||
634 | Catch yyparse() exceptions in C<< (?{...}) >> (RT#2353) (634d691) | |
635 | ||
636 | =item * | |
637 | ||
638 | Avoid UTF-8 cache panics with offsets beyond a string (RT #75898) (3e2d381) | |
639 | ||
640 | =item * | |
641 | ||
642 | Fixed POSIX::strftime memory leak (RT#73520) (c4bc4aa) | |
643 | ||
644 | =item * | |
645 | ||
646 | Doesn't set strict with C<no VERSION> if C<VERSION> is greater than 5.12. | |
647 | (da8fb5d) | |
648 | ||
a0316a43 DG |
649 | =item * |
650 | ||
651 | Avoids multiple FETCH/stringify on filetest ops (40c852d) | |
652 | ||
653 | =item * | |
654 | ||
655 | Fixed issue with string C<eval> not detecting taint of overloaded/tied | |
656 | arguments (RT #75716) (895b760) | |
657 | ||
658 | =item * | |
659 | ||
660 | Fix potential crashes of string C<eval> when evaluating a object with | |
661 | overloaded stringification by creating a stringified copy when necessary | |
662 | (3e5c018) | |
663 | ||
664 | =item * | |
665 | ||
666 | Fixed bug where overloaded stringification could remove tainting | |
667 | (RT #75716) (a02ec77) | |
668 | ||
669 | =item * | |
670 | ||
671 | Plugs more memory leaks in vms.c. (9e2bec0) | |
672 | ||
673 | =item * | |
674 | ||
675 | Fix pthread include error for Time::Piece (e9f284c) | |
855e1b21 NC |
676 | |
677 | =back | |
678 | ||
7ea08b87 | 679 | =head1 Known Problems |
855e1b21 | 680 | |
7ea08b87 DG |
681 | XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any |
682 | tests that had to be C<TODO>ed for the release would be noted here, unless | |
683 | they were specific to a particular platform (see below). | |
684 | ||
685 | This is a list of some significant unfixed bugs, which are regressions | |
686 | from either 5.XXX.XXX or 5.XXX.XXX. | |
687 | ||
688 | [ List each fix as a =item entry ] | |
689 | ||
690 | =over 4 | |
691 | ||
692 | =item * | |
693 | ||
976a3bea JJ |
694 | readline() returns an empty string instead of undef when it is |
695 | interrupted by a signal. | |
7ea08b87 DG |
696 | |
697 | =back | |
855e1b21 | 698 | |
e8cfd41a DG |
699 | =head1 Errata |
700 | ||
701 | =over 4 | |
702 | ||
703 | =item * | |
704 | ||
705 | Retroactively added the Acknowledgements list to L<perl5132delta>, | |
706 | which was excluded in the original release (d1e2db0) | |
707 | ||
708 | =back | |
709 | ||
855e1b21 NC |
710 | =head1 Obituary |
711 | ||
712 | XXX If any significant core contributor has died, we've added a short obituary | |
713 | here. | |
714 | ||
715 | =head1 Acknowledgements | |
716 | ||
717 | XXX The list of people to thank goes here. | |
718 | ||
855e1b21 NC |
719 | =head1 Reporting Bugs |
720 | ||
721 | If you find what you think is a bug, you might check the articles | |
722 | recently posted to the comp.lang.perl.misc newsgroup and the perl | |
723 | bug database at http://rt.perl.org/perlbug/ . There may also be | |
724 | information at http://www.perl.org/ , the Perl Home Page. | |
725 | ||
726 | If you believe you have an unreported bug, please run the B<perlbug> | |
727 | program included with your release. Be sure to trim your bug down | |
728 | to a tiny but sufficient test case. Your bug report, along with the | |
729 | output of C<perl -V>, will be sent off to perlbug@perl.org to be | |
730 | analysed by the Perl porting team. | |
731 | ||
732 | If the bug you are reporting has security implications, which make it | |
733 | inappropriate to send to a publicly archived mailing list, then please send | |
734 | it to perl5-security-report@perl.org. This points to a closed subscription | |
735 | unarchived mailing list, which includes all the core committers, who be able | |
736 | to help assess the impact of issues, figure out a resolution, and help | |
737 | co-ordinate the release of patches to mitigate or fix the problem across all | |
738 | platforms on which Perl is supported. Please only use this address for | |
739 | security issues in the Perl core, not for modules independently | |
740 | distributed on CPAN. | |
741 | ||
742 | =head1 SEE ALSO | |
743 | ||
744 | The F<Changes> file for an explanation of how to view exhaustive details | |
745 | on what changed. | |
746 | ||
747 | The F<INSTALL> file for how to build Perl. | |
748 | ||
749 | The F<README> file for general stuff. | |
750 | ||
751 | The F<Artistic> and F<Copying> files for copyright information. | |
752 | ||
753 | =cut |