5 perldelta - what is new for perl v5.15.9
9 This document describes differences between the 5.15.8 release and
12 If you are upgrading from an earlier release such as 5.15.7, first read
13 L<perl5158delta>, which describes differences between 5.15.7 and
18 This space intentionally left blank.
20 =head1 Core Enhancements
22 =head2 C<< no feature; >> now means reset to default
24 C<< no feature >> now resets to the default feature set. To disable all
25 features (which is likely to be a pretty special-purpose request, since
26 it presumably won't match any named set of semantics) you can now
27 write C<< no feature ':all' >>.
30 [ List each enhancement as a =head2 entry ]
34 XXX Any security-related notices go here. In particular, any security
35 vulnerabilities closed should be noted here rather than in the
36 L</Selected Bug Fixes> section.
38 [ List each security issue as a =head2 entry ]
40 =head1 Incompatible Changes
42 XXX For a release on a stable branch, this section aspires to be:
44 There are no changes intentionally incompatible with 5.XXX.XXX
45 If any exist, they are bugs, and we request that you submit a
46 report. See L</Reporting Bugs> below.
48 [ List each incompatible change as a =head2 entry ]
52 =head2 Literal C<< "{" >> characters in regular expressions.
54 It has been documented that the current plans include requiring a
55 literal C<< "{" >> to be escaped: 5.18 will emit deprecation warnings,
56 and it will be required in 5.20.
58 =head1 Performance Enhancements
64 Fix a slowdown in freeing nested hashes. This may speedup the exit of
69 =head1 Modules and Pragmata
71 XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
72 go here. If Module::CoreList is updated, generate an initial draft of the
73 following sections using F<Porting/corelist-perldelta.pl>, which prints stub
74 entries to STDOUT. Results can be pasted in place of the '=head2' entries
75 below. A paragraph summary for important changes should then be added by hand.
76 In an ideal world, dual-life modules would have a F<Changes> file that could be
79 [ Within each section, list entries as a =item entry ]
81 =head2 New Modules and Pragmata
91 =head2 Updated Modules and Pragmata
97 L<XXX> has been upgraded from version 0.69 to version 0.70.
101 =head2 Removed Modules and Pragmata
113 XXX Changes to files in F<pod/> go here. Consider grouping entries by
114 file and be sure to link to the appropriate page, e.g. L<perlfunc>.
116 =head2 New Documentation
118 XXX Changes which create B<new> files in F<pod/> go here.
122 XXX Description of the purpose of the new file here
124 =head2 Changes to Existing Documentation
126 XXX Changes which significantly change existing files in F<pod/> go here.
127 However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
136 XXX Description of the change here
142 The following additions or changes have been made to diagnostic output,
143 including warnings and fatal error messages. For the complete list of
144 diagnostic messages, see L<perldiag>.
146 XXX New or changed warnings emitted by the core's C<C> code go here. Also
147 include any changes in L<perldiag> that reconcile it to the C<C> code.
149 [ Within each section, list entries as a =item entry that links to perldiag,
154 L<Invalid version object|perldiag/"Invalid version object">
157 =head2 New Diagnostics
159 XXX Newly added diagnostic messages go here
162 L<lvalue attribute %s already-defined subroutine|perldiag/"lvalue attribute %s already-defined subroutine">, which replaces
163 C<< lvalue attribute cannot be removed after the subroutine has been defined >>.
171 XXX L<message|perldiag/"message">
181 XXX L<message|perldiag/"message">
185 =head2 Changes to Existing Diagnostics
187 XXX Changes (i.e. rewording) of diagnostic messages go here
193 XXX Describe change here
197 =head1 Utility Changes
199 XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go
200 here. Most of these are built within the directories F<utils> and F<x2p>.
202 [ List utility changes as a =head3 entry for each utility and =item
203 entries for each change
204 Use L<XXX> with program names to get proper documentation linking. ]
216 =head1 Configuration and Compilation
218 XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
219 go here. Any other changes to the Perl build process should be listed here.
220 However, any platform-specific changes should be listed in the
221 L</Platform Support> section, instead.
223 [ List changes as a =item entry ].
235 XXX Any significant changes to the testing of a freshly built perl should be
236 listed here. Changes which create B<new> files in F<t/> go here as do any
237 large changes to the testing harness (e.g. when parallel testing was added).
238 Changes to existing files in F<t/> aren't worth summarising, although the bugs
239 that they represent may be covered elsewhere.
241 [ List each test improvement as a =item entry ]
247 F<< t/op/require_37033.t>> has been added, to test that C<require> always closes
248 the file handle that it opens. Previously, it had been leaking the file handle
249 if it happened to have file descriptor 0, which would happen if C<require> was
250 called (explicitly or implicitly) when C<STDIN> had been closed.
254 =head1 Platform Support
256 XXX Any changes to platform support should be listed in the sections below.
258 [ Within the sections, list each platform as a =item entry with specific
259 changes as paragraphs below it. ]
263 XXX List any platforms that this version of perl compiles on, that previous
264 versions did not. These will either be enabled by new files in the F<hints/>
265 directories, or new subdirectories and F<README> files at the top level of the
270 =item XXX-some-platform
276 =head2 Discontinued Platforms
278 XXX List any platforms that this version of perl no longer compiles on.
282 =item XXX-some-platform
288 =head2 Platform-Specific Notes
290 XXX List any changes for specific platforms. This could include configuration
291 and compilation changes or changes in portability/compatibility. However,
292 changes within modules for platforms should generally be listed in the
293 L</Modules and Pragmata> section.
297 =item XXX-some-platform
303 =head1 Internal Changes
305 XXX Changes which affect the interface available to C<XS> code go here.
306 Other significant internal changes for future core maintainers should
309 [ List each change as a =item entry ]
319 =head1 Selected Bug Fixes
321 XXX Important bug fixes in the core language are summarised here.
322 Bug fixes in files in F<ext/> and F<lib/> are best summarised in
323 L</Modules and Pragmata>.
325 [ List each fix as a =item entry ]
331 I<Takri> is now considered a script that uses two characters. This corrects
332 a Unicode 6.1 omission.
336 C<< perlfunc.hmtl >> is now being generated again. [perl #107870]
340 C<< $$ >> is no longer tainted. Since this value comes directly from
341 C<< getpid() >>, it is always safe.
345 Fix leaking a file handle. [perl #37033]
349 An off-by-one error caused C<< /[:upper:]/ >> and C<< /[:punct:]/ >> to
350 unexepectly match characters with code points above 255. This has been
351 rectified. [perl 111400].
355 C<< (?foo: ...) >> no longer loses passed in character set.
359 Allow attributes to set C<< :lvalue >> on a defined sub. [perl 107366].
363 C<< die; >> with a non-reference, non-string value in $@ now properly
364 propgates that value [perl #111654].
368 C<< Term::ReadLine >> now uses AnyEvent instead of Tk for an event loop.
373 =head1 Known Problems
375 XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
376 tests that had to be C<TODO>ed for the release would be noted here, unless
377 they were specific to a particular platform (see below).
379 This is a list of some significant unfixed bugs, which are regressions
380 from either 5.XXX.XXX or 5.XXX.XXX.
382 [ List each fix as a =item entry ]
394 XXX If any significant core contributor has died, we've added a short obituary
397 =head1 Acknowledgements
399 XXX Redo this on 2012-03-20
401 Perl 5.15.9 represents approximately 4 weeks of development since Perl 5.15.8
402 and contains approximately 74,000 lines of changes across 470 files from 23
405 Perl continues to flourish into its third decade thanks to a vibrant community
406 of users and developers. The following people are known to have contributed the
407 improvements that became Perl 5.15.9:
409 Aaron Crane, Abigail, Chris 'BinGOs' Williams, Craig A. Berry, Dave Rolsky,
410 David Cantrell, David Golden, David Mitchell, Eric Brine, Father Chrysostomos,
411 Florian Ragwitz, James E Keenan, Jesse Vincent, Karl Williamson, Marc Green,
412 Max Maischein, Nicholas Clark, Pau Amma, Reini Urban, Ricardo Signes, Tony
413 Cook, Yves Orton, Zefram.
415 The list above is almost certainly incomplete as it is automatically generated
416 from version control history. In particular, it does not include the names of
417 the (very much appreciated) contributors who reported issues to the Perl bug
420 Many of the changes included in this version originated in the CPAN modules
421 included in Perl's core. We're grateful to the entire CPAN community for
422 helping Perl to flourish.
424 For a more complete list of all of Perl's historical contributors, please see
425 the F<AUTHORS> file in the Perl source distribution.
427 =head1 Reporting Bugs
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.
434 If you believe you have an unreported bug, please run the L<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.
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
442 it to perl5-security-report@perl.org. This points to a closed subscription
443 unarchived mailing list, which includes
444 all the core committers, who will be able
445 to help assess the impact of issues, figure out a resolution, and help
446 co-ordinate the release of patches to mitigate or fix the problem across all
447 platforms on which Perl is supported. Please only use this address for
448 security issues in the Perl core, not for modules independently
453 The F<Changes> file for an explanation of how to view exhaustive details
456 The F<INSTALL> file for how to build Perl.
458 The F<README> file for general stuff.
460 The F<Artistic> and F<Copying> files for copyright information.