This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
In feature.pm, inline current_bundle() into __common(), its only caller.
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
204b72a4 5perldelta - what is new for perl v5.15.9
88c5c971 6
c1e74734 7=head1 DESCRIPTION
8f12b018 8
204b72a4
MM
9This document describes differences between the 5.15.8 release and
10the 5.15.9 release.
8f12b018 11
204b72a4
MM
12If you are upgrading from an earlier release such as 5.15.7, first read
13L<perl5158delta>, which describes differences between 5.15.7 and
145.15.8.
26afcec5 15
c1e74734 16=head1 Notice
8f12b018 17
d5dc7001 18This space intentionally left blank.
d7fbd56d 19
c1e74734 20=head1 Core Enhancements
d7fbd56d 21
d5dc7001
A
22=head2 C<< no feature; >> now means reset to default
23
24C<< no feature >> now resets to the default feature set. To disable all
25features (which is likely to be a pretty special-purpose request, since
26it presumably won't match any named set of semantics) you can now
27write C<< no feature ':all' >>.
28
204b72a4
MM
29
30[ List each enhancement as a =head2 entry ]
27f00e3d 31
c1e74734 32=head1 Security
711a3903 33
204b72a4
MM
34XXX Any security-related notices go here. In particular, any security
35vulnerabilities closed should be noted here rather than in the
36L</Selected Bug Fixes> section.
27f00e3d 37
204b72a4 38[ List each security issue as a =head2 entry ]
27f00e3d 39
c1e74734 40=head1 Incompatible Changes
6ba817f3 41
204b72a4 42XXX For a release on a stable branch, this section aspires to be:
7620cb10 43
204b72a4
MM
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.
7620cb10 47
204b72a4 48[ List each incompatible change as a =head2 entry ]
d7c042c9 49
204b72a4 50=head1 Deprecations
d7c042c9 51
d5dc7001 52=head2 Literal C<< "{" >> characters in regular expressions.
d7c042c9 53
d5dc7001
A
54It has been documented that the current plans include requiring a
55literal C<< "{" >> to be escaped: 5.18 will emit deprecation warnings,
56and it will be required in 5.20.
985213f2 57
204b72a4 58=head1 Performance Enhancements
985213f2 59
204b72a4 60=over 4
985213f2 61
204b72a4 62=item *
2e2b2571 63
d5dc7001
A
64Fix a slowdown in freeing nested hashes. This may speedup the exit of
65certain programs.
2e2b2571 66
204b72a4 67=back
b240fc0f 68
204b72a4 69=head1 Modules and Pragmata
27f00e3d 70
204b72a4
MM
71XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
72go here. If Module::CoreList is updated, generate an initial draft of the
73following sections using F<Porting/corelist-perldelta.pl>, which prints stub
74entries to STDOUT. Results can be pasted in place of the '=head2' entries
75below. A paragraph summary for important changes should then be added by hand.
76In an ideal world, dual-life modules would have a F<Changes> file that could be
77cribbed.
27f00e3d 78
204b72a4 79[ Within each section, list entries as a =item entry ]
cadced9f 80
c1e74734 81=head2 New Modules and Pragmata
cadced9f 82
c1e74734 83=over 4
632c5d30
NC
84
85=item *
86
204b72a4 87XXX
4e6e9b23 88
c1e74734 89=back
4e6e9b23 90
c1e74734 91=head2 Updated Modules and Pragmata
4e6e9b23 92
c1e74734 93=over 4
1887da8c
RS
94
95=item *
96
d333a655
NC
97L<feature> has been upgraded from version 1.26 to 1.27
98
99C<no feature;> now means reset to default.
589c1691 100
204b72a4 101=back
c11980ad 102
204b72a4 103=head2 Removed Modules and Pragmata
c11980ad 104
204b72a4 105=over 4
c11980ad
MM
106
107=item *
108
204b72a4 109XXX
84ecb73f 110
204b72a4 111=back
a3cc0403 112
204b72a4 113=head1 Documentation
a3cc0403 114
204b72a4
MM
115XXX Changes to files in F<pod/> go here. Consider grouping entries by
116file and be sure to link to the appropriate page, e.g. L<perlfunc>.
a3cc0403 117
204b72a4 118=head2 New Documentation
eb96f3fa 119
204b72a4 120XXX Changes which create B<new> files in F<pod/> go here.
eb96f3fa 121
204b72a4 122=head3 L<XXX>
04ae1553 123
204b72a4 124XXX Description of the purpose of the new file here
c11980ad 125
204b72a4 126=head2 Changes to Existing Documentation
04ae1553 127
204b72a4
MM
128XXX Changes which significantly change existing files in F<pod/> go here.
129However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
130section.
04ae1553 131
204b72a4 132=head3 L<XXX>
c11980ad 133
204b72a4 134=over 4
f50587e0
MM
135
136=item *
137
204b72a4 138XXX Description of the change here
75ff5956 139
204b72a4 140=back
75ff5956 141
204b72a4 142=head1 Diagnostics
75ff5956 143
204b72a4
MM
144The following additions or changes have been made to diagnostic output,
145including warnings and fatal error messages. For the complete list of
146diagnostic messages, see L<perldiag>.
c11980ad 147
204b72a4 148=head2 New Diagnostics
843331c7 149
204b72a4 150=head3 New Errors
c11980ad 151
d5dc7001 152Compared to 5.15.8, 5.15.9 does not introduce new errors.
2a7afa74 153
204b72a4 154=head3 New Warnings
ecd144ea 155
d5dc7001
A
156Compared to 5.15.8, 5.15.9 does not introduce new errors, but see
157L</Changes to Existing Diagnostics>
c11980ad 158
204b72a4 159=head2 Changes to Existing Diagnostics
c11980ad 160
204b72a4 161=over 4
ecd144ea
FC
162
163=item *
164
d5dc7001
A
165L<lvalue attribute %s already-defined subroutine|perldiag/"lvalue attribute %s already-defined subroutine">, which replaces
166C<< lvalue attribute cannot be removed after the subroutine has been defined >>.
9dea6244 167
204b72a4 168=back
9dea6244 169
204b72a4 170=head1 Utility Changes
c11980ad 171
d5dc7001 172No utilities changed between 5.15.8 and 5.15.9.
2a7afa74 173
204b72a4 174=head1 Configuration and Compilation
e9e4ee62 175
204b72a4
MM
176XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
177go here. Any other changes to the Perl build process should be listed here.
178However, any platform-specific changes should be listed in the
179L</Platform Support> section, instead.
c0504019 180
204b72a4 181[ List changes as a =item entry ].
937a45d0 182
204b72a4 183=over 4
937a45d0 184
ef337e16
CBW
185=item *
186
204b72a4 187XXX
ef337e16 188
7f28d7ed 189=back
679b54e7 190
c1e74734 191=head1 Testing
39de7394 192
204b72a4 193=over 4
52272450 194
84ecb73f
SM
195=item *
196
d5dc7001
A
197F<< t/op/require_37033.t >> has been added, to test that C<require>
198always closes the file handle that it opens. Previously, it had been
199leaking the file handle if it happened to have file descriptor 0, which
200would happen if C<require> was called (explicitly or implicitly) when
201C<STDIN> had been closed.
84ecb73f 202
52deee2e 203=back
5dd80d85 204
c1e74734 205=head1 Platform Support
52272450 206
204b72a4 207XXX Any changes to platform support should be listed in the sections below.
ea88c40c 208
204b72a4
MM
209[ Within the sections, list each platform as a =item entry with specific
210changes as paragraphs below it. ]
ea88c40c 211
204b72a4 212=head2 New Platforms
ea88c40c 213
204b72a4
MM
214XXX List any platforms that this version of perl compiles on, that previous
215versions did not. These will either be enabled by new files in the F<hints/>
216directories, or new subdirectories and F<README> files at the top level of the
217source tree.
811ac709 218
204b72a4 219=over 4
811ac709 220
204b72a4 221=item XXX-some-platform
811ac709 222
204b72a4 223XXX
ea88c40c 224
c1e74734 225=back
ea88c40c 226
204b72a4 227=head2 Discontinued Platforms
ea88c40c 228
204b72a4 229XXX List any platforms that this version of perl no longer compiles on.
249950d7 230
204b72a4 231=over 4
249950d7 232
204b72a4 233=item XXX-some-platform
249950d7 234
204b72a4 235XXX
249950d7 236
204b72a4 237=back
249950d7 238
204b72a4 239=head2 Platform-Specific Notes
249950d7 240
204b72a4
MM
241XXX List any changes for specific platforms. This could include configuration
242and compilation changes or changes in portability/compatibility. However,
243changes within modules for platforms should generally be listed in the
244L</Modules and Pragmata> section.
249950d7 245
204b72a4 246=over 4
92c88ef1 247
204b72a4 248=item XXX-some-platform
92c88ef1 249
204b72a4 250XXX
b1ea7742 251
204b72a4 252=back
b1ea7742 253
204b72a4 254=head1 Internal Changes
a1d95121 255
204b72a4
MM
256XXX Changes which affect the interface available to C<XS> code go here.
257Other significant internal changes for future core maintainers should
258be noted as well.
a1d95121 259
204b72a4 260[ List each change as a =item entry ]
ff4ff6f3 261
204b72a4 262=over 4
ff4ff6f3 263
a7bff800
FC
264=item *
265
204b72a4 266XXX
ea317ccb 267
204b72a4 268=back
ea317ccb 269
204b72a4 270=head1 Selected Bug Fixes
a7bff800 271
204b72a4
MM
272XXX Important bug fixes in the core language are summarised here.
273Bug fixes in files in F<ext/> and F<lib/> are best summarised in
274L</Modules and Pragmata>.
a7bff800 275
204b72a4 276[ List each fix as a =item entry ]
0aae26c1 277
204b72a4 278=over 4
0aae26c1
FC
279
280=item *
281
d5dc7001
A
282I<Takri> is now considered a script that uses two characters. This corrects
283a Unicode 6.1 omission.
284
285=item *
286
287C<< perlfunc.hmtl >> is now being generated again. [perl #107870]
288
289=item *
290
291C<< $$ >> is no longer tainted. Since this value comes directly from
292C<< getpid() >>, it is always safe.
293
294=item *
295
296Fix leaking a file handle. [perl #37033]
297
298=item *
299
300An off-by-one error caused C<< /[:upper:]/ >> and C<< /[:punct:]/ >> to
301unexepectly match characters with code points above 255. This has been
302rectified. [perl 111400].
303
304=item *
305
306C<< (?foo: ...) >> no longer loses passed in character set.
307
308=item *
309
310Allow attributes to set C<< :lvalue >> on a defined sub. [perl 107366].
311
312=item *
313
314C<< die; >> with a non-reference, non-string value in $@ now properly
a6bf7a5c 315propgates that value [perl #111654].
0aae26c1 316
d5dc7001
A
317=item *
318
319C<< Term::ReadLine >> now uses AnyEvent instead of Tk for an event loop.
320
321
204b72a4 322=back
0aae26c1 323
204b72a4 324=head1 Known Problems
0aae26c1 325
204b72a4
MM
326XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
327tests that had to be C<TODO>ed for the release would be noted here, unless
328they were specific to a particular platform (see below).
07315176 329
204b72a4
MM
330This is a list of some significant unfixed bugs, which are regressions
331from either 5.XXX.XXX or 5.XXX.XXX.
07315176 332
204b72a4 333[ List each fix as a =item entry ]
5d103fec 334
204b72a4 335=over 4
5d103fec 336
2e2b2571
KW
337=item *
338
204b72a4 339XXX
2e2b2571 340
ea88c40c
FC
341=back
342
204b72a4 343=head1 Obituary
18af289e 344
204b72a4
MM
345XXX If any significant core contributor has died, we've added a short obituary
346here.
c0154fe2 347
52deee2e 348=head1 Acknowledgements
8fe05716 349
d5dc7001
A
350XXX Redo this on 2012-03-20
351
352Perl 5.15.9 represents approximately 4 weeks of development since Perl 5.15.8
353and contains approximately 74,000 lines of changes across 470 files from 23
354authors.
355
356Perl continues to flourish into its third decade thanks to a vibrant community
357of users and developers. The following people are known to have contributed the
358improvements that became Perl 5.15.9:
359
360Aaron Crane, Abigail, Chris 'BinGOs' Williams, Craig A. Berry, Dave Rolsky,
361David Cantrell, David Golden, David Mitchell, Eric Brine, Father Chrysostomos,
362Florian Ragwitz, James E Keenan, Jesse Vincent, Karl Williamson, Marc Green,
363Max Maischein, Nicholas Clark, Pau Amma, Reini Urban, Ricardo Signes, Tony
364Cook, Yves Orton, Zefram.
365
366The list above is almost certainly incomplete as it is automatically generated
367from version control history. In particular, it does not include the names of
368the (very much appreciated) contributors who reported issues to the Perl bug
369tracker.
370
371Many of the changes included in this version originated in the CPAN modules
372included in Perl's core. We're grateful to the entire CPAN community for
373helping Perl to flourish.
204b72a4 374
d5dc7001
A
375For a more complete list of all of Perl's historical contributors, please see
376the F<AUTHORS> file in the Perl source distribution.
29cf780c 377
44691e6f
AB
378=head1 Reporting Bugs
379
380If you find what you think is a bug, you might check the articles
52deee2e
DR
381recently posted to the comp.lang.perl.misc newsgroup and the perl
382bug database at http://rt.perl.org/perlbug/ . There may also be
44691e6f
AB
383information at http://www.perl.org/ , the Perl Home Page.
384
385If you believe you have an unreported bug, please run the L<perlbug>
52deee2e
DR
386program included with your release. Be sure to trim your bug down
387to a tiny but sufficient test case. Your bug report, along with the
388output of C<perl -V>, will be sent off to perlbug@perl.org to be
389analysed by the Perl porting team.
44691e6f
AB
390
391If the bug you are reporting has security implications, which make it
52deee2e
DR
392inappropriate to send to a publicly archived mailing list, then please send
393it to perl5-security-report@perl.org. This points to a closed subscription
394unarchived mailing list, which includes
395all the core committers, who will be able
396to help assess the impact of issues, figure out a resolution, and help
397co-ordinate the release of patches to mitigate or fix the problem across all
398platforms on which Perl is supported. Please only use this address for
399security issues in the Perl core, not for modules independently
400distributed on CPAN.
44691e6f
AB
401
402=head1 SEE ALSO
403
52deee2e
DR
404The F<Changes> file for an explanation of how to view exhaustive details
405on what changed.
44691e6f
AB
406
407The F<INSTALL> file for how to build Perl.
408
409The F<README> file for general stuff.
410
411The F<Artistic> and F<Copying> files for copyright information.
412
413=cut