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