This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
5160delta: Note that feasible to remain on Unicode 6.0
[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
977c1d31
KW
31=head2 Malformed UTF-8 input could cause attempts to read beyond the end of the buffer
32
33Two new XS-accessible functions, C<utf8_to_uvchr_buf()> and
34C<utf8_to_uvuni_buf()> are now available to prevent this, and the Perl
35core has been converted to use them.
36See L</Internal Changes>.
27f00e3d 37
c1e74734 38=head1 Incompatible Changes
6ba817f3 39
8cfc9af6 40=head2 C<< no feature; >>
7620cb10 41
8cfc9af6 42C<no feature;> now means reset to default.
d7c042c9 43
204b72a4 44=head1 Deprecations
d7c042c9 45
d5dc7001 46=head2 Literal C<< "{" >> characters in regular expressions.
d7c042c9 47
d5dc7001
A
48It has been documented that the current plans include requiring a
49literal C<< "{" >> to be escaped: 5.18 will emit deprecation warnings,
50and it will be required in 5.20.
985213f2 51
977c1d31
KW
52=head2 XS functions C<utf8_to_uvchr()> and C<utf8_to_uvuni()>
53
54Use C<utf8_to_uvchr_buf()> and C<utf8_to_uvuni_buf()> instead.
55See L</Internal Changes>.
56
204b72a4 57=head1 Performance Enhancements
985213f2 58
204b72a4 59=over 4
985213f2 60
204b72a4 61=item *
2e2b2571 62
d5dc7001
A
63Fix a slowdown in freeing nested hashes. This may speedup the exit of
64certain programs.
2e2b2571 65
204b72a4 66=back
b240fc0f 67
204b72a4 68=head1 Modules and Pragmata
27f00e3d 69
c88a046d 70=head2 Updated Modules and Pragmata
27f00e3d 71
c88a046d 72=over 4
cadced9f 73
c88a046d 74=item *
cadced9f 75
c88a046d 76C<attributes> has been upgraded from version 0.17 to 0.18.
632c5d30
NC
77
78=item *
79
c88a046d 80C<feature> has been upgraded from version 1.26 to 1.27.
4e6e9b23 81
c88a046d
A
82C<no feature;> now means reset to default. The code has been refactored
83to reduce duplication.
4e6e9b23 84
c88a046d 85=item *
4e6e9b23 86
c88a046d 87C<B::Deparse> has been upgraded from version 1.12 to 1.13.
1887da8c
RS
88
89=item *
90
c88a046d 91C<B::Lint> has been upgraded from version 1.13 to 1.14.
58856662 92
c88a046d
A
93=item *
94
95C<CPAN::Meta> has been upgraded from version 2.120351 to 2.120630.
58856662
NC
96
97=item *
98
c88a046d 99C<CPANPLUS> has been upgraded from version 0.9118 to 0.9121.
d333a655 100
c88a046d 101=item *
589c1691 102
c88a046d 103C<Digest::SHA> has been upgraded from version 5.70 to 5.71.
58856662 104
c88a046d 105=item *
c11980ad 106
c88a046d 107C<ExtUtils::CBuilder> has been upgraded from version 0.280205 to 0.280206.
c11980ad 108
c88a046d
A
109=item *
110
111C<HTTP::Tiny> has been upgraded from version 0.016 to 0.017.
112
113=item *
114
115C<Module::CoreList> has been upgraded from version 2.60 to 2.63.
116
117=item *
118
119C<Pod::Html> has been upgraded from version 1.14 to 1.1501.
120
121=item *
122
123C<Pod::Perldoc> has been upgraded from version 3.15_15 to 3.17.
124
125=item *
126
127C<Pod::Simple> has been upgraded from version 3.19 to 3.20.
128
129=item *
130
131C<Socket> has been upgraded from version 1.98 to 2.000.
c11980ad
MM
132
133=item *
134
c88a046d
A
135C<Term::ReadLine> has been upgraded from version 1.08 to 1.09.
136
137=item *
138
139C<Unicode::Collate> has been upgraded from version 0.87 to 0.89.
140
141=item *
142
143C<Unicode::Normalize> has been upgraded from version 1.13 to 1.14.
144
145=item *
146
147C<Unicode::UCD> has been upgraded from version 0.41 to 0.42.
84ecb73f 148
204b72a4 149=back
a3cc0403 150
c88a046d 151
204b72a4 152=head1 Documentation
a3cc0403 153
8cfc9af6
A
154There has been no significant change in the documentation between
1555.15.8 and 5.15.9.
75ff5956 156
204b72a4 157=head1 Diagnostics
75ff5956 158
204b72a4
MM
159The following additions or changes have been made to diagnostic output,
160including warnings and fatal error messages. For the complete list of
161diagnostic messages, see L<perldiag>.
c11980ad 162
204b72a4 163=head2 New Diagnostics
843331c7 164
204b72a4 165=head3 New Errors
c11980ad 166
d5dc7001 167Compared to 5.15.8, 5.15.9 does not introduce new errors.
2a7afa74 168
204b72a4 169=head3 New Warnings
ecd144ea 170
d5dc7001
A
171Compared to 5.15.8, 5.15.9 does not introduce new errors, but see
172L</Changes to Existing Diagnostics>
c11980ad 173
204b72a4 174=head2 Changes to Existing Diagnostics
c11980ad 175
204b72a4 176=over 4
ecd144ea
FC
177
178=item *
179
d5dc7001
A
180L<lvalue attribute %s already-defined subroutine|perldiag/"lvalue attribute %s already-defined subroutine">, which replaces
181C<< lvalue attribute cannot be removed after the subroutine has been defined >>.
9dea6244 182
204b72a4 183=back
9dea6244 184
204b72a4 185=head1 Utility Changes
c11980ad 186
d5dc7001 187No utilities changed between 5.15.8 and 5.15.9.
2a7afa74 188
204b72a4 189=head1 Configuration and Compilation
e9e4ee62 190
204b72a4 191=over 4
937a45d0 192
ef337e16
CBW
193=item *
194
6cd577fe 195C<< perlfunc.html >> is now being generated again. [perl #107870]
ef337e16 196
7f28d7ed 197=back
679b54e7 198
c1e74734 199=head1 Testing
39de7394 200
204b72a4 201=over 4
52272450 202
84ecb73f
SM
203=item *
204
d5dc7001
A
205F<< t/op/require_37033.t >> has been added, to test that C<require>
206always closes the file handle that it opens. Previously, it had been
207leaking the file handle if it happened to have file descriptor 0, which
208would happen if C<require> was called (explicitly or implicitly) when
209C<STDIN> had been closed.
84ecb73f 210
52deee2e 211=back
5dd80d85 212
c1e74734 213=head1 Platform Support
52272450 214
8cfc9af6
A
215There have been no changes to Perl's support of various platforms between
2165.15.8 and 5.15.9.
249950d7 217
204b72a4 218=head1 Internal Changes
a1d95121 219
977c1d31
KW
220=over 4
221
222=item *
223
224Two new functions C<utf8_to_uvchr_buf()> and C<utf8_to_uvuni_buf()> have
225been added. These are the same as C<utf8_to_uvchr> and
226C<utf8_to_uvuni> (which are now deprecated), but take an extra parameter
227that is used to guard against reading beyond the end of the input
228string.
229See L<perlapi/utf8_to_uvchr_buf> and L<perlapi/utf8_to_uvuni_buf>.
230
231=back
ea317ccb 232
204b72a4 233=head1 Selected Bug Fixes
a7bff800 234
204b72a4 235=over 4
0aae26c1
FC
236
237=item *
238
8752e5a8
KW
239I<Takri> now matches two more characters under the C<Script_Extensions>
240property. This corrects a Unicode 6.1 omission.
d5dc7001
A
241
242=item *
243
6cd577fe 244C<< perlfunc.html >> is now being generated again. [perl #107870]
d5dc7001
A
245
246=item *
247
248C<< $$ >> is no longer tainted. Since this value comes directly from
249C<< getpid() >>, it is always safe.
250
251=item *
252
253Fix leaking a file handle. [perl #37033]
254
255=item *
256
257An off-by-one error caused C<< /[:upper:]/ >> and C<< /[:punct:]/ >> to
258unexepectly match characters with code points above 255. This has been
259rectified. [perl 111400].
260
261=item *
262
263C<< (?foo: ...) >> no longer loses passed in character set.
264
265=item *
266
267Allow attributes to set C<< :lvalue >> on a defined sub. [perl 107366].
268
269=item *
270
271C<< die; >> with a non-reference, non-string value in $@ now properly
a6bf7a5c 272propgates that value [perl #111654].
0aae26c1 273
d5dc7001
A
274=item *
275
276C<< Term::ReadLine >> now uses AnyEvent instead of Tk for an event loop.
277
204b72a4 278=back
0aae26c1 279
204b72a4 280=head1 Known Problems
0aae26c1 281
204b72a4 282This is a list of some significant unfixed bugs, which are regressions
8cfc9af6 283from either 5.14.0 or 5.15.8.
5d103fec 284
204b72a4 285=over 4
5d103fec 286
8cfc9af6 287=item C<eval { 'fork()' }> is broken on Windows [perl #109718]
2e2b2571 288
8cfc9af6 289This is a known test failure to be fixed before 5.16.0.
2e2b2571 290
8cfc9af6 291=item C<< Pod-Html >> test failures on Windows.
ea88c40c 292
8cfc9af6
A
293A number of tests for C<< Pod::Html >> fail under Windows, due to an
294incorrect assumption by the test scripts about capitalization of the
295network drive.
18af289e 296
8cfc9af6 297=back
c0154fe2 298
52deee2e 299=head1 Acknowledgements
8fe05716 300
d5dc7001
A
301XXX Redo this on 2012-03-20
302
303Perl 5.15.9 represents approximately 4 weeks of development since Perl 5.15.8
304and contains approximately 74,000 lines of changes across 470 files from 23
305authors.
306
307Perl continues to flourish into its third decade thanks to a vibrant community
308of users and developers. The following people are known to have contributed the
309improvements that became Perl 5.15.9:
310
311Aaron Crane, Abigail, Chris 'BinGOs' Williams, Craig A. Berry, Dave Rolsky,
312David Cantrell, David Golden, David Mitchell, Eric Brine, Father Chrysostomos,
313Florian Ragwitz, James E Keenan, Jesse Vincent, Karl Williamson, Marc Green,
314Max Maischein, Nicholas Clark, Pau Amma, Reini Urban, Ricardo Signes, Tony
315Cook, Yves Orton, Zefram.
316
317The list above is almost certainly incomplete as it is automatically generated
318from version control history. In particular, it does not include the names of
319the (very much appreciated) contributors who reported issues to the Perl bug
320tracker.
321
322Many of the changes included in this version originated in the CPAN modules
323included in Perl's core. We're grateful to the entire CPAN community for
324helping Perl to flourish.
204b72a4 325
d5dc7001
A
326For a more complete list of all of Perl's historical contributors, please see
327the F<AUTHORS> file in the Perl source distribution.
29cf780c 328
44691e6f
AB
329=head1 Reporting Bugs
330
331If you find what you think is a bug, you might check the articles
52deee2e
DR
332recently posted to the comp.lang.perl.misc newsgroup and the perl
333bug database at http://rt.perl.org/perlbug/ . There may also be
44691e6f
AB
334information at http://www.perl.org/ , the Perl Home Page.
335
336If you believe you have an unreported bug, please run the L<perlbug>
52deee2e
DR
337program included with your release. Be sure to trim your bug down
338to a tiny but sufficient test case. Your bug report, along with the
339output of C<perl -V>, will be sent off to perlbug@perl.org to be
340analysed by the Perl porting team.
44691e6f
AB
341
342If the bug you are reporting has security implications, which make it
52deee2e
DR
343inappropriate to send to a publicly archived mailing list, then please send
344it to perl5-security-report@perl.org. This points to a closed subscription
345unarchived mailing list, which includes
346all the core committers, who will be able
347to help assess the impact of issues, figure out a resolution, and help
348co-ordinate the release of patches to mitigate or fix the problem across all
349platforms on which Perl is supported. Please only use this address for
350security issues in the Perl core, not for modules independently
351distributed on CPAN.
44691e6f
AB
352
353=head1 SEE ALSO
354
52deee2e
DR
355The F<Changes> file for an explanation of how to view exhaustive details
356on what changed.
44691e6f
AB
357
358The F<INSTALL> file for how to build Perl.
359
360The F<README> file for general stuff.
361
362The F<Artistic> and F<Copying> files for copyright information.
363
364=cut