This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Say "warnings" instead of "errors"
[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
95ce428c
A
80C<charnames> has been upgraded from version 1.29 to 1.30.
81
82=item *
83
c88a046d 84C<feature> has been upgraded from version 1.26 to 1.27.
4e6e9b23 85
c88a046d
A
86C<no feature;> now means reset to default. The code has been refactored
87to reduce duplication.
4e6e9b23 88
c88a046d 89=item *
4e6e9b23 90
c88a046d 91C<B::Deparse> has been upgraded from version 1.12 to 1.13.
1887da8c
RS
92
93=item *
94
c88a046d 95C<B::Lint> has been upgraded from version 1.13 to 1.14.
58856662 96
c88a046d
A
97=item *
98
99C<CPAN::Meta> has been upgraded from version 2.120351 to 2.120630.
58856662
NC
100
101=item *
102
c88a046d 103C<CPANPLUS> has been upgraded from version 0.9118 to 0.9121.
d333a655 104
c88a046d 105=item *
589c1691 106
fae9e8f4
A
107C<Data::Dumper> has been upgraded from version 2.135_05 to 2.135_06.
108
109=item *
110
c88a046d 111C<Digest::SHA> has been upgraded from version 5.70 to 5.71.
58856662 112
c88a046d 113=item *
c11980ad 114
c88a046d 115C<ExtUtils::CBuilder> has been upgraded from version 0.280205 to 0.280206.
c11980ad 116
c88a046d
A
117=item *
118
119C<HTTP::Tiny> has been upgraded from version 0.016 to 0.017.
120
121=item *
122
123C<Module::CoreList> has been upgraded from version 2.60 to 2.63.
124
125=item *
126
127C<Pod::Html> has been upgraded from version 1.14 to 1.1501.
128
129=item *
130
131C<Pod::Perldoc> has been upgraded from version 3.15_15 to 3.17.
132
133=item *
134
135C<Pod::Simple> has been upgraded from version 3.19 to 3.20.
136
137=item *
138
139C<Socket> has been upgraded from version 1.98 to 2.000.
c11980ad
MM
140
141=item *
142
c88a046d
A
143C<Term::ReadLine> has been upgraded from version 1.08 to 1.09.
144
6c69e197
A
145C<< Term::ReadLine >> now optionally integrates with event loops
146other than C<< Tk >>.
147
c88a046d
A
148=item *
149
150C<Unicode::Collate> has been upgraded from version 0.87 to 0.89.
151
152=item *
153
154C<Unicode::Normalize> has been upgraded from version 1.13 to 1.14.
155
156=item *
157
158C<Unicode::UCD> has been upgraded from version 0.41 to 0.42.
84ecb73f 159
fae9e8f4
A
160=item *
161
162C<XS::APItest> has been upgraded from version 0.36 to 0.37.
163
204b72a4 164=back
a3cc0403 165
c88a046d 166
204b72a4 167=head1 Documentation
a3cc0403 168
8cfc9af6
A
169There has been no significant change in the documentation between
1705.15.8 and 5.15.9.
75ff5956 171
204b72a4 172=head1 Diagnostics
75ff5956 173
204b72a4
MM
174The following additions or changes have been made to diagnostic output,
175including warnings and fatal error messages. For the complete list of
176diagnostic messages, see L<perldiag>.
c11980ad 177
204b72a4 178=head2 New Diagnostics
843331c7 179
204b72a4 180=head3 New Errors
c11980ad 181
d5dc7001 182Compared to 5.15.8, 5.15.9 does not introduce new errors.
2a7afa74 183
204b72a4 184=head3 New Warnings
ecd144ea 185
34c37674 186Compared to 5.15.8, 5.15.9 does not introduce new warnings, but see
d5dc7001 187L</Changes to Existing Diagnostics>
c11980ad 188
204b72a4 189=head2 Changes to Existing Diagnostics
c11980ad 190
204b72a4 191=over 4
ecd144ea
FC
192
193=item *
194
d5dc7001
A
195L<lvalue attribute %s already-defined subroutine|perldiag/"lvalue attribute %s already-defined subroutine">, which replaces
196C<< lvalue attribute cannot be removed after the subroutine has been defined >>.
9dea6244 197
204b72a4 198=back
9dea6244 199
204b72a4 200=head1 Utility Changes
c11980ad 201
d5dc7001 202No utilities changed between 5.15.8 and 5.15.9.
2a7afa74 203
204b72a4 204=head1 Configuration and Compilation
e9e4ee62 205
204b72a4 206=over 4
937a45d0 207
ef337e16
CBW
208=item *
209
6cd577fe 210C<< perlfunc.html >> is now being generated again. [perl #107870]
ef337e16 211
7f28d7ed 212=back
679b54e7 213
c1e74734 214=head1 Testing
39de7394 215
204b72a4 216=over 4
52272450 217
84ecb73f
SM
218=item *
219
d5dc7001
A
220F<< t/op/require_37033.t >> has been added, to test that C<require>
221always closes the file handle that it opens. Previously, it had been
222leaking the file handle if it happened to have file descriptor 0, which
223would happen if C<require> was called (explicitly or implicitly) when
224C<STDIN> had been closed.
84ecb73f 225
52deee2e 226=back
5dd80d85 227
c1e74734 228=head1 Platform Support
52272450 229
8cfc9af6
A
230There have been no changes to Perl's support of various platforms between
2315.15.8 and 5.15.9.
249950d7 232
204b72a4 233=head1 Internal Changes
a1d95121 234
977c1d31
KW
235=over 4
236
237=item *
238
239Two new functions C<utf8_to_uvchr_buf()> and C<utf8_to_uvuni_buf()> have
240been added. These are the same as C<utf8_to_uvchr> and
241C<utf8_to_uvuni> (which are now deprecated), but take an extra parameter
242that is used to guard against reading beyond the end of the input
243string.
244See L<perlapi/utf8_to_uvchr_buf> and L<perlapi/utf8_to_uvuni_buf>.
245
39ea6a4b
A
246=item *
247
248The regular expression engine now does TRIE case insensitive matches
249under Unicode. This may change the output of C<< use re 'debug'; >>,
250and will speed up various things.
251
977c1d31 252=back
ea317ccb 253
204b72a4 254=head1 Selected Bug Fixes
a7bff800 255
204b72a4 256=over 4
0aae26c1
FC
257
258=item *
259
8752e5a8
KW
260I<Takri> now matches two more characters under the C<Script_Extensions>
261property. This corrects a Unicode 6.1 omission.
d5dc7001
A
262
263=item *
264
6cd577fe 265C<< perlfunc.html >> is now being generated again. [perl #107870]
d5dc7001
A
266
267=item *
268
269C<< $$ >> is no longer tainted. Since this value comes directly from
270C<< getpid() >>, it is always safe.
271
272=item *
273
274Fix leaking a file handle. [perl #37033]
275
276=item *
277
278An off-by-one error caused C<< /[:upper:]/ >> and C<< /[:punct:]/ >> to
41c3b428 279unexpectedly match characters with code points above 255. This has been
d5dc7001
A
280rectified. [perl 111400].
281
282=item *
283
284C<< (?foo: ...) >> no longer loses passed in character set.
285
286=item *
287
288Allow attributes to set C<< :lvalue >> on a defined sub. [perl 107366].
289
290=item *
291
292C<< die; >> with a non-reference, non-string value in $@ now properly
41c3b428 293propagates that value [perl #111654].
0aae26c1 294
204b72a4 295=back
0aae26c1 296
204b72a4 297=head1 Known Problems
0aae26c1 298
e2e06450
A
299This is a list of some significant unfixed bugs, which need to be
300resolved before 5.16.0
5d103fec 301
204b72a4 302=over 4
5d103fec 303
e2e06450
A
304=item F<< op/sigdispatch.t >> fails alarm test 14 and gets killed [perl #89718]
305
306=item Perl crash due to wrong delimiter in C<< PATH >> environment [perl #94846]
307
308It's possible to crash Win32 if the wrong delimiter is used.
309
310=item Corrupt UTF8 [perl #79960, #100058]
311
312It is possible to read an invalid UTF8 character, but have it marked valid,
313or to incorrectly read UTF8 characters if C<< $/ >> is set to read fixed
314length records.
315
316=item UTF8 patches for 5.16 [perl #107008]
317
a6c70abe 318Brian Fraser's work on UTF8 needs further integration.
e2e06450 319
8cfc9af6 320=item C<eval { 'fork()' }> is broken on Windows [perl #109718]
2e2b2571 321
8cfc9af6 322This is a known test failure to be fixed before 5.16.0.
2e2b2571 323
e2e06450
A
324=item Warnings from cpan/IO-Compress [perl #110736]
325
326Some tests in F<< cpan/IO-Compress/t/cz-03zlib-v1.t >> issues a
327"isn't numeric" warning in blead, but not in maint.
328
8cfc9af6 329=item C<< Pod-Html >> test failures on Windows.
ea88c40c 330
8cfc9af6
A
331A number of tests for C<< Pod::Html >> fail under Windows, due to an
332incorrect assumption by the test scripts about capitalization of the
333network drive.
18af289e 334
8cfc9af6 335=back
c0154fe2 336
52deee2e 337=head1 Acknowledgements
8fe05716 338
d5dc7001 339Perl 5.15.9 represents approximately 4 weeks of development since Perl 5.15.8
13b868b0 340and contains approximately 79,000 lines of changes across 530 files from 23
d5dc7001
A
341authors.
342
343Perl continues to flourish into its third decade thanks to a vibrant community
344of users and developers. The following people are known to have contributed the
345improvements that became Perl 5.15.9:
346
347Aaron Crane, Abigail, Chris 'BinGOs' Williams, Craig A. Berry, Dave Rolsky,
348David Cantrell, David Golden, David Mitchell, Eric Brine, Father Chrysostomos,
349Florian Ragwitz, James E Keenan, Jesse Vincent, Karl Williamson, Marc Green,
350Max Maischein, Nicholas Clark, Pau Amma, Reini Urban, Ricardo Signes, Tony
351Cook, Yves Orton, Zefram.
352
353The list above is almost certainly incomplete as it is automatically generated
354from version control history. In particular, it does not include the names of
355the (very much appreciated) contributors who reported issues to the Perl bug
356tracker.
357
358Many of the changes included in this version originated in the CPAN modules
359included in Perl's core. We're grateful to the entire CPAN community for
360helping Perl to flourish.
204b72a4 361
d5dc7001
A
362For a more complete list of all of Perl's historical contributors, please see
363the F<AUTHORS> file in the Perl source distribution.
29cf780c 364
44691e6f
AB
365=head1 Reporting Bugs
366
367If you find what you think is a bug, you might check the articles
52deee2e
DR
368recently posted to the comp.lang.perl.misc newsgroup and the perl
369bug database at http://rt.perl.org/perlbug/ . There may also be
44691e6f
AB
370information at http://www.perl.org/ , the Perl Home Page.
371
372If you believe you have an unreported bug, please run the L<perlbug>
52deee2e
DR
373program included with your release. Be sure to trim your bug down
374to a tiny but sufficient test case. Your bug report, along with the
375output of C<perl -V>, will be sent off to perlbug@perl.org to be
376analysed by the Perl porting team.
44691e6f
AB
377
378If the bug you are reporting has security implications, which make it
52deee2e
DR
379inappropriate to send to a publicly archived mailing list, then please send
380it to perl5-security-report@perl.org. This points to a closed subscription
381unarchived mailing list, which includes
382all the core committers, who will be able
383to help assess the impact of issues, figure out a resolution, and help
384co-ordinate the release of patches to mitigate or fix the problem across all
385platforms on which Perl is supported. Please only use this address for
386security issues in the Perl core, not for modules independently
387distributed on CPAN.
44691e6f
AB
388
389=head1 SEE ALSO
390
52deee2e
DR
391The F<Changes> file for an explanation of how to view exhaustive details
392on what changed.
44691e6f
AB
393
394The F<INSTALL> file for how to build Perl.
395
396The F<README> file for general stuff.
397
398The F<Artistic> and F<Copying> files for copyright information.
399
400=cut