5 [ this is a template for a new perldelta file. Any text flagged as XXX needs
6 to be processed before release. ]
8 perldelta - what is new for perl v5.19.5
12 This document describes differences between the 5.19.4 release and the 5.19.5
15 If you are upgrading from an earlier release such as 5.19.3, first read
16 L<perl5194delta>, which describes differences between 5.19.3 and 5.19.4.
20 XXX Any important notices here
22 =head1 Core Enhancements
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.
28 [ List each enhancement as a =head2 entry ]
30 =head2 Unicode 6.3 now supported
32 Perl now supports and is shipped with Unicode 6.3 (though Perl may be
33 recompiled with any previous Unicode release as well). A detailed list of
34 Unicode 6.3 changes is at L<http://www.unicode.org/versions/Unicode6.3.0/>.
36 =head2 Experimental Postfix Dereferencing
38 When the C<postderef> feature is in effect, the following syntactical
39 equivalencies are set up:
41 $sref->$*; # same as ${ $sref } # interpolates
42 $aref->@*; # same as @{ $aref } # interpolates
43 $href->%*; # same as %{ $href }
44 $cref->&*; # same as &{ $cref }
45 $gref->**; # same as *{ $gref }
47 $gref->*{ $slot }; # same as *{ $gref }{ $slot }
49 $aref->@[ ... ]; # same as @$aref[ ... ] # interpolates
50 $href->@{ ... }; # same as @$href{ ... } # interpolates
51 $aref->%[ ... ]; # same as %$aref[ ... ]
52 $href->%{ ... }; # same as %$href{ ... }
54 Those marked as interpolating only interpolate if the associated
55 C<postderef_qq> feature is also enabled. This feature is B<experimental> and
56 will trigger C<experimental::postderef>-category warnings when used, unless
59 For more information, consult L<the Postfix Dereference Syntax section of
60 perlref|perlref/Postfix Dereference Syntax>.
64 XXX Any security-related notices go here. In particular, any security
65 vulnerabilities closed should be noted here rather than in the
66 L</Selected Bug Fixes> section.
68 [ List each security issue as a =head2 entry ]
70 =head1 Incompatible Changes
72 XXX For a release on a stable branch, this section aspires to be:
74 There are no changes intentionally incompatible with 5.XXX.XXX
75 If any exist, they are bugs, and we request that you submit a
76 report. See L</Reporting Bugs> below.
78 [ List each incompatible change as a =head2 entry ]
80 =head2 Functions C<PerlIO_vsprintf> and C<PerlIO_sprintf> have been removed
82 These two functions, undocumented, unused in CPAN, and problematic have been
87 XXX Any deprecated features, syntax, modules etc. should be listed here.
89 =head2 Module removals
91 XXX Remove this section if inapplicable.
93 The following modules will be removed from the core distribution in a
94 future release, and will at that time need to be installed from CPAN.
95 Distributions on CPAN which require these modules will need to list them as
98 The core versions of these modules will now issue C<"deprecated">-category
99 warnings to alert you to this fact. To silence these deprecation warnings,
100 install the modules in question from CPAN.
102 Note that these are (with rare exceptions) fine modules that you are encouraged
103 to continue to use. Their disinclusion from core primarily hinges on their
104 necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
105 not usually on concerns over their design.
109 XXX Note that deprecated modules should be listed here even if they are listed
110 as an updated module in the L</Modules and Pragmata> section.
114 [ List each other deprecation as a =head2 entry ]
116 =head1 Performance Enhancements
118 XXX Changes which enhance performance without changing behaviour go here.
119 There may well be none in a stable release.
121 [ List each enhancement as a =item entry ]
127 Perl has an optimizer for regular expression patterns. It analyzes the pattern
128 to find things such as the minimum length a string has to be to match, etc. It
129 now better handles code points that are above the Latin1 range.
133 =head1 Modules and Pragmata
135 XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
136 go here. If Module::CoreList is updated, generate an initial draft of the
137 following sections using F<Porting/corelist-perldelta.pl>, which prints stub
138 entries to STDOUT. Results can be pasted in place of the '=head2' entries
139 below. A paragraph summary for important changes should then be added by hand.
140 In an ideal world, dual-life modules would have a F<Changes> file that could be
143 [ Within each section, list entries as a =item entry ]
145 =head2 New Modules and Pragmata
155 =head2 Updated Modules and Pragmata
161 L<autodie> has been upgraded from version 2.21 to 2.22.
163 No changes have been made to the installed code other than the version bump to
164 keep in sync with the latest CPAN release.
168 L<CPAN::Meta> has been upgraded from version 2.132620 to 2.132830.
170 L<CPAN::Meta::Prereqs> now has a C<merged_requirements> method for combining
171 requirements across multiple phases and types, and an invalid 'meta-spec' is no
172 longer a fatal error.
176 L<CPAN::Meta::Requirements> has been upgraded from version 2.123 to 2.125.
178 No changes have been made to the installed code other than the version bump to
179 keep in sync with the latest CPAN release.
183 L<CPAN::Meta::YAML> has been upgraded from version 0.008 to 0.010.
185 No material changes have been made to the installed code other than the version
186 bump to keep in sync with the latest CPAN release.
190 L<Cwd> has been upgraded from version 3.44 to 3.45.
192 An obsolete #define has been removed from the XS code.
196 L<ExtUtils::Install> has been upgraded from version 1.60 to 1.61.
198 Some POD formatting errors in the documentation have been corrected.
202 L<ExtUtils::MakeMaker> has been upgraded from version 6.76 to 6.79_01.
204 Numerous updates and bug fixes are incorporated. See the F<Changes> file for
209 L<feature> has been upgraded from version 1.33 to 1.34.
211 The new features C<postderef> and C<postderef_qq> have been added.
215 L<File::Fetch> has been upgraded from version 0.42 to 0.44.
217 No changes have been made to the installed code other than the version bump to
218 keep in sync with the latest CPAN release.
222 L<File::Glob> has been upgraded from version 1.21 to 1.22.
224 Since Perl 5.16, code that used C<glob> inside a thread had been
225 unintentionally sharing state between threads. This has now been fixed. [perl
230 L<File::Temp> has been upgraded from version 0.2301 to 0.2304.
232 Required versions of other modules used are now listed more explicitly, L<base>
233 is now used instead of L<parent>, and L<Exporter> is no longer inherited from.
237 L<Getopt::Long> has been upgraded from version 2.41 to 2.42.
239 The floating point specifier C<name=f> no longer erroneously accepts values
240 like 1.2.3. [cpan #88707]
244 L<HTTP::Tiny> has been upgraded from version 0.035 to 0.036.
246 No changes have been made to the installed code other than the version bump to
247 keep in sync with the latest CPAN release.
251 L<List::Util> has been upgraded from version 1.32 to 1.33.
253 The list reduction functions C<any>, C<all>, C<none> and C<notall> have been
258 L<Module::CoreList> has been upgraded from version 2.99 to 3.00.
260 The list of Perl versions covered has been updated, %delta is now exported, and
261 a bug in C<is_core> whereby it wrongly assumed a linear list of releases has
266 L<Module::Metadata> has been upgraded from version 1.000018 to 1.000019.
268 Warnings are now disabled during version evaluation.
272 L<Parse::CPAN::Meta> has been upgraded from version 1.4407 to 1.4409.
274 No changes have been made to the installed code other than the version bump to
275 keep in sync with the latest CPAN release.
279 L<Perl::OSType> has been upgraded from version 1.005 to 1.006.
281 No changes have been made to the installed code other than the version bump to
282 keep in sync with the latest CPAN release.
286 The podlators modules have been upgraded from version 2.5.1 to 2.5.3.
288 Numerous updates and bug fixes are incorporated. See the F<Changes> file in
289 the CPAN distribution for full details.
293 L<Test::Harness> has been upgraded from version 3.28 to 3.29.
295 All modules now use C<our> rather than C<use vars>, have C<use warnings>
296 enabled and C<use parent> instead of @ISA.
300 L<threads> has been upgraded from version 1.87 to 1.89.
302 The documentation of C<alarm> and C<_handle> has been updated.
306 L<Unicode::Normalize> has been upgraded from version 1.16 to 1.17.
308 The module now C<die>s if it cannot get Unicode code points using C<unpack>.
309 (There is already a similar C<die> if Unicode code points cannot be stringified
314 L<warnings> has been upgraded from version 1.19 to 1.20.
316 The new warnings category C<experimental::postderef> has been added.
320 =head2 Removed Modules and Pragmata
332 XXX Changes to files in F<pod/> go here. Consider grouping entries by
333 file and be sure to link to the appropriate page, e.g. L<perlfunc>.
335 =head2 New Documentation
337 XXX Changes which create B<new> files in F<pod/> go here.
341 XXX Description of the purpose of the new file here
343 =head2 Changes to Existing Documentation
345 XXX Changes which significantly change existing files in F<pod/> go here.
346 However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
355 Documentation of the new postfix dereference syntax has been added.
365 The documentation has been updated in the light of recent changes to
376 Three L<English> variable names which have long been documented but do not
377 actually exist have been removed from the documentation.
383 The following additions or changes have been made to diagnostic output,
384 including warnings and fatal error messages. For the complete list of
385 diagnostic messages, see L<perldiag>.
387 XXX New or changed warnings emitted by the core's C<C> code go here. Also
388 include any changes in L<perldiag> that reconcile it to the C<C> code.
390 =head2 New Diagnostics
392 XXX Newly added diagnostic messages go under here, separated into New Errors
401 XXX L<message|perldiag/"message">
411 L<Postfix dereference is experimental|perldiag/"Postfix dereference is experimental">
413 (S experimental::postderef) This warning is emitted if you use the experimental
414 postfix dereference syntax. Simply suppress the warning if you want to use the
415 feature, but know that in doing so you are taking the risk of using an
416 experimental feature which may change or be removed in a future Perl version:
418 no warnings "experimental::postderef";
419 use feature "postderef", "postderef_qq";
427 =head2 Changes to Existing Diagnostics
429 XXX Changes (i.e. rewording) of diagnostic messages go here
435 XXX Describe change here
439 =head1 Utility Changes
441 XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
442 Most of these are built within the directories F<utils> and F<x2p>.
444 [ List utility changes as a =head3 entry for each utility and =item
445 entries for each change
446 Use L<XXX> with program names to get proper documentation linking. ]
458 =head1 Configuration and Compilation
460 XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
461 go here. Any other changes to the Perl build process should be listed here.
462 However, any platform-specific changes should be listed in the
463 L</Platform Support> section, instead.
465 [ List changes as a =item entry ].
477 XXX Any significant changes to the testing of a freshly built perl should be
478 listed here. Changes which create B<new> files in F<t/> go here as do any
479 large changes to the testing harness (e.g. when parallel testing was added).
480 Changes to existing files in F<t/> aren't worth summarizing, although the bugs
481 that they represent may be covered elsewhere.
483 [ List each test improvement as a =item entry ]
489 The new postfix dereference syntax is tested by a new test script,
490 F<t/op/postfixderef.t>.
494 =head1 Platform Support
496 XXX Any changes to platform support should be listed in the sections below.
498 [ Within the sections, list each platform as a =item entry with specific
499 changes as paragraphs below it. ]
503 XXX List any platforms that this version of perl compiles on, that previous
504 versions did not. These will either be enabled by new files in the F<hints/>
505 directories, or new subdirectories and F<README> files at the top level of the
510 =item XXX-some-platform
516 =head2 Discontinued Platforms
518 XXX List any platforms that this version of perl no longer compiles on.
522 =item XXX-some-platform
528 =head2 Platform-Specific Notes
530 XXX List any changes for specific platforms. This could include configuration
531 and compilation changes or changes in portability/compatibility. However,
532 changes within modules for platforms should generally be listed in the
533 L</Modules and Pragmata> section.
537 =item XXX-some-platform
543 =head1 Internal Changes
545 XXX Changes which affect the interface available to C<XS> code go here. Other
546 significant internal changes for future core maintainers should be noted as
549 [ List each change as a =item entry ]
559 =head1 Selected Bug Fixes
561 XXX Important bug fixes in the core language are summarized here. Bug fixes in
562 files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
564 [ List each fix as a =item entry ]
570 C<last> no longer returns values that the same statement has accumulated so
571 far, fixing amongst other things the long-standing bug that C<push @a, last>
572 would try to return the @a, copying it like a scalar in the process and
573 resulting in the error, "Bizarre copy of ARRAY in last." [perl #3112]
577 An optimization in Perl 5.18 made incorrect assumptions causing a bad
578 interaction with the L<Devel::CallParser> CPAN module. This was partially
579 fixed in Perl 5.19.4, but the fix was not sufficient and another fault has now
584 =head1 Known Problems
586 XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
587 tests that had to be C<TODO>ed for the release would be noted here. Unfixed
588 platform specific bugs also go here.
590 [ List each fix as a =item entry ]
602 XXX If any significant core contributor has died, we've added a short obituary
605 =head1 Acknowledgements
607 XXX Generate this with:
609 perl Porting/acknowledgements.pl v5.19.4..HEAD
611 =head1 Reporting Bugs
613 If you find what you think is a bug, you might check the articles recently
614 posted to the comp.lang.perl.misc newsgroup and the perl bug database at
615 http://rt.perl.org/perlbug/ . There may also be information at
616 http://www.perl.org/ , the Perl Home Page.
618 If you believe you have an unreported bug, please run the L<perlbug> program
619 included with your release. Be sure to trim your bug down to a tiny but
620 sufficient test case. Your bug report, along with the output of C<perl -V>,
621 will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
623 If the bug you are reporting has security implications, which make it
624 inappropriate to send to a publicly archived mailing list, then please send it
625 to perl5-security-report@perl.org. This points to a closed subscription
626 unarchived mailing list, which includes all the core committers, who will be
627 able to help assess the impact of issues, figure out a resolution, and help
628 co-ordinate the release of patches to mitigate or fix the problem across all
629 platforms on which Perl is supported. Please only use this address for
630 security issues in the Perl core, not for modules independently distributed on
635 The F<Changes> file for an explanation of how to view exhaustive details on
638 The F<INSTALL> file for how to build Perl.
640 The F<README> file for general stuff.
642 The F<Artistic> and F<Copying> files for copyright information.