Commit | Line | Data |
---|---|---|
44691e6f AB |
1 | =encoding utf8 |
2 | ||
3 | =head1 NAME | |
4 | ||
204b72a4 | 5 | perldelta - what is new for perl v5.15.9 |
88c5c971 | 6 | |
c1e74734 | 7 | =head1 DESCRIPTION |
8f12b018 | 8 | |
204b72a4 MM |
9 | This document describes differences between the 5.15.8 release and |
10 | the 5.15.9 release. | |
8f12b018 | 11 | |
204b72a4 MM |
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. | |
26afcec5 | 15 | |
c1e74734 | 16 | =head1 Notice |
8f12b018 | 17 | |
d5dc7001 | 18 | This 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 | ||
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 | ||
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 | ||
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>. | |
27f00e3d | 37 | |
c1e74734 | 38 | =head1 Incompatible Changes |
6ba817f3 | 39 | |
8cfc9af6 | 40 | =head2 C<< no feature; >> |
7620cb10 | 41 | |
8cfc9af6 | 42 | C<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 |
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. | |
985213f2 | 51 | |
977c1d31 KW |
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 | ||
204b72a4 | 57 | =head1 Performance Enhancements |
985213f2 | 58 | |
204b72a4 | 59 | =over 4 |
985213f2 | 60 | |
204b72a4 | 61 | =item * |
2e2b2571 | 62 | |
d5dc7001 A |
63 | Fix a slowdown in freeing nested hashes. This may speedup the exit of |
64 | certain 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 | 76 | C<attributes> has been upgraded from version 0.17 to 0.18. |
632c5d30 NC |
77 | |
78 | =item * | |
79 | ||
95ce428c A |
80 | C<charnames> has been upgraded from version 1.29 to 1.30. |
81 | ||
82 | =item * | |
83 | ||
c88a046d | 84 | C<feature> has been upgraded from version 1.26 to 1.27. |
4e6e9b23 | 85 | |
c88a046d A |
86 | C<no feature;> now means reset to default. The code has been refactored |
87 | to reduce duplication. | |
4e6e9b23 | 88 | |
c88a046d | 89 | =item * |
4e6e9b23 | 90 | |
c88a046d | 91 | C<B::Deparse> has been upgraded from version 1.12 to 1.13. |
1887da8c RS |
92 | |
93 | =item * | |
94 | ||
c88a046d | 95 | C<B::Lint> has been upgraded from version 1.13 to 1.14. |
58856662 | 96 | |
c88a046d A |
97 | =item * |
98 | ||
99 | C<CPAN::Meta> has been upgraded from version 2.120351 to 2.120630. | |
58856662 NC |
100 | |
101 | =item * | |
102 | ||
c88a046d | 103 | C<CPANPLUS> has been upgraded from version 0.9118 to 0.9121. |
d333a655 | 104 | |
c88a046d | 105 | =item * |
589c1691 | 106 | |
fae9e8f4 A |
107 | C<Data::Dumper> has been upgraded from version 2.135_05 to 2.135_06. |
108 | ||
109 | =item * | |
110 | ||
c88a046d | 111 | C<Digest::SHA> has been upgraded from version 5.70 to 5.71. |
58856662 | 112 | |
c88a046d | 113 | =item * |
c11980ad | 114 | |
c88a046d | 115 | C<ExtUtils::CBuilder> has been upgraded from version 0.280205 to 0.280206. |
c11980ad | 116 | |
c88a046d A |
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. | |
c11980ad MM |
140 | |
141 | =item * | |
142 | ||
c88a046d A |
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. | |
84ecb73f | 156 | |
fae9e8f4 A |
157 | =item * |
158 | ||
159 | C<XS::APItest> has been upgraded from version 0.36 to 0.37. | |
160 | ||
204b72a4 | 161 | =back |
a3cc0403 | 162 | |
c88a046d | 163 | |
204b72a4 | 164 | =head1 Documentation |
a3cc0403 | 165 | |
8cfc9af6 A |
166 | There has been no significant change in the documentation between |
167 | 5.15.8 and 5.15.9. | |
75ff5956 | 168 | |
204b72a4 | 169 | =head1 Diagnostics |
75ff5956 | 170 | |
204b72a4 MM |
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>. | |
c11980ad | 174 | |
204b72a4 | 175 | =head2 New Diagnostics |
843331c7 | 176 | |
204b72a4 | 177 | =head3 New Errors |
c11980ad | 178 | |
d5dc7001 | 179 | Compared to 5.15.8, 5.15.9 does not introduce new errors. |
2a7afa74 | 180 | |
204b72a4 | 181 | =head3 New Warnings |
ecd144ea | 182 | |
d5dc7001 A |
183 | Compared to 5.15.8, 5.15.9 does not introduce new errors, but see |
184 | L</Changes to Existing Diagnostics> | |
c11980ad | 185 | |
204b72a4 | 186 | =head2 Changes to Existing Diagnostics |
c11980ad | 187 | |
204b72a4 | 188 | =over 4 |
ecd144ea FC |
189 | |
190 | =item * | |
191 | ||
d5dc7001 A |
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 >>. | |
9dea6244 | 194 | |
204b72a4 | 195 | =back |
9dea6244 | 196 | |
204b72a4 | 197 | =head1 Utility Changes |
c11980ad | 198 | |
d5dc7001 | 199 | No utilities changed between 5.15.8 and 5.15.9. |
2a7afa74 | 200 | |
204b72a4 | 201 | =head1 Configuration and Compilation |
e9e4ee62 | 202 | |
204b72a4 | 203 | =over 4 |
937a45d0 | 204 | |
ef337e16 CBW |
205 | =item * |
206 | ||
6cd577fe | 207 | C<< perlfunc.html >> is now being generated again. [perl #107870] |
ef337e16 | 208 | |
7f28d7ed | 209 | =back |
679b54e7 | 210 | |
c1e74734 | 211 | =head1 Testing |
39de7394 | 212 | |
204b72a4 | 213 | =over 4 |
52272450 | 214 | |
84ecb73f S |
215 | =item * |
216 | ||
d5dc7001 A |
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. | |
84ecb73f | 222 | |
52deee2e | 223 | =back |
5dd80d85 | 224 | |
c1e74734 | 225 | =head1 Platform Support |
52272450 | 226 | |
8cfc9af6 A |
227 | There have been no changes to Perl's support of various platforms between |
228 | 5.15.8 and 5.15.9. | |
249950d7 | 229 | |
204b72a4 | 230 | =head1 Internal Changes |
a1d95121 | 231 | |
977c1d31 KW |
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 | ||
39ea6a4b A |
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 | ||
977c1d31 | 249 | =back |
ea317ccb | 250 | |
204b72a4 | 251 | =head1 Selected Bug Fixes |
a7bff800 | 252 | |
204b72a4 | 253 | =over 4 |
0aae26c1 FC |
254 | |
255 | =item * | |
256 | ||
8752e5a8 KW |
257 | I<Takri> now matches two more characters under the C<Script_Extensions> |
258 | property. This corrects a Unicode 6.1 omission. | |
d5dc7001 A |
259 | |
260 | =item * | |
261 | ||
6cd577fe | 262 | C<< perlfunc.html >> is now being generated again. [perl #107870] |
d5dc7001 A |
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 | |
41c3b428 | 276 | unexpectedly match characters with code points above 255. This has been |
d5dc7001 A |
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 | |
41c3b428 | 290 | propagates that value [perl #111654]. |
0aae26c1 | 291 | |
d5dc7001 A |
292 | =item * |
293 | ||
294 | C<< Term::ReadLine >> now uses AnyEvent instead of Tk for an event loop. | |
295 | ||
204b72a4 | 296 | =back |
0aae26c1 | 297 | |
204b72a4 | 298 | =head1 Known Problems |
0aae26c1 | 299 | |
e2e06450 A |
300 | This is a list of some significant unfixed bugs, which need to be |
301 | resolved before 5.16.0 | |
5d103fec | 302 | |
204b72a4 | 303 | =over 4 |
5d103fec | 304 | |
e2e06450 A |
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 | ||
8cfc9af6 | 321 | =item C<eval { 'fork()' }> is broken on Windows [perl #109718] |
2e2b2571 | 322 | |
8cfc9af6 | 323 | This is a known test failure to be fixed before 5.16.0. |
2e2b2571 | 324 | |
e2e06450 A |
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 | ||
8cfc9af6 | 330 | =item C<< Pod-Html >> test failures on Windows. |
ea88c40c | 331 | |
8cfc9af6 A |
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. | |
18af289e | 335 | |
8cfc9af6 | 336 | =back |
c0154fe2 | 337 | |
52deee2e | 338 | =head1 Acknowledgements |
8fe05716 | 339 | |
d5dc7001 A |
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. | |
204b72a4 | 364 | |
d5dc7001 A |
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. | |
29cf780c | 367 | |
44691e6f AB |
368 | =head1 Reporting Bugs |
369 | ||
370 | If you find what you think is a bug, you might check the articles | |
52deee2e DR |
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 | |
44691e6f AB |
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> | |
52deee2e DR |
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. | |
44691e6f AB |
380 | |
381 | If the bug you are reporting has security implications, which make it | |
52deee2e DR |
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. | |
44691e6f AB |
391 | |
392 | =head1 SEE ALSO | |
393 | ||
52deee2e DR |
394 | The F<Changes> file for an explanation of how to view exhaustive details |
395 | on what changed. | |
44691e6f AB |
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 |