This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
List 5.16 blockers in 'Known Problems' in perldelta
[perl5.git] / pod / perldelta.pod
1 =encoding utf8
2
3 =head1 NAME
4
5 perldelta - what is new for perl v5.15.9
6
7 =head1 DESCRIPTION
8
9 This document describes differences between the 5.15.8 release and
10 the 5.15.9 release.
11
12 If you are upgrading from an earlier release such as 5.15.7, first read
13 L<perl5158delta>, which describes differences between 5.15.7 and
14 5.15.8.
15
16 =head1 Notice
17
18 This space intentionally left blank.
19
20 =head1 Core Enhancements
21
22 =head2 C<< no feature; >> now means reset to default
23
24 C<< no feature >> now resets to the default feature set.  To disable all
25 features (which is likely to be a pretty special-purpose request, since
26 it presumably won't match any named set of semantics) you can now  
27 write C<< no feature ':all' >>.
28
29 =head1 Security
30
31 =head2 Malformed UTF-8 input could cause attempts to read beyond the end of the buffer
32
33 Two new XS-accessible functions, C<utf8_to_uvchr_buf()> and
34 C<utf8_to_uvuni_buf()> are now available to prevent this, and the Perl
35 core has been converted to use them.
36 See L</Internal Changes>.
37
38 =head1 Incompatible Changes
39
40 =head2 C<< no feature; >>
41
42 C<no feature;> now means reset to default.
43
44 =head1 Deprecations
45
46 =head2 Literal C<< "{" >> characters in regular expressions.
47
48 It has been documented that the current plans include requiring a
49 literal C<< "{" >> to be escaped: 5.18 will emit deprecation warnings,
50 and it will be required in 5.20.
51
52 =head2 XS functions C<utf8_to_uvchr()> and C<utf8_to_uvuni()>
53
54 Use C<utf8_to_uvchr_buf()> and C<utf8_to_uvuni_buf()> instead.
55 See L</Internal Changes>.
56
57 =head1 Performance Enhancements
58
59 =over 4
60
61 =item *
62
63 Fix a slowdown in freeing nested hashes. This may speedup the exit of 
64 certain programs.
65
66 =back
67
68 =head1 Modules and Pragmata
69
70 =head2 Updated Modules and Pragmata
71
72 =over 4
73
74 =item *
75
76 C<attributes> has been upgraded from version 0.17 to 0.18.
77
78 =item *
79
80 C<charnames> has been upgraded from version 1.29 to 1.30.
81
82 =item *
83
84 C<feature> has been upgraded from version 1.26 to 1.27.
85
86 C<no feature;> now means reset to default. The code has been refactored
87 to reduce duplication.
88
89 =item *
90
91 C<B::Deparse> has been upgraded from version 1.12 to 1.13.
92
93 =item *
94
95 C<B::Lint> has been upgraded from version 1.13 to 1.14.
96
97 =item *
98
99 C<CPAN::Meta> has been upgraded from version 2.120351 to 2.120630.
100
101 =item *
102
103 C<CPANPLUS> has been upgraded from version 0.9118 to 0.9121.
104
105 =item *
106
107 C<Data::Dumper> has been upgraded from version 2.135_05 to 2.135_06.
108
109 =item *
110
111 C<Digest::SHA> has been upgraded from version 5.70 to 5.71.
112
113 =item *
114
115 C<ExtUtils::CBuilder> has been upgraded from version 0.280205 to 0.280206.
116
117 =item *
118
119 C<HTTP::Tiny> has been upgraded from version 0.016 to 0.017.
120
121 =item *
122
123 C<Module::CoreList> has been upgraded from version 2.60 to 2.63.
124
125 =item *
126
127 C<Pod::Html> has been upgraded from version 1.14 to 1.1501.
128
129 =item *
130
131 C<Pod::Perldoc> has been upgraded from version 3.15_15 to 3.17.
132
133 =item *
134
135 C<Pod::Simple> has been upgraded from version 3.19 to 3.20.
136
137 =item *
138
139 C<Socket> has been upgraded from version 1.98 to 2.000.
140
141 =item *
142
143 C<Term::ReadLine> has been upgraded from version 1.08 to 1.09.
144
145 =item *
146
147 C<Unicode::Collate> has been upgraded from version 0.87 to 0.89.
148
149 =item *
150
151 C<Unicode::Normalize> has been upgraded from version 1.13 to 1.14.
152
153 =item *
154
155 C<Unicode::UCD> has been upgraded from version 0.41 to 0.42.
156
157 =item *
158
159 C<XS::APItest> has been upgraded from version 0.36 to 0.37.
160
161 =back
162
163
164 =head1 Documentation
165
166 There has been no significant change in the documentation between 
167 5.15.8 and 5.15.9.
168
169 =head1 Diagnostics
170
171 The following additions or changes have been made to diagnostic output,
172 including warnings and fatal error messages.  For the complete list of
173 diagnostic messages, see L<perldiag>.
174
175 =head2 New Diagnostics
176
177 =head3 New Errors
178
179 Compared to 5.15.8, 5.15.9 does not introduce new errors.
180
181 =head3 New Warnings
182
183 Compared to 5.15.8, 5.15.9 does not introduce new errors, but see
184 L</Changes to Existing Diagnostics>
185
186 =head2 Changes to Existing Diagnostics
187
188 =over 4
189
190 =item *
191
192 L<lvalue attribute %s already-defined subroutine|perldiag/"lvalue attribute %s already-defined subroutine">, which replaces
193 C<< lvalue attribute cannot be removed after the subroutine has been defined >>.
194
195 =back
196
197 =head1 Utility Changes
198
199 No utilities changed between 5.15.8 and 5.15.9.
200
201 =head1 Configuration and Compilation
202
203 =over 4
204
205 =item *
206
207 C<< perlfunc.html >> is now being generated again. [perl #107870]
208
209 =back
210
211 =head1 Testing
212
213 =over 4
214
215 =item *
216
217 F<< t/op/require_37033.t >> has been added, to test that C<require>
218 always closes the file handle that it opens. Previously, it had been
219 leaking the file handle if it happened to have file descriptor 0, which
220 would happen if C<require> was called (explicitly or implicitly) when
221 C<STDIN> had been closed.
222
223 =back
224
225 =head1 Platform Support
226
227 There have been no changes to Perl's support of various platforms between
228 5.15.8 and 5.15.9.
229
230 =head1 Internal Changes
231
232 =over 4
233
234 =item *
235
236 Two new functions C<utf8_to_uvchr_buf()> and C<utf8_to_uvuni_buf()> have
237 been added.  These are the same as C<utf8_to_uvchr> and
238 C<utf8_to_uvuni> (which are now deprecated), but take an extra parameter
239 that is used to guard against reading beyond the end of the input
240 string.
241 See L<perlapi/utf8_to_uvchr_buf> and L<perlapi/utf8_to_uvuni_buf>.
242
243 =item *
244
245 The regular expression engine now does TRIE case insensitive matches
246 under Unicode. This may change the output of C<< use re 'debug'; >>,
247 and will speed up various things.
248
249 =back
250
251 =head1 Selected Bug Fixes
252
253 =over 4
254
255 =item *
256
257 I<Takri> now matches two more characters under the C<Script_Extensions>
258 property. This corrects a Unicode 6.1 omission.
259
260 =item *
261
262 C<< perlfunc.html >> is now being generated again. [perl #107870]
263
264 =item *
265
266 C<< $$ >> is no longer tainted. Since this value comes directly from
267 C<< getpid() >>, it is always safe.
268
269 =item *
270
271 Fix leaking a file handle. [perl #37033]
272
273 =item *
274
275 An off-by-one error caused C<< /[:upper:]/ >> and C<< /[:punct:]/ >> to
276 unexpectedly match characters with code points above 255. This has been
277 rectified. [perl 111400].
278
279 =item *
280
281 C<< (?foo: ...) >> no longer loses passed in character set.
282
283 =item *
284
285 Allow attributes to set C<< :lvalue >> on a defined sub. [perl 107366].
286
287 =item *
288
289 C<< die; >> with a non-reference, non-string value in $@ now properly
290 propagates that value [perl #111654].
291
292 =item *
293
294 C<< Term::ReadLine >> now uses AnyEvent instead of Tk for an event loop.
295
296 =back
297
298 =head1 Known Problems
299
300 This is a list of some significant unfixed bugs, which need to be
301 resolved before 5.16.0
302
303 =over 4
304
305 =item F<< op/sigdispatch.t >> fails alarm test 14 and gets killed [perl #89718]
306
307 =item Perl crash due to wrong delimiter in C<< PATH >> environment [perl #94846]
308
309 It's possible to crash Win32 if the wrong delimiter is used.
310
311 =item Corrupt UTF8 [perl #79960, #100058]
312
313 It is possible to read an invalid UTF8 character, but have it marked valid,
314 or to incorrectly read UTF8 characters if C<< $/ >> is set to read fixed
315 length records.
316
317 =item UTF8 patches for 5.16 [perl #107008]
318
319 Brian Fraser's work on UTF8 needs futher integration.
320
321 =item C<eval { 'fork()' }> is broken on Windows [perl #109718]
322
323 This is a known test failure to be fixed before 5.16.0. 
324
325 =item Warnings from cpan/IO-Compress [perl #110736]
326
327 Some tests in F<< cpan/IO-Compress/t/cz-03zlib-v1.t >> issues a 
328 "isn't numeric" warning in blead, but not in maint.
329
330 =item C<< Pod-Html >> test failures on Windows.
331
332 A number of tests for C<< Pod::Html >> fail under Windows, due to an 
333 incorrect assumption by the test scripts about capitalization of the
334 network drive.
335
336 =back
337
338 =head1 Acknowledgements
339
340 XXX Redo this on 2012-03-20
341
342 Perl 5.15.9 represents approximately 4 weeks of development since Perl 5.15.8
343 and contains approximately 74,000 lines of changes across 470 files from 23
344 authors.
345
346 Perl continues to flourish into its third decade thanks to a vibrant community
347 of users and developers. The following people are known to have contributed the
348 improvements that became Perl 5.15.9:
349
350 Aaron Crane, Abigail, Chris 'BinGOs' Williams, Craig A. Berry, Dave Rolsky,
351 David Cantrell, David Golden, David Mitchell, Eric Brine, Father Chrysostomos,
352 Florian Ragwitz, James E Keenan, Jesse Vincent, Karl Williamson, Marc Green,
353 Max Maischein, Nicholas Clark, Pau Amma, Reini Urban, Ricardo Signes, Tony
354 Cook, Yves Orton, Zefram.
355
356 The list above is almost certainly incomplete as it is automatically generated
357 from version control history. In particular, it does not include the names of
358 the (very much appreciated) contributors who reported issues to the Perl bug
359 tracker.
360
361 Many of the changes included in this version originated in the CPAN modules
362 included in Perl's core. We're grateful to the entire CPAN community for
363 helping Perl to flourish.
364
365 For a more complete list of all of Perl's historical contributors, please see
366 the F<AUTHORS> file in the Perl source distribution.
367
368 =head1 Reporting Bugs
369
370 If you find what you think is a bug, you might check the articles
371 recently posted to the comp.lang.perl.misc newsgroup and the perl
372 bug database at http://rt.perl.org/perlbug/ .  There may also be
373 information at http://www.perl.org/ , the Perl Home Page.
374
375 If you believe you have an unreported bug, please run the L<perlbug>
376 program included with your release.  Be sure to trim your bug down
377 to a tiny but sufficient test case.  Your bug report, along with the
378 output of C<perl -V>, will be sent off to perlbug@perl.org to be
379 analysed by the Perl porting team.
380
381 If the bug you are reporting has security implications, which make it
382 inappropriate to send to a publicly archived mailing list, then please send
383 it to perl5-security-report@perl.org. This points to a closed subscription
384 unarchived mailing list, which includes
385 all the core committers, who will be able
386 to help assess the impact of issues, figure out a resolution, and help
387 co-ordinate the release of patches to mitigate or fix the problem across all
388 platforms on which Perl is supported. Please only use this address for
389 security issues in the Perl core, not for modules independently
390 distributed on CPAN.
391
392 =head1 SEE ALSO
393
394 The F<Changes> file for an explanation of how to view exhaustive details
395 on what changed.
396
397 The F<INSTALL> file for how to build Perl.
398
399 The F<README> file for general stuff.
400
401 The F<Artistic> and F<Copying> files for copyright information.
402
403 =cut