This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Mention the fix to perlfunc.html in "Configuration and Compilation" as well.
[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
c1e74734 29=head1 Security
711a3903 30
8cfc9af6 31There have been no security related fixed between 5.15.8 and 5.15.9.
27f00e3d 32
c1e74734 33=head1 Incompatible Changes
6ba817f3 34
8cfc9af6 35=head2 C<< no feature; >>
7620cb10 36
8cfc9af6 37C<no feature;> now means reset to default.
d7c042c9 38
204b72a4 39=head1 Deprecations
d7c042c9 40
d5dc7001 41=head2 Literal C<< "{" >> characters in regular expressions.
d7c042c9 42
d5dc7001
A
43It has been documented that the current plans include requiring a
44literal C<< "{" >> to be escaped: 5.18 will emit deprecation warnings,
45and it will be required in 5.20.
985213f2 46
204b72a4 47=head1 Performance Enhancements
985213f2 48
204b72a4 49=over 4
985213f2 50
204b72a4 51=item *
2e2b2571 52
d5dc7001
A
53Fix a slowdown in freeing nested hashes. This may speedup the exit of
54certain programs.
2e2b2571 55
204b72a4 56=back
b240fc0f 57
204b72a4 58=head1 Modules and Pragmata
27f00e3d 59
204b72a4
MM
60XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
61go here. If Module::CoreList is updated, generate an initial draft of the
62following sections using F<Porting/corelist-perldelta.pl>, which prints stub
63entries to STDOUT. Results can be pasted in place of the '=head2' entries
64below. A paragraph summary for important changes should then be added by hand.
65In an ideal world, dual-life modules would have a F<Changes> file that could be
66cribbed.
27f00e3d 67
204b72a4 68[ Within each section, list entries as a =item entry ]
cadced9f 69
c1e74734 70=head2 New Modules and Pragmata
cadced9f 71
c1e74734 72=over 4
632c5d30
NC
73
74=item *
75
204b72a4 76XXX
4e6e9b23 77
c1e74734 78=back
4e6e9b23 79
c1e74734 80=head2 Updated Modules and Pragmata
4e6e9b23 81
c1e74734 82=over 4
1887da8c
RS
83
84=item *
85
58856662
NC
86L<B::Deparse> has been upgrade from version 1.11 to 1.12
87
88This fixes a post-v5.14 regression in deparsing C<say> (I<etc>) under
89C<use 5.10.0;>.
90
91=item *
92
d333a655
NC
93L<feature> has been upgraded from version 1.26 to 1.27
94
95C<no feature;> now means reset to default.
589c1691 96
58856662
NC
97The code has been refactored to reduce duplication.
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
8cfc9af6
A
113There has been no significant change in the documentation between
1145.15.8 and 5.15.9.
75ff5956 115
204b72a4 116=head1 Diagnostics
75ff5956 117
204b72a4
MM
118The following additions or changes have been made to diagnostic output,
119including warnings and fatal error messages. For the complete list of
120diagnostic messages, see L<perldiag>.
c11980ad 121
204b72a4 122=head2 New Diagnostics
843331c7 123
204b72a4 124=head3 New Errors
c11980ad 125
d5dc7001 126Compared to 5.15.8, 5.15.9 does not introduce new errors.
2a7afa74 127
204b72a4 128=head3 New Warnings
ecd144ea 129
d5dc7001
A
130Compared to 5.15.8, 5.15.9 does not introduce new errors, but see
131L</Changes to Existing Diagnostics>
c11980ad 132
204b72a4 133=head2 Changes to Existing Diagnostics
c11980ad 134
204b72a4 135=over 4
ecd144ea
FC
136
137=item *
138
d5dc7001
A
139L<lvalue attribute %s already-defined subroutine|perldiag/"lvalue attribute %s already-defined subroutine">, which replaces
140C<< lvalue attribute cannot be removed after the subroutine has been defined >>.
9dea6244 141
204b72a4 142=back
9dea6244 143
204b72a4 144=head1 Utility Changes
c11980ad 145
d5dc7001 146No utilities changed between 5.15.8 and 5.15.9.
2a7afa74 147
204b72a4 148=head1 Configuration and Compilation
e9e4ee62 149
204b72a4 150=over 4
937a45d0 151
ef337e16
CBW
152=item *
153
6cd577fe 154C<< perlfunc.html >> is now being generated again. [perl #107870]
ef337e16 155
7f28d7ed 156=back
679b54e7 157
c1e74734 158=head1 Testing
39de7394 159
204b72a4 160=over 4
52272450 161
84ecb73f
SM
162=item *
163
d5dc7001
A
164F<< t/op/require_37033.t >> has been added, to test that C<require>
165always closes the file handle that it opens. Previously, it had been
166leaking the file handle if it happened to have file descriptor 0, which
167would happen if C<require> was called (explicitly or implicitly) when
168C<STDIN> had been closed.
84ecb73f 169
52deee2e 170=back
5dd80d85 171
c1e74734 172=head1 Platform Support
52272450 173
8cfc9af6
A
174There have been no changes to Perl's support of various platforms between
1755.15.8 and 5.15.9.
249950d7 176
204b72a4 177=head2 Platform-Specific Notes
249950d7 178
204b72a4
MM
179XXX List any changes for specific platforms. This could include configuration
180and compilation changes or changes in portability/compatibility. However,
181changes within modules for platforms should generally be listed in the
182L</Modules and Pragmata> section.
249950d7 183
204b72a4 184=over 4
92c88ef1 185
204b72a4 186=item XXX-some-platform
92c88ef1 187
204b72a4 188XXX
b1ea7742 189
204b72a4 190=back
b1ea7742 191
204b72a4 192=head1 Internal Changes
a1d95121 193
204b72a4
MM
194XXX Changes which affect the interface available to C<XS> code go here.
195Other significant internal changes for future core maintainers should
196be noted as well.
a1d95121 197
204b72a4 198[ List each change as a =item entry ]
ff4ff6f3 199
204b72a4 200=over 4
ff4ff6f3 201
a7bff800
FC
202=item *
203
204b72a4 204XXX
ea317ccb 205
204b72a4 206=back
ea317ccb 207
204b72a4 208=head1 Selected Bug Fixes
a7bff800 209
204b72a4
MM
210XXX Important bug fixes in the core language are summarised here.
211Bug fixes in files in F<ext/> and F<lib/> are best summarised in
212L</Modules and Pragmata>.
a7bff800 213
204b72a4 214[ List each fix as a =item entry ]
0aae26c1 215
204b72a4 216=over 4
0aae26c1
FC
217
218=item *
219
d5dc7001
A
220I<Takri> is now considered a script that uses two characters. This corrects
221a Unicode 6.1 omission.
222
223=item *
224
6cd577fe 225C<< perlfunc.html >> is now being generated again. [perl #107870]
d5dc7001
A
226
227=item *
228
229C<< $$ >> is no longer tainted. Since this value comes directly from
230C<< getpid() >>, it is always safe.
231
232=item *
233
234Fix leaking a file handle. [perl #37033]
235
236=item *
237
238An off-by-one error caused C<< /[:upper:]/ >> and C<< /[:punct:]/ >> to
239unexepectly match characters with code points above 255. This has been
240rectified. [perl 111400].
241
242=item *
243
244C<< (?foo: ...) >> no longer loses passed in character set.
245
246=item *
247
248Allow attributes to set C<< :lvalue >> on a defined sub. [perl 107366].
249
250=item *
251
252C<< die; >> with a non-reference, non-string value in $@ now properly
a6bf7a5c 253propgates that value [perl #111654].
0aae26c1 254
d5dc7001
A
255=item *
256
257C<< Term::ReadLine >> now uses AnyEvent instead of Tk for an event loop.
258
259
204b72a4 260=back
0aae26c1 261
204b72a4 262=head1 Known Problems
0aae26c1 263
204b72a4 264This is a list of some significant unfixed bugs, which are regressions
8cfc9af6 265from either 5.14.0 or 5.15.8.
5d103fec 266
204b72a4 267=over 4
5d103fec 268
8cfc9af6 269=item C<eval { 'fork()' }> is broken on Windows [perl #109718]
2e2b2571 270
8cfc9af6 271This is a known test failure to be fixed before 5.16.0.
2e2b2571 272
8cfc9af6 273=item C<< Pod-Html >> test failures on Windows.
ea88c40c 274
8cfc9af6
A
275A number of tests for C<< Pod::Html >> fail under Windows, due to an
276incorrect assumption by the test scripts about capitalization of the
277network drive.
18af289e 278
8cfc9af6 279=back
c0154fe2 280
52deee2e 281=head1 Acknowledgements
8fe05716 282
d5dc7001
A
283XXX Redo this on 2012-03-20
284
285Perl 5.15.9 represents approximately 4 weeks of development since Perl 5.15.8
286and contains approximately 74,000 lines of changes across 470 files from 23
287authors.
288
289Perl continues to flourish into its third decade thanks to a vibrant community
290of users and developers. The following people are known to have contributed the
291improvements that became Perl 5.15.9:
292
293Aaron Crane, Abigail, Chris 'BinGOs' Williams, Craig A. Berry, Dave Rolsky,
294David Cantrell, David Golden, David Mitchell, Eric Brine, Father Chrysostomos,
295Florian Ragwitz, James E Keenan, Jesse Vincent, Karl Williamson, Marc Green,
296Max Maischein, Nicholas Clark, Pau Amma, Reini Urban, Ricardo Signes, Tony
297Cook, Yves Orton, Zefram.
298
299The list above is almost certainly incomplete as it is automatically generated
300from version control history. In particular, it does not include the names of
301the (very much appreciated) contributors who reported issues to the Perl bug
302tracker.
303
304Many of the changes included in this version originated in the CPAN modules
305included in Perl's core. We're grateful to the entire CPAN community for
306helping Perl to flourish.
204b72a4 307
d5dc7001
A
308For a more complete list of all of Perl's historical contributors, please see
309the F<AUTHORS> file in the Perl source distribution.
29cf780c 310
44691e6f
AB
311=head1 Reporting Bugs
312
313If you find what you think is a bug, you might check the articles
52deee2e
DR
314recently posted to the comp.lang.perl.misc newsgroup and the perl
315bug database at http://rt.perl.org/perlbug/ . There may also be
44691e6f
AB
316information at http://www.perl.org/ , the Perl Home Page.
317
318If you believe you have an unreported bug, please run the L<perlbug>
52deee2e
DR
319program included with your release. Be sure to trim your bug down
320to a tiny but sufficient test case. Your bug report, along with the
321output of C<perl -V>, will be sent off to perlbug@perl.org to be
322analysed by the Perl porting team.
44691e6f
AB
323
324If the bug you are reporting has security implications, which make it
52deee2e
DR
325inappropriate to send to a publicly archived mailing list, then please send
326it to perl5-security-report@perl.org. This points to a closed subscription
327unarchived mailing list, which includes
328all the core committers, who will be able
329to help assess the impact of issues, figure out a resolution, and help
330co-ordinate the release of patches to mitigate or fix the problem across all
331platforms on which Perl is supported. Please only use this address for
332security issues in the Perl core, not for modules independently
333distributed on CPAN.
44691e6f
AB
334
335=head1 SEE ALSO
336
52deee2e
DR
337The F<Changes> file for an explanation of how to view exhaustive details
338on what changed.
44691e6f
AB
339
340The F<INSTALL> file for how to build Perl.
341
342The F<README> file for general stuff.
343
344The F<Artistic> and F<Copying> files for copyright information.
345
346=cut