4 This has been completed up to 67aeb7895 except for:
5 b3dbdd48ca2da90bce7f16d545cca54c3dc58f35 (Leon Timmermans)
6 816005240f1a3b9989c940e630e829048597537c (Craig Berry)
7 44caa20c7d9248fd77483468d77c9b5835e7066e (Craig Berry)
8 4581ada393ba58f2b8f438c7b9c336d6c79ec94c (Craig Berry)
9 3b28d668e9efe9433c3099521167a6723cbddc26 (Craig Berry)
10 82e24582a585cdcc94ac54b3e77a325e7aa89846 (Jan Dubois)
11 and any bugs that Karl Williamson has fixed.
15 [ this is a template for a new perldelta file. Any text flagged as
16 XXX needs to be processed before release. ]
18 perldelta - what is new for perl v5.13.11
22 This document describes differences between the 5.13.10 release and
25 If you are upgrading from an earlier release such as 5.13.9, first read
26 L<perl5139delta>, which describes differences between 5.13.9 and
31 XXX Any important notices here
33 =head1 Core Enhancements
35 XXX New core language features go here. Summarise user-visible core language
36 enhancements. Particularly prominent performance optimisations could go
37 here, but most should go in the L</Performance Enhancements> section.
39 [ List each enhancement as a =head2 entry ]
43 XXX Any security-related notices go here. In particular, any security
44 vulnerabilities closed should be noted here rather than in the
45 L</Selected Bug Fixes> section.
47 [ List each security issue as a =head2 entry ]
49 =head2 User-defined regular expression properties
51 Perl no longer allows a tainted regular expression to invoke a user-defined
52 property via C<\p{...}> syntax. It simply dies instead [perl #82616].
54 =head1 Incompatible Changes
56 XXX For a release on a stable branch, this section aspires to be:
58 There are no changes intentionally incompatible with 5.XXX.XXX. If any
59 exist, they are bugs and reports are welcome.
61 [ List each incompatible change as a =head2 entry ]
63 =head2 Passing references to warn()
65 An earlier Perl 5.13.x release changed C<warn($ref)> to leave the reference
66 unchanged, allowing C<$SIG{__WARN__}> handlers to access the original
67 reference. But this stopped warnings that were references from having the
68 file and line number appended even when there was no C<$SIG{__WARN__}>
71 Now C<warn> checks for the presence of such a handler and, if there is
72 none, proceeds to stringify the reference and append the file and line
73 number. This allows simple uses of C<warn> for debugging to continue to
74 work as they did before.
78 XXX Any deprecated features, syntax, modules etc. should be listed here.
79 In particular, deprecated modules should be listed here even if they are
80 listed as an updated module in the L</Modules and Pragmata> section.
82 [ List each deprecation as a =head2 entry ]
84 =head1 Performance Enhancements
86 XXX Changes which enhance performance without changing behaviour go here. There
87 may well be none in a stable release.
89 [ List each enhancement as a =item entry ]
99 =head1 Modules and Pragmata
101 XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
102 go here. If Module::CoreList is updated, generate an initial draft of the
103 following sections using F<Porting/corelist-perldelta.pl>, which prints stub
104 entries to STDOUT. Results can be pasted in place of the '=head2' entries
105 below. A paragraph summary for important changes should then be added by hand.
106 In an ideal world, dual-life modules would have a F<Changes> file that could be
109 [ Within each section, list entries as a =item entry ]
111 =head2 New Modules and Pragmata
121 =head2 Updated Modules and Pragmata
127 C<base> has been upgraded from version 2.15 to 2.16.
131 C<CPANPLUS> has been upgraded from version 0.9101 to 0.9102
135 C<CPANPLUS::Dist::Build> has been upgraded from version 0.52 to 0.54
139 C<Cwd> has been downgraded from version 3.37 to 3.36.
141 An optimisation that recent core changes have rendered unnecessary has been
146 C<Devel::DProf> has been upgraded from version 20110225.01 to 20110228.00.
150 C<Digest::SHA> has been upgraded from version 5.50 to 5.61
152 New SHA-512/224 and SHA-512/256 transforms ref. NIST Draft FIPS 180-4 (February 2011)
156 C<ExtUtils::Command> has been upgraded from version 1.16 to 1.17.
160 C<File::Copy> has been downgraded from version 2.22 to 2.21.
162 An optimisation that recent core changes have rendered unnecessary has been
167 C<IO> has been upgraded from version 1.25_03 to 1.25_04.
171 C<JSON::PP> has been upgraded from version 2.27103 to 2.27105
175 C<Locale::Codes> has been upgraded from version 3.15 to 3.16
179 C<Math::BigInt> has been upgraded from version 1.992 to 1.994
183 C<Math::BigInt::FastCalc> has been upgraded from version 0.24_02 to 0.28
187 C<Module::Build> has been upgraded from version 0.37_05 to 0.3800
191 C<Module::CoreList> has been upgraded from version 2.45 to 2.46.
195 C<parent> has been upgraded from version 0.224 to 0.225
199 C<Storable> has been upgraded from version 2.26 to 2.27.
203 C<Test::Harness> has been upgraded from version 3.22 to 3.23
207 C<Test::Simple> has been upgraded from version 0.97_01 to 0.98
211 C<Tie::Hash::NamedCapture> has been upgraded from version 0.07 to 0.08.
213 Some of the Perl code has been converted to XS for efficency's sake.
217 C<Tie::RefHash> has been upgraded from version 1.38 to 1.39.
221 C<Unicode::Collate> has been upgraded from version 0.72 to 0.73
223 DUCET has been updated for Unicode 6.0.0 as Collate/allkeys.txt and
224 the default UCA_Version is 22.
228 C<Unicode::UCD> has been upgraded from version 0.31 to 0.32.
229 This includes a number of bug fixes:
239 It is now updated to Unicode Version 6 with Corrigendum #8, except,
240 as with Perl 5.14, the code point at U+1F514 has no name.
244 The Hangul syllable code points have the correct names, and their
245 decompositions are always output without requiring L<Lingua::KO::Hangul::Util>
250 The CJK (Chinese-Japanese-Korean) code points U+2A700 - U+2B734
251 and U+2B740 - 2B81D are now properly handled.
255 The numeric values are now output for those CJK code points that have them.
259 The names that are output for code points with multiple aliases are now the
266 This now correctly returns "Unknown" instead of C<undef> for the script
267 of a code point that hasn't been assigned another one.
271 This now correctly returns "No_Block" instead of C<undef> for the block
272 of a code point that hasn't been assigned to another one.
278 =head2 Removed Modules and Pragmata
290 XXX Changes to files in F<pod/> go here. Consider grouping entries by
291 file and be sure to link to the appropriate page, e.g. L<perlfunc>.
293 =head2 New Documentation
295 XXX Changes which create B<new> files in F<pod/> go here.
299 XXX Description of the purpose of the new file here
301 =head2 Changes to Existing Documentation
303 XXX Changes which significantly change existing files in F<pod/> go here.
304 However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
313 XXX Description of the change here
319 The following additions or changes have been made to diagnostic output,
320 including warnings and fatal error messages. For the complete list of
321 diagnostic messages, see L<perldiag>.
323 XXX New or changed warnings emitted by the core's C<C> code go here. Also
324 include any changes in L<perldiag> that reconcile it to the C<C> code.
326 [ Within each section, list entries as a =item entry ]
328 =head2 New Diagnostics
330 XXX Newly added diagnostic messages go here
336 Regexp modifier "/%c" may not appear twice
338 (F syntax) The regular expression pattern had one of the mutually exclusive
339 modifiers repeated. Remove all but one of the occurrences.
343 Regexp modifiers "/%c" and "/%c" are mutually exclusive
345 (F syntax) The regular expression pattern had more than one of the mutually
346 exclusive modifiers. Retain only the modifier that is supposed to be there.
350 Insecure user-defined property %s
352 (F) Perl detected tainted data when trying to compile a regular
353 expression that contains a call to a user-defined character property
354 function, i.e. C<\p{IsFoo}> or C<\p{InFoo}>.
355 See L<perlunicode/User-Defined Character Properties> and L<perlsec>.
359 =head2 Changes to Existing Diagnostics
361 XXX Changes (i.e. rewording) of diagnostic messages go here
371 =head1 Utility Changes
373 XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
374 here. Most of these are built within the directories F<utils> and F<x2p>.
376 [ List utility changes as a =head3 entry for each utility and =item
377 entries for each change
378 Use L<XXX> with program names to get proper documentation linking. ]
390 =head1 Configuration and Compilation
392 XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
393 go here. Any other changes to the Perl build process should be listed here.
394 However, any platform-specific changes should be listed in the
395 L</Platform Support> section, instead.
397 [ List changes as a =item entry ].
409 XXX Any significant changes to the testing of a freshly built perl should be
410 listed here. Changes which create B<new> files in F<t/> go here as do any
411 large changes to the testing harness (e.g. when parallel testing was added).
412 Changes to existing files in F<t/> aren't worth summarising, although the bugs
413 that they represent may be covered elsewhere.
415 Some of the tests have been refactored. In some cases they were moved to
422 The tests for C<split /\s/> and Unicode have been moved from
423 F<t/op/split.t> to F<t/op/split_unicode.t>.
427 F<t/re/re.t> has been moved to F<ext/re/t/re_funcs_u.t>.
431 The tests for [perl #72922] have been moved from F<t/re/qr.t> to
436 =head1 Platform Support
438 XXX Any changes to platform support should be listed in the sections below.
440 [ Within the sections, list each platform as a =item entry with specific
441 changes as paragraphs below it. ]
445 XXX List any platforms that this version of perl compiles on, that previous
446 versions did not. These will either be enabled by new files in the F<hints/>
447 directories, or new subdirectories and F<README> files at the top level of the
452 =item XXX-some-platform
458 =head2 Discontinued Platforms
460 XXX List any platforms that this version of perl no longer compiles on.
464 =item XXX-some-platform
470 =head2 Platform-Specific Notes
472 XXX List any changes for specific platforms. This could include configuration
473 and compilation changes or changes in portability/compatibility. However,
474 changes within modules for platforms should generally be listed in the
475 L</Modules and Pragmata> section.
479 =item XXX-some-platform
485 =head1 Internal Changes
487 XXX Changes which affect the interface available to C<XS> code go here.
488 Other significant internal changes for future core maintainers should
491 [ List each test improvement as a =item entry ]
501 =head1 Selected Bug Fixes
503 XXX Important bug fixes in the core language are summarised here.
504 Bug fixes in files in F<ext/> and F<lib/> are best summarised in
505 L</Modules and Pragmata>.
511 A fix for a bug in C<length(undef)> in 5.13.4 introduced a regression that
512 meant C<print length undef> did not warn when warnings were enabled. It now
513 correctly warns [perl #85508].
517 The C<(?|...)> regular expression construct no longer crashes if the final
518 branch has more sets of capturing parentheses than any other branch. This
519 was fixed in Perl 5.10.1 for the case of a single branch, but that fix did
520 not take multiple branches into account [perl #84746].
524 Accessing an element of a package array with a hard-coded number (as
525 opposed to an arbitrary expression) would crash if the array did not exist.
526 Usually the array would be autovivified during compilation, but typeglob
527 manipulation could remove it, as in these two cases which used to crash:
529 *d = *a; print $d[0];
530 undef *d; print $d[0];
534 C<#line> directives in string evals were not properly updating the arrays
535 of lines of code (C<< @{"_<..."} >>) that the debugger (or any debugging or
536 profiling module) uses. In threaded builds, they were not being updated at
537 all. In non-threaded builds, the line number was ignored, so any change to
538 the existing line number would cause the lines to be misnumbered
543 C<$AUTOLOAD> used to remain tainted forever if it ever became tainted. Now
544 it is correctly untainted if an autoloaded method is called and the method
545 name was not tainted.
549 A bug has been fixed in the implementation of C<{...}> quantifiers in
550 regular expressions that prevented the code block in
551 C</((\w+)(?{ print $2 })){2}/> from seeing the C<$2> sometimes
556 =head1 Known Problems
558 XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
559 tests that had to be C<TODO>ed for the release would be noted here, unless
560 they were specific to a particular platform (see below).
562 This is a list of some significant unfixed bugs, which are regressions
563 from either 5.XXX.XXX or 5.XXX.XXX.
565 [ List each fix as a =item entry ]
577 XXX If any significant core contributor has died, we've added a short obituary
580 =head1 Acknowledgements
582 XXX The list of people to thank goes here.
584 =head1 Reporting Bugs
586 If you find what you think is a bug, you might check the articles
587 recently posted to the comp.lang.perl.misc newsgroup and the perl
588 bug database at http://rt.perl.org/perlbug/ . There may also be
589 information at http://www.perl.org/ , the Perl Home Page.
591 If you believe you have an unreported bug, please run the L<perlbug>
592 program included with your release. Be sure to trim your bug down
593 to a tiny but sufficient test case. Your bug report, along with the
594 output of C<perl -V>, will be sent off to perlbug@perl.org to be
595 analysed by the Perl porting team.
597 If the bug you are reporting has security implications, which make it
598 inappropriate to send to a publicly archived mailing list, then please send
599 it to perl5-security-report@perl.org. This points to a closed subscription
600 unarchived mailing list, which includes all the core committers, who be able
601 to help assess the impact of issues, figure out a resolution, and help
602 co-ordinate the release of patches to mitigate or fix the problem across all
603 platforms on which Perl is supported. Please only use this address for
604 security issues in the Perl core, not for modules independently
609 The F<Changes> file for an explanation of how to view exhaustive details
612 The F<INSTALL> file for how to build Perl.
614 The F<README> file for general stuff.
616 The F<Artistic> and F<Copying> files for copyright information.