Commit | Line | Data |
---|---|---|
44691e6f AB |
1 | =encoding utf8 |
2 | ||
3 | =head1 NAME | |
4 | ||
a9c3e753 | 5 | perldelta - what is new for perl v5.21.10 |
c68523cb | 6 | |
238894db | 7 | =head1 DESCRIPTION |
c68523cb | 8 | |
a9c3e753 | 9 | This document describes differences between the 5.21.9 release and the 5.21.10 |
238894db | 10 | release. |
c68523cb | 11 | |
a9c3e753 S |
12 | If you are upgrading from an earlier release such as 5.21.8, first read |
13 | L<perl5219delta>, which describes differences between 5.21.8 and 5.21.9. | |
2ec11c70 | 14 | |
b5d4d3b9 | 15 | =head1 Incompatible Changes |
ef8784b7 | 16 | |
6798c95d KW |
17 | =head2 C<(?[...])> operators now follow standard Perl precedence |
18 | ||
1065e4db SH |
19 | This experimental feature allows set operations in regular expression patterns. |
20 | Prior to this, the intersection operator had the same precedence as the other | |
21 | binary operators. Now it has higher precedence. This could lead to different | |
22 | outcomes than existing code expects (though the documentation has always noted | |
23 | that this change might happen, recommending fully parenthesizing the | |
24 | expressions). See L<perlrecharclass/Extended Bracketed Character Classes>. | |
6798c95d | 25 | |
a9c3e753 | 26 | =head1 Performance Enhancements |
6c8457e9 | 27 | |
cd7bac54 S |
28 | =over 4 |
29 | ||
30 | =item * | |
31 | ||
1065e4db SH |
32 | The functions C<utf8::native_to_unicode()> and C<utf8::unicode_to_native()> |
33 | (see L<utf8>) are now optimized out on ASCII platforms. There is now not even | |
34 | a minimal performance hit in writing code portable between ASCII and EBCDIC | |
35 | platforms. | |
cd7bac54 S |
36 | |
37 | =back | |
38 | ||
a9c3e753 | 39 | =head1 Modules and Pragmata |
0939a951 | 40 | |
a9c3e753 | 41 | =head2 Updated Modules and Pragmata |
cd7bac54 | 42 | |
a9c3e753 | 43 | =over 4 |
cd7bac54 S |
44 | |
45 | =item * | |
46 | ||
83a5d6b6 SH |
47 | L<B> has been upgraded from version 1.56 to 1.57. |
48 | ||
49 | =item * | |
50 | ||
b9c683b3 TC |
51 | L<B::Deparse> has been upgraded from version 1.33 to 1.34. |
52 | ||
338906ce SH |
53 | Deparse C<$#_> as that instead of as C<$#{_}>. |
54 | L<[perl #123947]|https://rt.perl.org/Ticket/Display.html?id=123947> | |
b9c683b3 TC |
55 | |
56 | =item * | |
57 | ||
b05565aa SH |
58 | L<Carp> has been upgraded from version 1.35 to 1.36. |
59 | ||
60 | =item * | |
61 | ||
d210e520 | 62 | L<CPAN> has been upgraded from version 2.05 to 2.10. |
79116533 SH |
63 | |
64 | =over 4 | |
65 | ||
66 | =item * | |
67 | ||
68 | Add support for C<Cwd::getdcwd()> and introduce workaround for a misbehaviour | |
69 | seen on Strawberry Perl 5.20.1. | |
70 | ||
71 | =item * | |
72 | ||
73 | Fix C<chdir()> after building dependencies bug. | |
74 | ||
75 | =item * | |
76 | ||
77 | Introduce experimental support for plugins/hooks. | |
78 | ||
79 | =item * | |
80 | ||
81 | Integrate the App::Cpan sources. | |
82 | ||
83 | =item * | |
84 | ||
85 | Do not check recursion on optional dependencies. | |
86 | ||
87 | =item * | |
88 | ||
89 | Sanity check META.yml to contain a hash. | |
90 | L<[cpan #95271]|https://rt.cpan.org/Ticket/Display.html?id=95271> | |
91 | ||
92 | =back | |
0939a951 | 93 | |
c0ff9143 JH |
94 | =item * |
95 | ||
fea59588 SH |
96 | L<CPAN::Meta> has been upgraded from version 2.143240 to 2.150001. |
97 | ||
98 | =item * | |
99 | ||
83a5d6b6 SH |
100 | L<Data::Dumper> has been upgraded from version 2.157 to 2.158. |
101 | ||
102 | =item * | |
103 | ||
338906ce SH |
104 | L<DB> has been upgraded from version 1.07 to 1.08. |
105 | ||
106 | =item * | |
107 | ||
b05565aa SH |
108 | L<Devel::PPPort> has been upgraded from version 3.28 to 3.31. |
109 | ||
110 | =item * | |
111 | ||
83a5d6b6 SH |
112 | L<DynaLoader> has been upgraded from version 1.31 to 1.32. |
113 | ||
114 | =item * | |
115 | ||
e455391f SH |
116 | L<Encode> has been upgraded from version 2.70 to 2.72. |
117 | ||
118 | =item * | |
119 | ||
83a5d6b6 SH |
120 | L<encoding> has been upgraded from version 2.13 to 2.14. |
121 | ||
122 | =item * | |
123 | ||
124 | L<Getopt::Long> has been upgraded from version 2.43 to 2.45. | |
125 | ||
126 | =item * | |
127 | ||
128 | L<locale> has been upgraded from version 1.05 to 1.06. | |
129 | ||
130 | =item * | |
131 | ||
132 | L<Locale::Codes> has been upgraded from version 3.33 to 3.34. | |
133 | ||
134 | =item * | |
135 | ||
338906ce | 136 | L<Module::CoreList> has been upgraded from version 5.20150220 to 5.20150320. |
83a5d6b6 SH |
137 | |
138 | =item * | |
139 | ||
b367c45d SH |
140 | L<parent> has been upgraded from version 0.228 to 0.232. |
141 | ||
142 | No changes to installed files other than the version bump. | |
143 | ||
144 | =item * | |
145 | ||
338906ce SH |
146 | The PathTools modules have been upgraded from version 3.54 to 3.55. |
147 | ||
148 | =item * | |
149 | ||
83a5d6b6 SH |
150 | L<Pod::Functions> has been upgraded from version 1.08 to 1.09. |
151 | ||
152 | =item * | |
153 | ||
154 | L<POSIX> has been upgraded from version 1.51 to 1.52. | |
155 | ||
156 | =item * | |
157 | ||
158 | L<re> has been upgraded from version 0.31 to 0.32. | |
159 | ||
160 | =item * | |
161 | ||
338906ce SH |
162 | L<sigtrap> has been upgraded from version 1.07 to 1.08. |
163 | ||
164 | =item * | |
165 | ||
166 | L<Term::Complete> has been upgraded from version 1.402 to 1.403. | |
167 | ||
168 | =item * | |
169 | ||
9409f752 SH |
170 | L<Test::Simple> has been reverted from version 1.301001_098 to 1.001014. |
171 | ||
172 | =item * | |
173 | ||
03a97c81 SH |
174 | L<Text::Balanced> has been upgraded from version 2.02 to 2.03. |
175 | ||
176 | No changes to installed files other than the version bump. | |
177 | ||
178 | =item * | |
179 | ||
a790e348 SH |
180 | L<Text::ParseWords> has been upgraded from version 3.29 to 3.30. |
181 | ||
182 | =item * | |
183 | ||
15af3bc0 | 184 | L<threads> has been upgraded from version 1.96_001 to 2.01. |
83a5d6b6 SH |
185 | |
186 | =item * | |
187 | ||
126be117 JH |
188 | L<Unicode::Collate> has been upgraded from version 1.11 to 1.12. |
189 | ||
190 | =item * | |
191 | ||
83a5d6b6 SH |
192 | L<utf8> has been upgraded from version 1.14 to 1.15. |
193 | ||
a9c3e753 | 194 | =back |
0939a951 | 195 | |
cd7bac54 S |
196 | =head1 Documentation |
197 | ||
a9c3e753 | 198 | =head2 Changes to Existing Documentation |
d2fff9f6 | 199 | |
83a5d6b6 | 200 | =head3 L<perldata> |
e329daf3 | 201 | |
cd7bac54 | 202 | =over 4 |
e329daf3 | 203 | |
cd7bac54 | 204 | =item * |
e329daf3 | 205 | |
83a5d6b6 SH |
206 | Documentation has been added regarding the special floating point values C<Inf> |
207 | and C<NaN>. | |
208 | ||
209 | =back | |
210 | ||
211 | =head3 L<perlexperiment> | |
212 | ||
213 | =over 4 | |
214 | ||
215 | =item * | |
216 | ||
217 | Removed note about C<\s> matching C<VT> now that it is no longer experimental. | |
218 | ||
219 | =item * | |
220 | ||
221 | Added note that C<use re 'strict'> has been introduced experimentally. | |
222 | ||
223 | =back | |
224 | ||
225 | =head3 L<perlpolicy> | |
226 | ||
227 | =over 4 | |
228 | ||
229 | =item * | |
230 | ||
231 | The documentation of what to expect to see in future maintenance releases has | |
232 | been updated. Essentially the same types of changes will be included as before | |
233 | but with fewer changes that don't affect the installation or execution of perl. | |
ba31029d | 234 | |
cd7bac54 S |
235 | =back |
236 | ||
a9c3e753 | 237 | =head1 Diagnostics |
cd7bac54 | 238 | |
a9c3e753 S |
239 | The following additions or changes have been made to diagnostic output, |
240 | including warnings and fatal error messages. For the complete list of | |
241 | diagnostic messages, see L<perldiag>. | |
cd7bac54 | 242 | |
a9c3e753 | 243 | =head2 New Diagnostics |
541e1e0d | 244 | |
a9c3e753 | 245 | =head3 New Errors |
cd7bac54 S |
246 | |
247 | =over 4 | |
248 | ||
249 | =item * | |
250 | ||
83a5d6b6 SH |
251 | L<Invalid quantifier in {,} in regex; marked by <-- HERE in mE<sol>%sE<sol>|perldiag/"Invalid quantifier in {,} in regex; marked by <-- HERE in m/%s/"> |
252 | ||
253 | (F) The pattern looks like a {min,max} quantifier, but the min or max could not | |
254 | be parsed as a valid number - either it has leading zeroes, or it represents | |
255 | too big a number to cope with. The S<<-- HERE> shows where in the regular | |
256 | expression the problem was discovered. See L<perlre>. | |
cd7bac54 S |
257 | |
258 | =back | |
541e1e0d | 259 | |
a9c3e753 | 260 | =head1 Testing |
cd7bac54 | 261 | |
b5d4d3b9 | 262 | =over 4 |
83b69bfd DD |
263 | |
264 | =item * | |
265 | ||
83a5d6b6 | 266 | Tests for performance issues have been added in the file F<t/perf/taint.t>. |
13adb056 | 267 | |
b5d4d3b9 | 268 | =back |
391823f2 | 269 | |
a9c3e753 | 270 | =head1 Platform Support |
6c8457e9 | 271 | |
a9c3e753 | 272 | =head2 New Platforms |
8818afe8 | 273 | |
2ff1ebfe | 274 | =over 4 |
fdcaecb7 | 275 | |
ce1e892e KW |
276 | =item z/OS running EBCDIC Code Page 1047 |
277 | ||
1065e4db SH |
278 | Core perl now works on this EBCDIC platform. Early perls also worked, but, |
279 | even though support wasn't officially withdrawn, recent perls would not compile | |
280 | and run well. Perl 5.20 would work, but had many bugs which have now been | |
281 | fixed. Many CPAN modules that ship with Perl still fail tests, including | |
282 | Pod::Simple. However the version of Pod::Simple currently on CPAN should work; | |
283 | it was fixed too late to include in Perl 5.22. Work is under way to fix many | |
284 | of the still-broken CPAN modules, which likely will be installed on CPAN when | |
285 | completed, so that you may not have to wait until Perl 5.24 to get a working | |
286 | version. | |
2af7c6b6 | 287 | |
4dc623f0 | 288 | =back |
2af7c6b6 | 289 | |
2ff1ebfe | 290 | =head2 Platform-Specific Notes |
8c847e66 | 291 | |
2ff1ebfe | 292 | =over 4 |
d345f487 | 293 | |
338906ce | 294 | =item HP-UX |
d345f487 | 295 | |
338906ce | 296 | The archname now distinguishes use64bitint from use64bitall. |
cd7bac54 | 297 | |
4dc623f0 | 298 | =back |
353075a0 | 299 | |
a9c3e753 | 300 | =head1 Internal Changes |
9f122eef | 301 | |
b5d4d3b9 | 302 | =over 4 |
2ec11c70 DM |
303 | |
304 | =item * | |
305 | ||
1065e4db SH |
306 | Macros have been created to allow XS code to better manipulate the POSIX locale |
307 | category C<LC_NUMERIC>. See L<perlapi/Locale-related functions and macros>. | |
2683609f | 308 | |
338906ce SH |
309 | =item * |
310 | ||
311 | The previous C<atoi> et al replacement function, C<grok_atou>, has now been | |
312 | superseded by C<grok_atoUV>. See L<perlclib> for details. | |
313 | ||
4dc623f0 | 314 | =back |
c7f058f0 | 315 | |
4dc623f0 | 316 | =head1 Selected Bug Fixes |
0ef4323a | 317 | |
a9c3e753 | 318 | =over 4 |
2bf83140 | 319 | |
041a5927 FC |
320 | =item * |
321 | ||
1065e4db SH |
322 | Repeated global pattern matches in scalar context on large tainted strings were |
323 | exponentially slow depending on the current match position in the string. | |
338906ce | 324 | L<[perl #123202]|https://rt.perl.org/Ticket/Display.html?id=123202> |
041a5927 | 325 | |
69e954a5 FC |
326 | =item * |
327 | ||
1065e4db SH |
328 | Various crashes due to the parser getting confused by syntax errors have been |
329 | fixed. | |
338906ce SH |
330 | L<[perl #123801]|https://rt.perl.org/Ticket/Display.html?id=123801> |
331 | L<[perl #123802]|https://rt.perl.org/Ticket/Display.html?id=123802> | |
332 | L<[perl #123955]|https://rt.perl.org/Ticket/Display.html?id=123955> | |
333 | L<[perl #123995]|https://rt.perl.org/Ticket/Display.html?id=123995> | |
69e954a5 | 334 | |
20b5e916 FC |
335 | =item * |
336 | ||
337 | C<split> in the scope of lexical $_ has been fixed not to fail assertions. | |
338906ce | 338 | L<[perl #123763]|https://rt.perl.org/Ticket/Display.html?id=123763> |
20b5e916 | 339 | |
d76c14eb FC |
340 | =item * |
341 | ||
342 | C<my $x : attr> syntax inside various list operators no longer fails | |
338906ce SH |
343 | assertions. |
344 | L<[perl #123817]|https://rt.perl.org/Ticket/Display.html?id=123817> | |
d76c14eb | 345 | |
d547bad0 FC |
346 | =item * |
347 | ||
348 | An @ sign in quotes followed by a non-ASCII digit (which is not a valid | |
1065e4db SH |
349 | identifier) would cause the parser to crash, instead of simply trying the @ as |
350 | literal. This has been fixed. | |
338906ce | 351 | L<[perl #123963]|https://rt.perl.org/Ticket/Display.html?id=123963> |
d547bad0 | 352 | |
8a95d307 FC |
353 | =item * |
354 | ||
1065e4db | 355 | C<*bar::=*foo::=*glob_with_hash> has been crashing since Perl 5.14, but no |
338906ce SH |
356 | longer does. |
357 | L<[perl #123847]|https://rt.perl.org/Ticket/Display.html?id=123847> | |
8a95d307 | 358 | |
2f304be9 FC |
359 | =item * |
360 | ||
1065e4db SH |
361 | C<foreach> in scalar context was not pushing an item on to the stack, resulting |
362 | in bugs. (C<print 4, scalar do { foreach(@x){} } + 1> would print 5.) It has | |
363 | been fixed to return C<undef>. | |
338906ce SH |
364 | L<[perl #124004]|https://rt.perl.org/Ticket/Display.html?id=124004> |
365 | ||
366 | =item * | |
367 | ||
368 | A memory leak introduced in Perl 5.21.6 has been fixed. | |
369 | L<[perl #123922]|https://rt.perl.org/Ticket/Display.html?id=123922> | |
370 | ||
371 | =item * | |
372 | ||
373 | A regression in the behaviour of the C<readline> built-in function, caused by | |
374 | the introduction of the C<< <<>> >> operator, has been fixed. | |
375 | L<[perl #123990]|https://rt.perl.org/Ticket/Display.html?id=123990> | |
376 | ||
377 | =item * | |
378 | ||
379 | Several cases of data used to store environment variable contents in core C | |
b21b6964 | 380 | code being potentially overwritten before being used have been fixed. |
338906ce | 381 | L<[perl #123748]|https://rt.perl.org/Ticket/Display.html?id=123748> |
2f304be9 | 382 | |
a9c3e753 | 383 | =back |
ea13b07e | 384 | |
a9c3e753 | 385 | =head1 Known Problems |
b65adbec | 386 | |
a9c3e753 | 387 | =over 4 |
b94c7836 FC |
388 | |
389 | =item * | |
390 | ||
1065e4db SH |
391 | A goal is for Perl to be able to be recompiled to work reasonably well on any |
392 | Unicode version. In Perl 5.22, though, the earliest such version is Unicode | |
393 | 5.1 (current is 7.0). | |
439f6100 | 394 | |
ce1e892e KW |
395 | =item * |
396 | ||
397 | EBCDIC platforms | |
398 | ||
399 | =over 4 | |
400 | ||
401 | =item * | |
402 | ||
403 | Encode and encoding are mostly broken. | |
404 | ||
405 | =item * | |
406 | ||
1065e4db | 407 | Many cpan modules that are shipped with core show failing tests. |
ce1e892e KW |
408 | |
409 | =item * | |
410 | ||
411 | C<pack>/C<unpack> with C<"U0"> format may not work properly. | |
412 | ||
413 | =back | |
414 | ||
a9c3e753 | 415 | =back |
e3e8f263 | 416 | |
a9c3e753 | 417 | =head1 Acknowledgements |
541e1e0d | 418 | |
0d42058e SH |
419 | Perl 5.21.10 represents approximately 4 weeks of development since Perl 5.21.9 |
420 | and contains approximately 170,000 lines of changes across 860 files from 27 | |
421 | authors. | |
422 | ||
423 | Excluding auto-generated files, documentation and release tools, there were | |
424 | approximately 170,000 lines of changes to 610 .pm, .t, .c and .h files. | |
425 | ||
426 | Perl continues to flourish into its third decade thanks to a vibrant community | |
427 | of users and developers. The following people are known to have contributed | |
428 | the improvements that became Perl 5.21.10: | |
429 | ||
430 | Chris 'BinGOs' Williams, David Golden, David Mitchell, David Wheeler, Father | |
431 | Chrysostomos, H.Merijn Brand, Hugo van der Sanden, James E Keenan, Jarkko | |
432 | Hietaniemi, Jasmine Ngan, Jerry D. Hedden, John Goodyear, Karen Etheridge, Karl | |
433 | Williamson, Lukas Mai, Matthew Horsfall, Nicholas Clark, Petr Písař, Rafael | |
434 | Garcia-Suarez, Reini Urban, Ricardo Signes, Sawyer X, Steffen Müller, Steve | |
435 | Hay, Sullivan Beck, Tony Cook, Vincent Pit. | |
436 | ||
437 | The list above is almost certainly incomplete as it is automatically generated | |
438 | from version control history. In particular, it does not include the names of | |
439 | the (very much appreciated) contributors who reported issues to the Perl bug | |
440 | tracker. | |
441 | ||
442 | Many of the changes included in this version originated in the CPAN modules | |
443 | included in Perl's core. We're grateful to the entire CPAN community for | |
444 | helping Perl to flourish. | |
445 | ||
446 | For a more complete list of all of Perl's historical contributors, please see | |
447 | the F<AUTHORS> file in the Perl source distribution. | |
f5b73711 | 448 | |
44691e6f AB |
449 | =head1 Reporting Bugs |
450 | ||
e08634c5 SH |
451 | If you find what you think is a bug, you might check the articles recently |
452 | posted to the comp.lang.perl.misc newsgroup and the perl bug database at | |
1065e4db SH |
453 | https://rt.perl.org/ . There may also be information at http://www.perl.org/ , |
454 | the Perl Home Page. | |
44691e6f | 455 | |
e08634c5 SH |
456 | If you believe you have an unreported bug, please run the L<perlbug> program |
457 | included with your release. Be sure to trim your bug down to a tiny but | |
458 | sufficient test case. Your bug report, along with the output of C<perl -V>, | |
459 | will be sent off to perlbug@perl.org to be analysed by the Perl porting team. | |
44691e6f AB |
460 | |
461 | If the bug you are reporting has security implications, which make it | |
e08634c5 SH |
462 | inappropriate to send to a publicly archived mailing list, then please send it |
463 | to perl5-security-report@perl.org. This points to a closed subscription | |
464 | unarchived mailing list, which includes all the core committers, who will be | |
465 | able to help assess the impact of issues, figure out a resolution, and help | |
f9001595 | 466 | co-ordinate the release of patches to mitigate or fix the problem across all |
e08634c5 SH |
467 | platforms on which Perl is supported. Please only use this address for |
468 | security issues in the Perl core, not for modules independently distributed on | |
469 | CPAN. | |
44691e6f AB |
470 | |
471 | =head1 SEE ALSO | |
472 | ||
e08634c5 SH |
473 | The F<Changes> file for an explanation of how to view exhaustive details on |
474 | what changed. | |
44691e6f AB |
475 | |
476 | The F<INSTALL> file for how to build Perl. | |
477 | ||
478 | The F<README> file for general stuff. | |
479 | ||
480 | The F<Artistic> and F<Copying> files for copyright information. | |
481 | ||
482 | =cut |