Commit | Line | Data |
---|---|---|
44691e6f AB |
1 | =encoding utf8 |
2 | ||
3 | =head1 NAME | |
4 | ||
ba03bc34 SH |
5 | [ this is a template for a new perldelta file. Any text flagged as XXX needs |
6 | to be processed before release. ] | |
7 | ||
8 | perldelta - what is new for perl v5.19.4 | |
e128ab2c | 9 | |
4eabcf70 | 10 | =head1 DESCRIPTION |
6db9054f | 11 | |
ba03bc34 | 12 | This document describes differences between the 5.19.3 release and the 5.19.4 |
e08634c5 | 13 | release. |
6db9054f | 14 | |
ba03bc34 SH |
15 | If you are upgrading from an earlier release such as 5.19.2, first read |
16 | L<perl5193delta>, which describes differences between 5.19.2 and 5.19.3. | |
a3fb66a4 | 17 | |
ba03bc34 | 18 | =head1 Notice |
a3fb66a4 | 19 | |
ba03bc34 | 20 | XXX Any important notices here |
a3fb66a4 | 21 | |
ba03bc34 | 22 | =head1 Core Enhancements |
a3fb66a4 | 23 | |
ba03bc34 SH |
24 | XXX New core language features go here. Summarize user-visible core language |
25 | enhancements. Particularly prominent performance optimisations could go | |
26 | here, but most should go in the L</Performance Enhancements> section. | |
a3fb66a4 | 27 | |
ba03bc34 | 28 | [ List each enhancement as a =head2 entry ] |
a3fb66a4 | 29 | |
f1591529 TC |
30 | =head2 rand() now uses a consistent random number generator |
31 | ||
32 | Previously perl would use a platform specific random number generator, | |
33 | varying between the libc C<rand()>, C<random()> or C<drand48()>. | |
34 | ||
35 | This meant that the quality of perl's random numbers would vary from | |
36 | platform to platform, from the 15 bits of C<rand()> on Win32 to | |
37 | 48-bits on POSIX platforms such as Linux with C<drand48()>. | |
38 | ||
39 | Perl now uses its own internal C<drand48()> implementation on all | |
40 | platforms. [perl #115928] | |
41 | ||
ba03bc34 | 42 | =head1 Security |
a3fb66a4 | 43 | |
ba03bc34 SH |
44 | XXX Any security-related notices go here. In particular, any security |
45 | vulnerabilities closed should be noted here rather than in the | |
46 | L</Selected Bug Fixes> section. | |
4725e868 | 47 | |
ba03bc34 | 48 | [ List each security issue as a =head2 entry ] |
a3fb66a4 | 49 | |
ba03bc34 | 50 | =head1 Incompatible Changes |
a3fb66a4 | 51 | |
e1c60bf3 SH |
52 | =head2 Locale decimal point character no longer leaks outside of |
53 | S<C<use locale>> scope (with the exception of C<$!>) | |
e46375fa | 54 | |
e1c60bf3 SH |
55 | This is actually a bug fix, but some code has come to rely on the bug being |
56 | present, so this change is listed here. The current locale that the program is | |
57 | running under is not supposed to be visible to Perl code except within the | |
58 | scope of a S<C<use locale>>. However, until now under certain circumstances, | |
59 | the character used for a decimal point (often a comma) leaked outside the | |
60 | scope. | |
e46375fa | 61 | |
e1c60bf3 SH |
62 | This continues the work released in Perl 5.19.1. It turns out that that did |
63 | not catch all the leaks, including C<printf> and C<sprintf> not respecting | |
64 | S<C<use locale>>. If your code is affected by this change, simply add a | |
65 | S<C<use locale>>. | |
e46375fa | 66 | |
e1c60bf3 SH |
67 | Now, the only known place where C<'use locale'> is not respected is in the |
68 | stringification of L<$!|perlvar/$!>. | |
a3fb66a4 | 69 | |
ba03bc34 | 70 | =head1 Deprecations |
a3fb66a4 | 71 | |
ba03bc34 | 72 | XXX Any deprecated features, syntax, modules etc. should be listed here. |
a3fb66a4 | 73 | |
ba03bc34 | 74 | =head2 Module removals |
4725e868 | 75 | |
ba03bc34 | 76 | XXX Remove this section if inapplicable. |
669d990b | 77 | |
ba03bc34 SH |
78 | The following modules will be removed from the core distribution in a |
79 | future release, and will at that time need to be installed from CPAN. | |
80 | Distributions on CPAN which require these modules will need to list them as | |
81 | prerequisites. | |
669d990b | 82 | |
ba03bc34 SH |
83 | The core versions of these modules will now issue C<"deprecated">-category |
84 | warnings to alert you to this fact. To silence these deprecation warnings, | |
85 | install the modules in question from CPAN. | |
669d990b | 86 | |
ba03bc34 SH |
87 | Note that these are (with rare exceptions) fine modules that you are encouraged |
88 | to continue to use. Their disinclusion from core primarily hinges on their | |
89 | necessity to bootstrapping a fully functional, CPAN-capable Perl installation, | |
90 | not usually on concerns over their design. | |
2cf99697 | 91 | |
ba03bc34 | 92 | =over |
2cf99697 | 93 | |
ba03bc34 SH |
94 | XXX Note that deprecated modules should be listed here even if they are listed |
95 | as an updated module in the L</Modules and Pragmata> section. | |
21d55435 | 96 | |
ba03bc34 | 97 | =back |
0f0eae2c | 98 | |
ba03bc34 | 99 | [ List each other deprecation as a =head2 entry ] |
21d55435 | 100 | |
ba03bc34 | 101 | =head1 Performance Enhancements |
a3fb66a4 | 102 | |
ba03bc34 | 103 | =over 4 |
a3fb66a4 | 104 | |
2c99af42 SH |
105 | =item * |
106 | ||
e1c60bf3 SH |
107 | The trie performance enhancement for regular expressions has now been extended |
108 | to those compiled under C</iaa>. | |
2c99af42 | 109 | |
c0ca71c9 | 110 | =back |
42bff0d9 | 111 | |
ba03bc34 | 112 | =head1 Modules and Pragmata |
195e3ea0 | 113 | |
ba03bc34 SH |
114 | XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/> |
115 | go here. If Module::CoreList is updated, generate an initial draft of the | |
116 | following sections using F<Porting/corelist-perldelta.pl>, which prints stub | |
117 | entries to STDOUT. Results can be pasted in place of the '=head2' entries | |
118 | below. A paragraph summary for important changes should then be added by hand. | |
119 | In an ideal world, dual-life modules would have a F<Changes> file that could be | |
120 | cribbed. | |
195e3ea0 | 121 | |
ba03bc34 | 122 | [ Within each section, list entries as a =item entry ] |
195e3ea0 | 123 | |
ba03bc34 | 124 | =head2 New Modules and Pragmata |
195e3ea0 SH |
125 | |
126 | =over 4 | |
127 | ||
128 | =item * | |
129 | ||
ba03bc34 | 130 | XXX |
195e3ea0 SH |
131 | |
132 | =back | |
133 | ||
ba03bc34 | 134 | =head2 Updated Modules and Pragmata |
42bff0d9 | 135 | |
38663f11 | 136 | =over 4 |
42bff0d9 DG |
137 | |
138 | =item * | |
139 | ||
082a4c42 SH |
140 | L<autodie> has been upgraded from version 2.20 to 2.21. |
141 | ||
142 | Numerous improvements have been made, many speed-related. See the F<Changes> | |
143 | file in the CPAN distribution for full details. | |
144 | ||
145 | =item * | |
146 | ||
8c24c1f7 | 147 | L<B> has been upgraded from version 1.45 to 1.46. |
00c5962f TC |
148 | |
149 | The fix for [perl #118525] introduced a regression in the behaviour of | |
e1c60bf3 SH |
150 | C<B::CV::GV>, changing the return value from a C<B::SPECIAL> object on a |
151 | C<NULL> C<CvGV> to C<undef>. C<B::CV::GV> again returns a C<B::SPECIAL> | |
152 | object in this case. [perl #119351] | |
00c5962f TC |
153 | |
154 | =item * | |
155 | ||
8c24c1f7 SH |
156 | L<B::Concise> has been upgraded from version 0.98 to 0.99. |
157 | ||
5b903226 | 158 | The handling of the C<glob> operator, broken since Perl 5.17.6, has been fixed. |
8c24c1f7 SH |
159 | |
160 | =item * | |
161 | ||
d5dcec3a Z |
162 | L<Carp> has been upgraded from version 1.31 to 1.32. |
163 | ||
6ffbec2c Z |
164 | =over 4 |
165 | ||
166 | =item * | |
167 | ||
e1c60bf3 SH |
168 | In stack traces, subroutine arguments that are strings are now quoted in a |
169 | consistent manner, regardless of what characters they contain and how they're | |
170 | internally represented. | |
6ffbec2c Z |
171 | |
172 | =item * | |
173 | ||
bf4588d0 | 174 | C<Carp> now won't vivify the C<overload::StrVal> glob or subroutine or the |
bd098b9a | 175 | C<overload> stash. |
6ffbec2c Z |
176 | |
177 | =item * | |
178 | ||
e1c60bf3 SH |
179 | C<Carp> now avoids some unwanted Unicode warnings on older Perls. This doesn't |
180 | affect behaviour with current Perl. | |
6ffbec2c Z |
181 | |
182 | =item * | |
183 | ||
e1c60bf3 SH |
184 | C<Carp::Heavy> detects version mismatch with C<Carp>, to give a good error |
185 | message if a current (stub) C<Carp::Heavy> gets loaded by an old C<Carp> that | |
186 | expects C<Carp::Heavy> to provide subroutines. | |
d5dcec3a | 187 | |
6ffbec2c Z |
188 | =back |
189 | ||
c963f488 SH |
190 | =item * |
191 | ||
3a76eb28 SH |
192 | L<charnames> has been upgraded from version 1.38 to 1.39. |
193 | ||
194 | This module now works on EBCDIC platforms. | |
195 | ||
196 | =item * | |
197 | ||
53bb269a SH |
198 | L<CPAN::Meta> has been upgraded from version 2.132140 to 2.132510. |
199 | ||
200 | No changes have been made to the installed code other than the version bump to | |
201 | keep in sync with the latest CPAN release. | |
202 | ||
203 | =item * | |
204 | ||
202c41cb SH |
205 | L<CPAN::Meta::Requirements> has been upgraded from version 2.122 to 2.123. |
206 | ||
e1c60bf3 SH |
207 | No changes have been made to the installed code other than the version bump to |
208 | keep in sync with the latest CPAN release. | |
202c41cb SH |
209 | |
210 | =item * | |
211 | ||
8c24c1f7 SH |
212 | L<Data::Dumper> has been upgraded from version 2.148 to 2.149. |
213 | ||
5b903226 SH |
214 | This upgrade is part of a larger change to make the array interface 64-bit safe |
215 | by using SSize_t instead of I32 for array indices. | |
8c24c1f7 | 216 | |
2f92fb87 SH |
217 | In addition, an EBCDIC fix has been applied. |
218 | ||
8c24c1f7 SH |
219 | =item * |
220 | ||
221 | L<Devel::Peek> has been upgraded from version 1.13 to 1.14. | |
222 | ||
5b903226 SH |
223 | This upgrade is part of a larger change to preserve referential identity when |
224 | passing C<undef> to a subroutine by using NULL rather than &PL_sv_undef for | |
225 | nonexistent array elements. | |
8c24c1f7 | 226 | |
2f92fb87 SH |
227 | In addition, C<Dump> with no args was broken in Perl 5.19.3, but has now been |
228 | fixed. | |
229 | ||
8c24c1f7 SH |
230 | =item * |
231 | ||
232 | L<DynaLoader> has been upgraded from version 1.19 to 1.20. | |
233 | ||
5b903226 SH |
234 | The documentation now makes it clear, as has always been the case, that |
235 | C<dl_unload_file> is only called automatically to unload all loaded shared | |
236 | objects if the perl interpreter was built with the C macro | |
b228daaa | 237 | DL_UNLOAD_ALL_AT_EXIT defined. Support for GNU DLD has also been removed. |
5b903226 SH |
238 | |
239 | =item * | |
240 | ||
f2c09143 SH |
241 | L<Encode> has been upgraded from version 2.52 to 2.54. |
242 | ||
243 | An erroneous early return in C<decode_utf8> has been removed, and a bug in | |
244 | C<_utf8_on> under COW has been fixed. | |
245 | ||
246 | =item * | |
247 | ||
33826e50 SH |
248 | L<Exporter> has been upgraded from version 5.69 to 5.70. |
249 | ||
250 | A number of typos have been corrected in the documentation. | |
251 | ||
252 | =item * | |
253 | ||
a0e78e9f | 254 | L<ExtUtils::CBuilder> has been upgraded from version 0.280205 to 0.280212. |
2f92fb87 | 255 | |
a0e78e9f SH |
256 | No changes have been made to the installed code other than the version bump to |
257 | keep in sync with the latest CPAN release. | |
2f92fb87 SH |
258 | |
259 | =item * | |
260 | ||
33826e50 SH |
261 | L<ExtUtils::Command> has been upgraded from version 1.17 to 1.18. |
262 | ||
263 | No changes have been made to the installed code other than the version bump to | |
264 | keep in sync with the latest CPAN release. | |
265 | ||
266 | =item * | |
267 | ||
3a76eb28 | 268 | L<ExtUtils::MakeMaker> has been upgraded from version 6.72 to 6.76. |
5b903226 SH |
269 | |
270 | Numerous updates and bug fixes are incorporated. See the F<Changes> file for | |
271 | full details. | |
8c24c1f7 SH |
272 | |
273 | =item * | |
274 | ||
f2c09143 SH |
275 | L<ExtUtils::ParseXS> has been upgraded from version 3.21 to 3.22. |
276 | ||
33826e50 SH |
277 | No changes have been made to the installed code other than the version bump to |
278 | keep in sync with the latest CPAN release. | |
f2c09143 SH |
279 | |
280 | =item * | |
281 | ||
77f1e6e4 SH |
282 | L<File::Find> has been upgraded from version 1.24 to 1.25. |
283 | ||
284 | Better diagnostics are now provided in the case of a failed C<chdir>. | |
285 | ||
286 | =item * | |
287 | ||
610ee5e3 TC |
288 | L<File::Glob> has been upgraded from version 1.20 to 1.21. |
289 | ||
e1c60bf3 SH |
290 | C<glob()> now warns in the context of C<use warnings "syscalls";> if the |
291 | supplied pattern has an internal NUL (C<"\0">) character. | |
610ee5e3 | 292 | |
d5dcec3a Z |
293 | =item * |
294 | ||
0f07ea36 | 295 | L<HTTP::Tiny> has been upgraded from version 0.034 to 0.035. |
4403b774 SH |
296 | |
297 | Encoded data from C<post_form> now preserves term order if data is provided as | |
298 | an array reference. (They are still sorted for consistency if provided as a | |
299 | hash reference.) | |
300 | ||
301 | =item * | |
302 | ||
3a76eb28 SH |
303 | L<I18N::LangTags> has been upgraded from version 0.39 to 0.40. |
304 | ||
305 | Bosnian has now joined Croatian and Serbian in the lists of mutually | |
306 | intelligible Slavic languages. [perl #72594] | |
307 | ||
308 | =item * | |
309 | ||
77f1e6e4 SH |
310 | L<IO> has been upgraded from version 1.28 to 1.29. |
311 | ||
312 | A minor internals-only change has been made to the XS code. | |
313 | ||
314 | =item * | |
315 | ||
e1c60bf3 | 316 | L<IPC::Open3> has been upgraded from version 1.15 to 1.16. |
8c24c1f7 | 317 | |
5b903226 SH |
318 | This upgrade is part of a larger change to preserve referential identity when |
319 | passing C<undef> to a subroutine by using NULL rather than &PL_sv_undef for | |
320 | nonexistent array elements. | |
8c24c1f7 SH |
321 | |
322 | =item * | |
323 | ||
a0109759 SH |
324 | L<Locale::Codes> has been upgraded from version 3.26 to 3.27. |
325 | ||
326 | New codes have been added and the (deprecated) set of FIPS-10 country codes has | |
327 | been removed. | |
328 | ||
329 | =item * | |
330 | ||
a8479f0e TC |
331 | L<Math::BigInt> has been upgraded from version 1.9992 to 1.9993. |
332 | ||
e1c60bf3 SH |
333 | Cleaned up the L<Math::BigInt> and L<Math::BigFloat> documentation to be more |
334 | consistent with other perl documentation. [perl #86686] | |
a8479f0e TC |
335 | |
336 | Added a bint() method for rounding towards zero. [perl #85296] | |
337 | ||
338 | =item * | |
339 | ||
8c24c1f7 SH |
340 | L<Math::BigInt::FastCalc> has been upgraded from version 0.30 to 0.31. |
341 | ||
5b903226 SH |
342 | This upgrade is part of a larger change to make the array interface 64-bit safe |
343 | by using SSize_t instead of I32 for array indices. | |
8c24c1f7 SH |
344 | |
345 | =item * | |
346 | ||
37287258 SH |
347 | L<Module::CoreList> has been upgraded from version 2.97 to 2.98. |
348 | ||
349 | The list of Perl versions covered has been updated. | |
1fdd5e53 | 350 | |
68cdd4b5 SH |
351 | =item * |
352 | ||
6c52f6c9 | 353 | L<Module::Load::Conditional> has been upgraded from version 0.54 to 0.58. |
0022aab5 SH |
354 | |
355 | C<requires> has been made more robust. [cpan #83728] | |
356 | ||
357 | =item * | |
358 | ||
979f1f2b | 359 | L<Module::Metadata> has been upgraded from version 1.000014 to 1.000018. |
68cdd4b5 SH |
360 | |
361 | The module's DESCRIPTION has been re-worded regarding safety/security to | |
bff978fa SH |
362 | satisfy CVE-2013-1437. Also, versions are now detainted if needed. [cpan |
363 | #88576] | |
68cdd4b5 | 364 | |
93f72154 SH |
365 | =item * |
366 | ||
e1c60bf3 | 367 | L<mro> has been upgraded from version 1.13 to 1.14. |
8c24c1f7 | 368 | |
5b903226 SH |
369 | This upgrade is part of a larger change to make the array interface 64-bit safe |
370 | by using SSize_t instead of I32 for array indices. | |
8c24c1f7 SH |
371 | |
372 | =item * | |
373 | ||
e1c60bf3 SH |
374 | L<parent> has been upgraded from version 0.226 to 0.227. |
375 | ||
376 | No changes have been made to the installed code other than the version bump to | |
377 | keep in sync with the latest CPAN release. | |
378 | ||
379 | =item * | |
380 | ||
545c8cda SH |
381 | L<Parse::CPAN::Meta> has been upgraded from version 1.4405 to 1.4407. |
382 | ||
383 | No changes have been made to the installed code other than the version bump to | |
384 | keep in sync with the latest CPAN release. | |
385 | ||
386 | =item * | |
387 | ||
ba58de91 | 388 | L<Perl::OSType> has been upgraded from version 1.003 to 1.005. |
93f72154 SH |
389 | |
390 | The Unix OSType 'bitrig' has been added. | |
391 | ||
8c24c1f7 SH |
392 | =item * |
393 | ||
dd741cc9 SH |
394 | L<perlfaq> has been upgraded from version 5.0150043 to 5.0150044. |
395 | ||
396 | The use of C<gensym> in a number of examples has been removed, the use of C<&> | |
397 | in subroutine calls is now clarified and several new questions have been | |
398 | answered. | |
399 | ||
400 | =item * | |
401 | ||
8c24c1f7 SH |
402 | L<re> has been upgraded from version 0.25 to 0.26. |
403 | ||
5b903226 | 404 | A function signature has been corrected in the XS implementation. |
8c24c1f7 SH |
405 | |
406 | =item * | |
407 | ||
e1c60bf3 SH |
408 | L<Scalar::Util> has been upgraded from version 1.31 to 1.32. |
409 | ||
410 | The documentation of C<blessed> has been improved to mention the fact that | |
411 | package "0" is defined but false. | |
412 | ||
413 | =item * | |
414 | ||
406cccc2 SH |
415 | L<Socket> has been upgraded from version 2.011 to 2.012. |
416 | ||
417 | Syntax errors when building on the WinCE platform have been fixed. [cpan #87389] | |
418 | ||
419 | =item * | |
420 | ||
8c24c1f7 SH |
421 | L<Storable> has been upgraded from version 2.46 to 2.47. |
422 | ||
5b903226 SH |
423 | This upgrade is part of a larger change to preserve referential identity when |
424 | passing C<undef> to a subroutine by using NULL rather than &PL_sv_undef for | |
425 | nonexistent array elements. | |
8c24c1f7 SH |
426 | |
427 | =item * | |
428 | ||
2f92fb87 SH |
429 | L<Term::ReadLine> has been upgraded from version 1.10 to 1.14. |
430 | ||
431 | Term::ReadLine::EditLine support has been added. | |
432 | ||
433 | =item * | |
434 | ||
3a76eb28 SH |
435 | L<Time::Piece> has been upgraded from version 1.22 to 1.23. |
436 | ||
437 | Day of year parsing (like "%y%j") has been fixed. | |
438 | ||
439 | =item * | |
440 | ||
60f577e0 SH |
441 | L<Unicode::Collate> has been upgraded from version 0.98 to 0.99. |
442 | ||
e1c60bf3 SH |
443 | By default, out-of-range values are replaced with C<U+FFFD> (REPLACEMENT |
444 | CHARACTER) when C<UCA_Version> E<gt>= 22, or ignored when C<UCA_Version> E<lt>= | |
445 | 20. When C<UCA_Version> E<gt>= 22, the weights of out-of-range values can be | |
446 | overridden. | |
60f577e0 SH |
447 | |
448 | =item * | |
449 | ||
3a76eb28 SH |
450 | L<Unicode::UCD> has been upgraded from version 0.53 to 0.54. |
451 | ||
452 | This module now works on EBCDIC platforms. | |
453 | ||
454 | =item * | |
455 | ||
5565c738 SH |
456 | L<version> has been upgraded from version 0.9903 to 0.9904. |
457 | ||
458 | No changes have been made to the installed code other than the version bump to | |
459 | keep in sync with the latest CPAN release. | |
460 | ||
461 | =item * | |
462 | ||
8c24c1f7 SH |
463 | L<warnings> has been upgraded from version 1.18 to 1.19. |
464 | ||
5b903226 | 465 | The C<syscalls> warnings category has been added to check for embedded NUL |
b8f07b9f | 466 | (C<"\0">) characters in pathnames and string arguments to other system calls. |
8c24c1f7 SH |
467 | |
468 | =item * | |
469 | ||
470 | L<XS::Typemap> has been upgraded from version 0.10 to 0.11. | |
471 | ||
583aa5c2 RS |
472 | =back |
473 | ||
ba03bc34 | 474 | =head2 Removed Modules and Pragmata |
a3fb66a4 SH |
475 | |
476 | =over 4 | |
477 | ||
478 | =item * | |
479 | ||
ba03bc34 | 480 | XXX |
a3fb66a4 SH |
481 | |
482 | =back | |
483 | ||
ba03bc34 | 484 | =head1 Documentation |
8fecfff0 | 485 | |
ba03bc34 SH |
486 | XXX Changes to files in F<pod/> go here. Consider grouping entries by |
487 | file and be sure to link to the appropriate page, e.g. L<perlfunc>. | |
8fecfff0 | 488 | |
ba03bc34 | 489 | =head2 New Documentation |
8fecfff0 | 490 | |
ba03bc34 | 491 | XXX Changes which create B<new> files in F<pod/> go here. |
195e3ea0 | 492 | |
ba03bc34 | 493 | =head3 L<XXX> |
195e3ea0 | 494 | |
ba03bc34 | 495 | XXX Description of the purpose of the new file here |
195e3ea0 | 496 | |
ba03bc34 | 497 | =head2 Changes to Existing Documentation |
195e3ea0 | 498 | |
ba03bc34 SH |
499 | XXX Changes which significantly change existing files in F<pod/> go here. |
500 | However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics> | |
501 | section. | |
195e3ea0 | 502 | |
ba03bc34 | 503 | =head3 L<XXX> |
a3fb66a4 SH |
504 | |
505 | =over 4 | |
506 | ||
507 | =item * | |
508 | ||
ba03bc34 | 509 | XXX Description of the change here |
a3fb66a4 SH |
510 | |
511 | =back | |
512 | ||
c0ca71c9 AP |
513 | =head1 Diagnostics |
514 | ||
515 | The following additions or changes have been made to diagnostic output, | |
516 | including warnings and fatal error messages. For the complete list of | |
517 | diagnostic messages, see L<perldiag>. | |
518 | ||
ba03bc34 SH |
519 | XXX New or changed warnings emitted by the core's C<C> code go here. Also |
520 | include any changes in L<perldiag> that reconcile it to the C<C> code. | |
521 | ||
c0ca71c9 AP |
522 | =head2 New Diagnostics |
523 | ||
ba03bc34 SH |
524 | XXX Newly added diagnostic messages go under here, separated into New Errors |
525 | and New Warnings | |
526 | ||
12dcbffb | 527 | =head3 New Errors |
583aa5c2 | 528 | |
38663f11 | 529 | =over 4 |
583aa5c2 | 530 | |
b8a02ff1 | 531 | =item * |
583aa5c2 | 532 | |
ba03bc34 | 533 | XXX L<message|perldiag/"message"> |
583aa5c2 | 534 | |
b8a02ff1 | 535 | =back |
583aa5c2 | 536 | |
12dcbffb | 537 | =head3 New Warnings |
96d496e4 | 538 | |
38663f11 | 539 | =over 4 |
b8a02ff1 DG |
540 | |
541 | =item * | |
542 | ||
610ee5e3 TC |
543 | L<Invalid \0 character in %s for %s: %s\0%s|perldiag/"Invalid \0 character in %s for %s: %s\0%s"> |
544 | ||
b8f07b9f SH |
545 | (W syscalls) Embedded \0 characters in pathnames or other system call arguments |
546 | produce a warning as of 5.20. The parts after the \0 were formerly ignored by | |
547 | system calls. | |
487a71ff | 548 | |
12dcbffb | 549 | =back |
1310e590 | 550 | |
ba03bc34 SH |
551 | =head2 Changes to Existing Diagnostics |
552 | ||
553 | XXX Changes (i.e. rewording) of diagnostic messages go here | |
e727f86a | 554 | |
12dcbffb | 555 | =over 4 |
e727f86a | 556 | |
81ca6d44 FC |
557 | =item * |
558 | ||
c1d900c3 BF |
559 | Warnings and errors from the regexp engine are now UTF-8 clean |
560 | ||
561 | =item * | |
562 | ||
563 | The "Unknown switch condition" error message has some slight changes. | |
564 | This error triggers when there is an unknown condition in a (?(foo)) | |
565 | conditional; The error message used to read: | |
566 | ||
567 | Unknown switch condition (?(%s in regex; | |
568 | ||
569 | But what %s could be was mostly up to luck; For (?(foobar)), you | |
570 | might've seen "fo" or "f". For Unicode characters, you'd generally | |
571 | get a corrupted string. | |
572 | The message was changed to read: | |
573 | ||
574 | Unknown switch condition (?(...)) in regex; | |
575 | ||
576 | And additionally, the '<-- HERE' marker in the error will now point | |
577 | to the correct spot in the regex. | |
e38fc308 | 578 | |
ba03bc34 | 579 | =back |
a34da6c4 | 580 | |
ba03bc34 | 581 | =head1 Utility Changes |
a34da6c4 | 582 | |
ba03bc34 SH |
583 | XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here. |
584 | Most of these are built within the directories F<utils> and F<x2p>. | |
558673e6 | 585 | |
ba03bc34 SH |
586 | [ List utility changes as a =head3 entry for each utility and =item |
587 | entries for each change | |
588 | Use L<XXX> with program names to get proper documentation linking. ] | |
558673e6 | 589 | |
b2d74da6 | 590 | =head3 L<find2perl> |
47a7c93d | 591 | |
12dcbffb | 592 | =over 4 |
b5a80c26 | 593 | |
7f1d4316 FC |
594 | =item * |
595 | ||
f1c106f5 | 596 | L<find2perl> now handles C<?> wildcards correctly. [perl #113054] |
7f1d4316 | 597 | |
ba03bc34 | 598 | =back |
ef947715 | 599 | |
ba03bc34 | 600 | =head1 Configuration and Compilation |
ef947715 | 601 | |
ba03bc34 SH |
602 | XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools |
603 | go here. Any other changes to the Perl build process should be listed here. | |
604 | However, any platform-specific changes should be listed in the | |
605 | L</Platform Support> section, instead. | |
02bef66e | 606 | |
ba03bc34 | 607 | [ List changes as a =item entry ]. |
d30fb844 | 608 | |
12dcbffb | 609 | =over 4 |
21c01741 | 610 | |
467582e8 FC |
611 | =item * |
612 | ||
e1c60bf3 SH |
613 | The F<Makefile.PL> for C<SDBM_File> now generates a better F<Makefile>, which |
614 | avoids a race condition during parallel makes, which could cause the build to | |
615 | fail. This is the last known parallel make problem (on *nix platforms), and | |
616 | therefore we believe that a parallel make should now always be error free. | |
4d106cc5 NC |
617 | |
618 | =for comment | |
619 | ||
620 | Strictly only for a build where build files such as F<Makefile.SH> have not | |
621 | been updated by C<git> in an already configured and built tree. | |
467582e8 | 622 | |
ba03bc34 | 623 | =back |
64da853d | 624 | |
ba03bc34 | 625 | =head1 Testing |
8847717e | 626 | |
ba03bc34 SH |
627 | XXX Any significant changes to the testing of a freshly built perl should be |
628 | listed here. Changes which create B<new> files in F<t/> go here as do any | |
629 | large changes to the testing harness (e.g. when parallel testing was added). | |
630 | Changes to existing files in F<t/> aren't worth summarizing, although the bugs | |
631 | that they represent may be covered elsewhere. | |
8847717e | 632 | |
ba03bc34 | 633 | [ List each test improvement as a =item entry ] |
f1b856da | 634 | |
ba03bc34 | 635 | =over 4 |
f1b856da | 636 | |
eaed284b FC |
637 | =item * |
638 | ||
5b903226 | 639 | The test script F<t/bigmem/regexp.t> has been added to test that regular |
28f52e64 | 640 | expression matches on very large strings now succeed as expected. |
8c24c1f7 SH |
641 | |
642 | =item * | |
643 | ||
5b903226 SH |
644 | Various cases of C<die>, C<last>, C<goto> and C<exit> triggering C<DESTROY> are |
645 | now tested by the new test script F<t/op/rt119311.t>. | |
8c24c1f7 SH |
646 | |
647 | =item * | |
648 | ||
5b903226 SH |
649 | The new test script F<t/win32/signal.t> tests that C<$!> and C<$^E> are now |
650 | preserved across signal handlers by the Win32 signal emulation code. | |
8c24c1f7 SH |
651 | |
652 | =item * | |
653 | ||
5b903226 SH |
654 | The test script F<t/x2p/find2perl.t> has been added to test the F<find2perl> |
655 | program on platforms where it is practical to do so. | |
eaed284b | 656 | |
ba03bc34 | 657 | =back |
0335212c | 658 | |
ba03bc34 | 659 | =head1 Platform Support |
0335212c | 660 | |
ba03bc34 | 661 | XXX Any changes to platform support should be listed in the sections below. |
c3e455cf | 662 | |
ba03bc34 SH |
663 | [ Within the sections, list each platform as a =item entry with specific |
664 | changes as paragraphs below it. ] | |
c3e455cf | 665 | |
ba03bc34 | 666 | =head2 New Platforms |
019705bc | 667 | |
ba03bc34 SH |
668 | XXX List any platforms that this version of perl compiles on, that previous |
669 | versions did not. These will either be enabled by new files in the F<hints/> | |
670 | directories, or new subdirectories and F<README> files at the top level of the | |
671 | source tree. | |
019705bc | 672 | |
ba03bc34 | 673 | =over 4 |
25921d77 | 674 | |
44d412d1 | 675 | =item Bitrig |
25921d77 | 676 | |
44d412d1 | 677 | Compile support has been added for Bitrig, a fork of OpenBSD |
28ea507e | 678 | |
ba03bc34 | 679 | =back |
28ea507e | 680 | |
ba03bc34 | 681 | =head2 Discontinued Platforms |
28ea507e | 682 | |
ba03bc34 | 683 | XXX List any platforms that this version of perl no longer compiles on. |
28ea507e | 684 | |
7b0e9f13 AD |
685 | Configure hints and conditional code for several very old platforms |
686 | has been removed. We have not received reports for these in many years, | |
687 | typically not since perl-5.6.0. | |
688 | ||
ba03bc34 | 689 | =over 4 |
074d6753 | 690 | |
7b0e9f13 | 691 | =item AT&T 3b1 |
074d6753 | 692 | |
7b0e9f13 AD |
693 | Configure support for the 3b1, also known as the AT&T Unix PC (and the |
694 | similar AT&T 7300), has been removed. | |
4e5b563d | 695 | |
ba03bc34 | 696 | =back |
4e5b563d | 697 | |
ba03bc34 | 698 | =head2 Platform-Specific Notes |
ee818f56 | 699 | |
ba03bc34 SH |
700 | XXX List any changes for specific platforms. This could include configuration |
701 | and compilation changes or changes in portability/compatibility. However, | |
702 | changes within modules for platforms should generally be listed in the | |
703 | L</Modules and Pragmata> section. | |
ee818f56 | 704 | |
ba03bc34 | 705 | =over 4 |
c054cc81 | 706 | |
8c24c1f7 | 707 | =item WinCE |
c054cc81 | 708 | |
5b903226 SH |
709 | The building of XS modules has largely been restored. Several still cannot |
710 | (yet) be built but it is now possible to build Perl on WinCE with only a couple | |
711 | of further patches (to L<Socket> and L<ExtUtils::MakeMaker>), hopefully to be | |
712 | incorporated soon. | |
efcbb8b2 | 713 | |
ba03bc34 | 714 | =back |
efcbb8b2 | 715 | |
ba03bc34 | 716 | =head1 Internal Changes |
36813eeb | 717 | |
ba03bc34 SH |
718 | XXX Changes which affect the interface available to C<XS> code go here. Other |
719 | significant internal changes for future core maintainers should be noted as | |
720 | well. | |
36813eeb | 721 | |
ba03bc34 | 722 | [ List each change as a =item entry ] |
52937067 | 723 | |
ba03bc34 | 724 | =over 4 |
52937067 | 725 | |
6760cac5 FC |
726 | =item * |
727 | ||
fba42467 NC |
728 | The internal representation has changed for the match variables C<$1>, C<$2> |
729 | I<etc.>, C<$`>, C<$&>, C<$'>, C<${^PREMATCH}>, C<${^MATCH}> and | |
730 | C<${^POSTMATCH>. It uses slightly less memory, avoids string comparisons | |
731 | and numeric conversions during lookup, and uses 23 fewer lines of C. This | |
732 | change should not affect any external code. | |
671f9ff7 | 733 | |
ba03bc34 | 734 | =back |
671f9ff7 | 735 | |
ba03bc34 | 736 | =head1 Selected Bug Fixes |
912a9a8f | 737 | |
ba03bc34 SH |
738 | XXX Important bug fixes in the core language are summarized here. Bug fixes in |
739 | files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>. | |
912a9a8f | 740 | |
ba03bc34 | 741 | [ List each fix as a =item entry ] |
0d25b9d4 | 742 | |
ba03bc34 | 743 | =over 4 |
0d25b9d4 | 744 | |
a82207ba FC |
745 | =item * |
746 | ||
e1c60bf3 | 747 | The value of C<$^E> is now saved across signal handlers on Win32. [perl #85104] |
18e2e6cd | 748 | |
ba03bc34 | 749 | =back |
18e2e6cd | 750 | |
ba03bc34 | 751 | =head1 Known Problems |
a82207ba | 752 | |
ba03bc34 SH |
753 | XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any |
754 | tests that had to be C<TODO>ed for the release would be noted here. Unfixed | |
755 | platform specific bugs also go here. | |
31d5dc65 | 756 | |
ba03bc34 | 757 | [ List each fix as a =item entry ] |
31d5dc65 | 758 | |
ba03bc34 | 759 | =over 4 |
31d5dc65 | 760 | |
74dac2b5 FC |
761 | =item * |
762 | ||
ba03bc34 | 763 | XXX |
74dac2b5 | 764 | |
ba03bc34 | 765 | =back |
8fecfff0 | 766 | |
ba03bc34 | 767 | =head1 Obituary |
8fecfff0 | 768 | |
ba03bc34 SH |
769 | XXX If any significant core contributor has died, we've added a short obituary |
770 | here. | |
d7bfa554 | 771 | |
583aa5c2 | 772 | =head1 Acknowledgements |
a75569c0 | 773 | |
ba03bc34 SH |
774 | XXX Generate this with: |
775 | ||
776 | perl Porting/acknowledgements.pl v5.19.3..HEAD | |
f5b73711 | 777 | |
44691e6f AB |
778 | =head1 Reporting Bugs |
779 | ||
e08634c5 SH |
780 | If you find what you think is a bug, you might check the articles recently |
781 | posted to the comp.lang.perl.misc newsgroup and the perl bug database at | |
782 | http://rt.perl.org/perlbug/ . There may also be information at | |
783 | http://www.perl.org/ , the Perl Home Page. | |
44691e6f | 784 | |
e08634c5 SH |
785 | If you believe you have an unreported bug, please run the L<perlbug> program |
786 | included with your release. Be sure to trim your bug down to a tiny but | |
787 | sufficient test case. Your bug report, along with the output of C<perl -V>, | |
788 | will be sent off to perlbug@perl.org to be analysed by the Perl porting team. | |
44691e6f AB |
789 | |
790 | If the bug you are reporting has security implications, which make it | |
e08634c5 SH |
791 | inappropriate to send to a publicly archived mailing list, then please send it |
792 | to perl5-security-report@perl.org. This points to a closed subscription | |
793 | unarchived mailing list, which includes all the core committers, who will be | |
794 | able to help assess the impact of issues, figure out a resolution, and help | |
f9001595 | 795 | co-ordinate the release of patches to mitigate or fix the problem across all |
e08634c5 SH |
796 | platforms on which Perl is supported. Please only use this address for |
797 | security issues in the Perl core, not for modules independently distributed on | |
798 | CPAN. | |
44691e6f AB |
799 | |
800 | =head1 SEE ALSO | |
801 | ||
e08634c5 SH |
802 | The F<Changes> file for an explanation of how to view exhaustive details on |
803 | what changed. | |
44691e6f AB |
804 | |
805 | The F<INSTALL> file for how to build Perl. | |
806 | ||
807 | The F<README> file for general stuff. | |
808 | ||
809 | The F<Artistic> and F<Copying> files for copyright information. | |
810 | ||
811 | =cut |