This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
1780d570e776f34b263109c6bf5c6105950258d9
[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 =back
244
245 =head1 Selected Bug Fixes
246
247 =over 4
248
249 =item *
250
251 I<Takri> now matches two more characters under the C<Script_Extensions>
252 property. This corrects a Unicode 6.1 omission.
253
254 =item *
255
256 C<< perlfunc.html >> is now being generated again. [perl #107870]
257
258 =item *
259
260 C<< $$ >> is no longer tainted. Since this value comes directly from
261 C<< getpid() >>, it is always safe.
262
263 =item *
264
265 Fix leaking a file handle. [perl #37033]
266
267 =item *
268
269 An off-by-one error caused C<< /[:upper:]/ >> and C<< /[:punct:]/ >> to
270 unexpectedly match characters with code points above 255. This has been
271 rectified. [perl 111400].
272
273 =item *
274
275 C<< (?foo: ...) >> no longer loses passed in character set.
276
277 =item *
278
279 Allow attributes to set C<< :lvalue >> on a defined sub. [perl 107366].
280
281 =item *
282
283 C<< die; >> with a non-reference, non-string value in $@ now properly
284 propagates that value [perl #111654].
285
286 =item *
287
288 C<< Term::ReadLine >> now uses AnyEvent instead of Tk for an event loop.
289
290 =back
291
292 =head1 Known Problems
293
294 This is a list of some significant unfixed bugs, which are regressions
295 from either 5.14.0 or 5.15.8.
296
297 =over 4
298
299 =item C<eval { 'fork()' }> is broken on Windows [perl #109718]
300
301 This is a known test failure to be fixed before 5.16.0. 
302
303 =item C<< Pod-Html >> test failures on Windows.
304
305 A number of tests for C<< Pod::Html >> fail under Windows, due to an 
306 incorrect assumption by the test scripts about capitalization of the
307 network drive.
308
309 =back
310
311 =head1 Acknowledgements
312
313 XXX Redo this on 2012-03-20
314
315 Perl 5.15.9 represents approximately 4 weeks of development since Perl 5.15.8
316 and contains approximately 74,000 lines of changes across 470 files from 23
317 authors.
318
319 Perl continues to flourish into its third decade thanks to a vibrant community
320 of users and developers. The following people are known to have contributed the
321 improvements that became Perl 5.15.9:
322
323 Aaron Crane, Abigail, Chris 'BinGOs' Williams, Craig A. Berry, Dave Rolsky,
324 David Cantrell, David Golden, David Mitchell, Eric Brine, Father Chrysostomos,
325 Florian Ragwitz, James E Keenan, Jesse Vincent, Karl Williamson, Marc Green,
326 Max Maischein, Nicholas Clark, Pau Amma, Reini Urban, Ricardo Signes, Tony
327 Cook, Yves Orton, Zefram.
328
329 The list above is almost certainly incomplete as it is automatically generated
330 from version control history. In particular, it does not include the names of
331 the (very much appreciated) contributors who reported issues to the Perl bug
332 tracker.
333
334 Many of the changes included in this version originated in the CPAN modules
335 included in Perl's core. We're grateful to the entire CPAN community for
336 helping Perl to flourish.
337
338 For a more complete list of all of Perl's historical contributors, please see
339 the F<AUTHORS> file in the Perl source distribution.
340
341 =head1 Reporting Bugs
342
343 If you find what you think is a bug, you might check the articles
344 recently posted to the comp.lang.perl.misc newsgroup and the perl
345 bug database at http://rt.perl.org/perlbug/ .  There may also be
346 information at http://www.perl.org/ , the Perl Home Page.
347
348 If you believe you have an unreported bug, please run the L<perlbug>
349 program included with your release.  Be sure to trim your bug down
350 to a tiny but sufficient test case.  Your bug report, along with the
351 output of C<perl -V>, will be sent off to perlbug@perl.org to be
352 analysed by the Perl porting team.
353
354 If the bug you are reporting has security implications, which make it
355 inappropriate to send to a publicly archived mailing list, then please send
356 it to perl5-security-report@perl.org. This points to a closed subscription
357 unarchived mailing list, which includes
358 all the core committers, who will be able
359 to help assess the impact of issues, figure out a resolution, and help
360 co-ordinate the release of patches to mitigate or fix the problem across all
361 platforms on which Perl is supported. Please only use this address for
362 security issues in the Perl core, not for modules independently
363 distributed on CPAN.
364
365 =head1 SEE ALSO
366
367 The F<Changes> file for an explanation of how to view exhaustive details
368 on what changed.
369
370 The F<INSTALL> file for how to build Perl.
371
372 The F<README> file for general stuff.
373
374 The F<Artistic> and F<Copying> files for copyright information.
375
376 =cut