This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Merge the feature and B::Deparse refactoring to blead.
[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
58856662
NC
97L<B::Deparse> has been upgrade from version 1.11 to 1.12
98
99This fixes a post-v5.14 regression in deparsing C<say> (I<etc>) under
100C<use 5.10.0;>.
101
102=item *
103
d333a655
NC
104L<feature> has been upgraded from version 1.26 to 1.27
105
106C<no feature;> now means reset to default.
589c1691 107
58856662
NC
108The code has been refactored to reduce duplication.
109
204b72a4 110=back
c11980ad 111
204b72a4 112=head2 Removed Modules and Pragmata
c11980ad 113
204b72a4 114=over 4
c11980ad
MM
115
116=item *
117
204b72a4 118XXX
84ecb73f 119
204b72a4 120=back
a3cc0403 121
204b72a4 122=head1 Documentation
a3cc0403 123
204b72a4
MM
124XXX Changes to files in F<pod/> go here. Consider grouping entries by
125file and be sure to link to the appropriate page, e.g. L<perlfunc>.
a3cc0403 126
204b72a4 127=head2 New Documentation
eb96f3fa 128
204b72a4 129XXX Changes which create B<new> files in F<pod/> go here.
eb96f3fa 130
204b72a4 131=head3 L<XXX>
04ae1553 132
204b72a4 133XXX Description of the purpose of the new file here
c11980ad 134
204b72a4 135=head2 Changes to Existing Documentation
04ae1553 136
204b72a4
MM
137XXX Changes which significantly change existing files in F<pod/> go here.
138However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
139section.
04ae1553 140
204b72a4 141=head3 L<XXX>
c11980ad 142
204b72a4 143=over 4
f50587e0
MM
144
145=item *
146
204b72a4 147XXX Description of the change here
75ff5956 148
204b72a4 149=back
75ff5956 150
204b72a4 151=head1 Diagnostics
75ff5956 152
204b72a4
MM
153The following additions or changes have been made to diagnostic output,
154including warnings and fatal error messages. For the complete list of
155diagnostic messages, see L<perldiag>.
c11980ad 156
204b72a4 157=head2 New Diagnostics
843331c7 158
204b72a4 159=head3 New Errors
c11980ad 160
d5dc7001 161Compared to 5.15.8, 5.15.9 does not introduce new errors.
2a7afa74 162
204b72a4 163=head3 New Warnings
ecd144ea 164
d5dc7001
A
165Compared to 5.15.8, 5.15.9 does not introduce new errors, but see
166L</Changes to Existing Diagnostics>
c11980ad 167
204b72a4 168=head2 Changes to Existing Diagnostics
c11980ad 169
204b72a4 170=over 4
ecd144ea
FC
171
172=item *
173
d5dc7001
A
174L<lvalue attribute %s already-defined subroutine|perldiag/"lvalue attribute %s already-defined subroutine">, which replaces
175C<< lvalue attribute cannot be removed after the subroutine has been defined >>.
9dea6244 176
204b72a4 177=back
9dea6244 178
204b72a4 179=head1 Utility Changes
c11980ad 180
d5dc7001 181No utilities changed between 5.15.8 and 5.15.9.
2a7afa74 182
204b72a4 183=head1 Configuration and Compilation
e9e4ee62 184
204b72a4
MM
185XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
186go here. Any other changes to the Perl build process should be listed here.
187However, any platform-specific changes should be listed in the
188L</Platform Support> section, instead.
c0504019 189
204b72a4 190[ List changes as a =item entry ].
937a45d0 191
204b72a4 192=over 4
937a45d0 193
ef337e16
CBW
194=item *
195
204b72a4 196XXX
ef337e16 197
7f28d7ed 198=back
679b54e7 199
c1e74734 200=head1 Testing
39de7394 201
204b72a4 202=over 4
52272450 203
84ecb73f
SM
204=item *
205
d5dc7001
A
206F<< t/op/require_37033.t >> has been added, to test that C<require>
207always closes the file handle that it opens. Previously, it had been
208leaking the file handle if it happened to have file descriptor 0, which
209would happen if C<require> was called (explicitly or implicitly) when
210C<STDIN> had been closed.
84ecb73f 211
52deee2e 212=back
5dd80d85 213
c1e74734 214=head1 Platform Support
52272450 215
204b72a4 216XXX Any changes to platform support should be listed in the sections below.
ea88c40c 217
204b72a4
MM
218[ Within the sections, list each platform as a =item entry with specific
219changes as paragraphs below it. ]
ea88c40c 220
204b72a4 221=head2 New Platforms
ea88c40c 222
204b72a4
MM
223XXX List any platforms that this version of perl compiles on, that previous
224versions did not. These will either be enabled by new files in the F<hints/>
225directories, or new subdirectories and F<README> files at the top level of the
226source tree.
811ac709 227
204b72a4 228=over 4
811ac709 229
204b72a4 230=item XXX-some-platform
811ac709 231
204b72a4 232XXX
ea88c40c 233
c1e74734 234=back
ea88c40c 235
204b72a4 236=head2 Discontinued Platforms
ea88c40c 237
204b72a4 238XXX List any platforms that this version of perl no longer compiles on.
249950d7 239
204b72a4 240=over 4
249950d7 241
204b72a4 242=item XXX-some-platform
249950d7 243
204b72a4 244XXX
249950d7 245
204b72a4 246=back
249950d7 247
204b72a4 248=head2 Platform-Specific Notes
249950d7 249
204b72a4
MM
250XXX List any changes for specific platforms. This could include configuration
251and compilation changes or changes in portability/compatibility. However,
252changes within modules for platforms should generally be listed in the
253L</Modules and Pragmata> section.
249950d7 254
204b72a4 255=over 4
92c88ef1 256
204b72a4 257=item XXX-some-platform
92c88ef1 258
204b72a4 259XXX
b1ea7742 260
204b72a4 261=back
b1ea7742 262
204b72a4 263=head1 Internal Changes
a1d95121 264
204b72a4
MM
265XXX Changes which affect the interface available to C<XS> code go here.
266Other significant internal changes for future core maintainers should
267be noted as well.
a1d95121 268
204b72a4 269[ List each change as a =item entry ]
ff4ff6f3 270
204b72a4 271=over 4
ff4ff6f3 272
a7bff800
FC
273=item *
274
204b72a4 275XXX
ea317ccb 276
204b72a4 277=back
ea317ccb 278
204b72a4 279=head1 Selected Bug Fixes
a7bff800 280
204b72a4
MM
281XXX Important bug fixes in the core language are summarised here.
282Bug fixes in files in F<ext/> and F<lib/> are best summarised in
283L</Modules and Pragmata>.
a7bff800 284
204b72a4 285[ List each fix as a =item entry ]
0aae26c1 286
204b72a4 287=over 4
0aae26c1
FC
288
289=item *
290
d5dc7001
A
291I<Takri> is now considered a script that uses two characters. This corrects
292a Unicode 6.1 omission.
293
294=item *
295
296C<< perlfunc.hmtl >> is now being generated again. [perl #107870]
297
298=item *
299
300C<< $$ >> is no longer tainted. Since this value comes directly from
301C<< getpid() >>, it is always safe.
302
303=item *
304
305Fix leaking a file handle. [perl #37033]
306
307=item *
308
309An off-by-one error caused C<< /[:upper:]/ >> and C<< /[:punct:]/ >> to
310unexepectly match characters with code points above 255. This has been
311rectified. [perl 111400].
312
313=item *
314
315C<< (?foo: ...) >> no longer loses passed in character set.
316
317=item *
318
319Allow attributes to set C<< :lvalue >> on a defined sub. [perl 107366].
320
321=item *
322
323C<< die; >> with a non-reference, non-string value in $@ now properly
a6bf7a5c 324propgates that value [perl #111654].
0aae26c1 325
d5dc7001
A
326=item *
327
328C<< Term::ReadLine >> now uses AnyEvent instead of Tk for an event loop.
329
330
204b72a4 331=back
0aae26c1 332
204b72a4 333=head1 Known Problems
0aae26c1 334
204b72a4
MM
335XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
336tests that had to be C<TODO>ed for the release would be noted here, unless
337they were specific to a particular platform (see below).
07315176 338
204b72a4
MM
339This is a list of some significant unfixed bugs, which are regressions
340from either 5.XXX.XXX or 5.XXX.XXX.
07315176 341
204b72a4 342[ List each fix as a =item entry ]
5d103fec 343
204b72a4 344=over 4
5d103fec 345
2e2b2571
KW
346=item *
347
204b72a4 348XXX
2e2b2571 349
ea88c40c
FC
350=back
351
204b72a4 352=head1 Obituary
18af289e 353
204b72a4
MM
354XXX If any significant core contributor has died, we've added a short obituary
355here.
c0154fe2 356
52deee2e 357=head1 Acknowledgements
8fe05716 358
d5dc7001
A
359XXX Redo this on 2012-03-20
360
361Perl 5.15.9 represents approximately 4 weeks of development since Perl 5.15.8
362and contains approximately 74,000 lines of changes across 470 files from 23
363authors.
364
365Perl continues to flourish into its third decade thanks to a vibrant community
366of users and developers. The following people are known to have contributed the
367improvements that became Perl 5.15.9:
368
369Aaron Crane, Abigail, Chris 'BinGOs' Williams, Craig A. Berry, Dave Rolsky,
370David Cantrell, David Golden, David Mitchell, Eric Brine, Father Chrysostomos,
371Florian Ragwitz, James E Keenan, Jesse Vincent, Karl Williamson, Marc Green,
372Max Maischein, Nicholas Clark, Pau Amma, Reini Urban, Ricardo Signes, Tony
373Cook, Yves Orton, Zefram.
374
375The list above is almost certainly incomplete as it is automatically generated
376from version control history. In particular, it does not include the names of
377the (very much appreciated) contributors who reported issues to the Perl bug
378tracker.
379
380Many of the changes included in this version originated in the CPAN modules
381included in Perl's core. We're grateful to the entire CPAN community for
382helping Perl to flourish.
204b72a4 383
d5dc7001
A
384For a more complete list of all of Perl's historical contributors, please see
385the F<AUTHORS> file in the Perl source distribution.
29cf780c 386
44691e6f
AB
387=head1 Reporting Bugs
388
389If you find what you think is a bug, you might check the articles
52deee2e
DR
390recently posted to the comp.lang.perl.misc newsgroup and the perl
391bug database at http://rt.perl.org/perlbug/ . There may also be
44691e6f
AB
392information at http://www.perl.org/ , the Perl Home Page.
393
394If you believe you have an unreported bug, please run the L<perlbug>
52deee2e
DR
395program included with your release. Be sure to trim your bug down
396to a tiny but sufficient test case. Your bug report, along with the
397output of C<perl -V>, will be sent off to perlbug@perl.org to be
398analysed by the Perl porting team.
44691e6f
AB
399
400If the bug you are reporting has security implications, which make it
52deee2e
DR
401inappropriate to send to a publicly archived mailing list, then please send
402it to perl5-security-report@perl.org. This points to a closed subscription
403unarchived mailing list, which includes
404all the core committers, who will be able
405to help assess the impact of issues, figure out a resolution, and help
406co-ordinate the release of patches to mitigate or fix the problem across all
407platforms on which Perl is supported. Please only use this address for
408security issues in the Perl core, not for modules independently
409distributed on CPAN.
44691e6f
AB
410
411=head1 SEE ALSO
412
52deee2e
DR
413The F<Changes> file for an explanation of how to view exhaustive details
414on what changed.
44691e6f
AB
415
416The F<INSTALL> file for how to build Perl.
417
418The F<README> file for general stuff.
419
420The F<Artistic> and F<Copying> files for copyright information.
421
422=cut