This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
yes, regression fixes are generally okay for maint
[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 are regressions
301 from either 5.14.0 or 5.15.8.
302
303 =over 4
304
305 =item C<eval { 'fork()' }> is broken on Windows [perl #109718]
306
307 This is a known test failure to be fixed before 5.16.0. 
308
309 =item C<< Pod-Html >> test failures on Windows.
310
311 A number of tests for C<< Pod::Html >> fail under Windows, due to an 
312 incorrect assumption by the test scripts about capitalization of the
313 network drive.
314
315 =back
316
317 =head1 Acknowledgements
318
319 XXX Redo this on 2012-03-20
320
321 Perl 5.15.9 represents approximately 4 weeks of development since Perl 5.15.8
322 and contains approximately 74,000 lines of changes across 470 files from 23
323 authors.
324
325 Perl continues to flourish into its third decade thanks to a vibrant community
326 of users and developers. The following people are known to have contributed the
327 improvements that became Perl 5.15.9:
328
329 Aaron Crane, Abigail, Chris 'BinGOs' Williams, Craig A. Berry, Dave Rolsky,
330 David Cantrell, David Golden, David Mitchell, Eric Brine, Father Chrysostomos,
331 Florian Ragwitz, James E Keenan, Jesse Vincent, Karl Williamson, Marc Green,
332 Max Maischein, Nicholas Clark, Pau Amma, Reini Urban, Ricardo Signes, Tony
333 Cook, Yves Orton, Zefram.
334
335 The list above is almost certainly incomplete as it is automatically generated
336 from version control history. In particular, it does not include the names of
337 the (very much appreciated) contributors who reported issues to the Perl bug
338 tracker.
339
340 Many of the changes included in this version originated in the CPAN modules
341 included in Perl's core. We're grateful to the entire CPAN community for
342 helping Perl to flourish.
343
344 For a more complete list of all of Perl's historical contributors, please see
345 the F<AUTHORS> file in the Perl source distribution.
346
347 =head1 Reporting Bugs
348
349 If you find what you think is a bug, you might check the articles
350 recently posted to the comp.lang.perl.misc newsgroup and the perl
351 bug database at http://rt.perl.org/perlbug/ .  There may also be
352 information at http://www.perl.org/ , the Perl Home Page.
353
354 If you believe you have an unreported bug, please run the L<perlbug>
355 program included with your release.  Be sure to trim your bug down
356 to a tiny but sufficient test case.  Your bug report, along with the
357 output of C<perl -V>, will be sent off to perlbug@perl.org to be
358 analysed by the Perl porting team.
359
360 If the bug you are reporting has security implications, which make it
361 inappropriate to send to a publicly archived mailing list, then please send
362 it to perl5-security-report@perl.org. This points to a closed subscription
363 unarchived mailing list, which includes
364 all the core committers, who will be able
365 to help assess the impact of issues, figure out a resolution, and help
366 co-ordinate the release of patches to mitigate or fix the problem across all
367 platforms on which Perl is supported. Please only use this address for
368 security issues in the Perl core, not for modules independently
369 distributed on CPAN.
370
371 =head1 SEE ALSO
372
373 The F<Changes> file for an explanation of how to view exhaustive details
374 on what changed.
375
376 The F<INSTALL> file for how to build Perl.
377
378 The F<README> file for general stuff.
379
380 The F<Artistic> and F<Copying> files for copyright information.
381
382 =cut