Commit | Line | Data |
---|---|---|
44691e6f AB |
1 | =encoding utf8 |
2 | ||
3 | =head1 NAME | |
4 | ||
13900f93 A |
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.21.3 | |
c68523cb | 9 | |
238894db | 10 | =head1 DESCRIPTION |
c68523cb | 11 | |
13900f93 | 12 | This document describes differences between the 5.21.2 release and the 5.21.3 |
238894db | 13 | release. |
c68523cb | 14 | |
13900f93 A |
15 | If you are upgrading from an earlier release such as 5.21.1, first read |
16 | L<perl5212delta>, which describes differences between 5.21.1 and 5.21.2. | |
17 | ||
18 | =head1 Notice | |
19 | ||
20 | XXX Any important notices here | |
7065301c | 21 | |
7065301c RS |
22 | =head1 Core Enhancements |
23 | ||
d1f01a63 | 24 | =head2 C<defined(@array = LIST)> is no longer fatal |
7e957246 | 25 | |
d1f01a63 PM |
26 | In 5.21.1, C<defined(@array)> was made fatal. This has been relaxed |
27 | to not die if the argument is assigning to an array. | |
7e957246 | 28 | |
0346c3a9 | 29 | =head1 Security |
7e957246 | 30 | |
6ab3666b | 31 | =head2 The L<Safe> module could allow outside packages to be replaced |
13900f93 | 32 | |
6ab3666b PM |
33 | Critical bugfix: outside packages could be replaced. L<Safe> has |
34 | been patched to 2.38 to address this. | |
8bdb3f93 | 35 | |
13900f93 | 36 | =head1 Incompatible Changes |
8bdb3f93 | 37 | |
1178d2cf DIM |
38 | =head2 S<C<use UNIVERSAL '...'>> is now a fatal error |
39 | ||
40 | Importing functions from C<UNIVERSAL> has been deprecated since v5.12, and | |
41 | is now a fatal error. S<C<"use UNIVERSAL">> without any arguments is still | |
42 | allowed. | |
43 | ||
7ef8b31d | 44 | =head1 Modules and Pragmata |
f6f3144e | 45 | |
13900f93 | 46 | =head2 Updated Modules and Pragmata |
7065301c | 47 | |
13900f93 | 48 | =over 4 |
7065301c | 49 | |
aac7f82f A |
50 | =item * |
51 | ||
830fa6b6 | 52 | L<B::Debug> has been upgraded from version 1.19 to 1.21 |
b3e82ed1 PM |
53 | |
54 | =item * | |
55 | ||
ca58223b PM |
56 | L<Config::Perl::V> has been upgraded from version 0.20 to 0.22. |
57 | ||
58 | =item * | |
59 | ||
23b03637 PM |
60 | L<CPAN::Meta> has been upgraded from version 2.141520 to 2.142060. |
61 | ||
62 | =item * | |
63 | ||
85e8fb10 PM |
64 | L<CPAN::Meta::Requirements> has been upgraded from version 2.125 to 2.126. |
65 | ||
66 | =item * | |
67 | ||
7d19f6a1 PM |
68 | L<ExtUtils::Manifest> has been upgraded from version 1.64 to 1.65. |
69 | ||
70 | The MANIFEST is now opened with C<:raw>, to prevent C<CRLF>s leaking in. | |
71 | ||
72 | =item * | |
73 | ||
55e8b286 PM |
74 | L<HTTP::Tiny> has been upgraded from version 0.043 to 0.047. |
75 | ||
76 | =item * | |
77 | ||
796f59e8 | 78 | L<perl5db.pl> has been upgraded from version 1.45 to 1.46. |
f7df1a8c TC |
79 | |
80 | Fixed the scope level handling of the debugger's C<y> command. | |
aac7f82f | 81 | |
0bb39c26 TC |
82 | =item * |
83 | ||
84 | L<POSIX> has been upgraded from version 1.41 to 1.42. | |
85 | ||
86 | Replaced the thread-unsafe code used to prevent duplicate warning | |
87 | messages for using the isxxx() functions. [perl #122476] | |
88 | ||
9c97a342 PM |
89 | =item * |
90 | ||
6ab3666b PM |
91 | L<Safe> has been upgraded from version 2.37 to 2.38. |
92 | ||
93 | Critical bugfix: outside packages could be replaced. | |
94 | ||
95 | =item * | |
96 | ||
9c97a342 PM |
97 | L<Socket> has been upgraded from version 2.014 to 2.015. |
98 | ||
99 | Test suite updates, particularly useful for Solaris and cygwin, and | |
100 | a slight change to the pattern used for IPv4 address matching. | |
101 | ||
13900f93 | 102 | =back |
aac7f82f | 103 | |
13900f93 | 104 | =head1 Documentation |
aac7f82f | 105 | |
13900f93 | 106 | =head2 Changes to Existing Documentation |
6d9b7c7c | 107 | |
2a395b86 PM |
108 | =head3 L<perlexperiment> |
109 | ||
110 | =over 4 | |
111 | ||
112 | =item * | |
113 | ||
114 | Added reference to L<feature>. | |
115 | ||
116 | =back | |
117 | ||
118 | =head3 L<perlguts> | |
119 | ||
120 | =over 4 | |
121 | ||
122 | =item * | |
123 | ||
124 | Details on C level symbols and libperl.t added. | |
125 | ||
126 | =back | |
127 | ||
128 | =head3 L<perlhacktips> | |
129 | ||
130 | =over 4 | |
131 | ||
132 | =item * | |
133 | ||
134 | Recommended replacements for tmpfile, atoi, strtol, and strtoul added. | |
135 | ||
136 | =back | |
137 | ||
138 | =head3 L<perlop> | |
139 | ||
140 | =over 4 | |
141 | ||
142 | =item * | |
143 | ||
144 | ASCII v. EBCDIC clarifications added. | |
145 | ||
146 | =back | |
147 | ||
148 | =head3 L<perlsec> | |
149 | ||
150 | =over 4 | |
151 | ||
152 | =item * | |
153 | ||
154 | Comments added on algorithmic complexity and tied hashes. | |
155 | ||
156 | =back | |
6d9b7c7c | 157 | |
2a395b86 | 158 | =head3 L<perlvms> |
7f55cec0 | 159 | |
13900f93 | 160 | =over 4 |
7f55cec0 SH |
161 | |
162 | =item * | |
163 | ||
2a395b86 | 164 | Updated documentation on environment and shell interaction in VMS. |
aac7f82f | 165 | |
13900f93 | 166 | =back |
aac7f82f | 167 | |
13900f93 | 168 | =head1 Diagnostics |
091fed7c | 169 | |
13900f93 A |
170 | The following additions or changes have been made to diagnostic output, |
171 | including warnings and fatal error messages. For the complete list of | |
172 | diagnostic messages, see L<perldiag>. | |
902c1f75 | 173 | |
13900f93 A |
174 | XXX New or changed warnings emitted by the core's C<C> code go here. Also |
175 | include any changes in L<perldiag> that reconcile it to the C<C> code. | |
2901561d | 176 | |
13900f93 | 177 | =head2 New Diagnostics |
2901561d | 178 | |
13900f93 A |
179 | XXX Newly added diagnostic messages go under here, separated into New Errors |
180 | and New Warnings | |
181 | ||
182 | =head3 New Errors | |
4594cf53 | 183 | |
13900f93 | 184 | =over 4 |
96dcbc37 DD |
185 | |
186 | =item * | |
187 | ||
13900f93 | 188 | XXX L<message|perldiag/"message"> |
7065301c | 189 | |
13900f93 | 190 | =back |
58f25ac1 | 191 | |
13900f93 A |
192 | =head3 New Warnings |
193 | ||
194 | =over 4 | |
58f25ac1 MH |
195 | |
196 | =item * | |
197 | ||
a5873648 PM |
198 | L<Hexadecimal float: exponent overflow|perldiag/"Hexadecimal float: exponent overflow"> |
199 | ||
200 | (W overflow) The hexadecimal floating point has larger exponent | |
201 | than the floating point supports. | |
202 | ||
203 | =item * | |
204 | ||
205 | L<Hexadecimal float: exponent underflow|perldiag/"Hexadecimal float: exponent underflow"> | |
206 | ||
207 | (W overflow) The hexadecimal floating point has smaller exponent | |
208 | than the floating point supports. | |
209 | ||
210 | =item * | |
211 | ||
212 | L<Hexadecimal float: internal error|perldiag/"Hexadecimal float: internal error"> | |
213 | ||
214 | (F) Something went horribly bad in hexadecimal float handling. | |
215 | ||
216 | =item * | |
217 | ||
218 | L<Hexadecimal float: mantissa overflow|perldiag/"Hexadecimal float: mantissa overflow"> | |
219 | ||
220 | (W overflow) The hexadecimal floating point literal had more bits in | |
221 | the mantissa (the part between the 0x and the exponent, also known as | |
222 | the fraction or the significand) than the floating point supports. | |
223 | ||
224 | =item * | |
225 | ||
226 | L<Hexadecimal float: precision loss|perldiag/"Hexadecimal float: precision loss"> | |
227 | ||
228 | (W overflow) The hexadecimal floating point had internally more | |
229 | digits than could be output. This can be caused by unsupported | |
230 | long double formats, or by 64-bit integers not being available | |
231 | (needed to retrieve the digits under some configurations). | |
232 | ||
233 | =item * | |
234 | ||
235 | L<Hexadecimal float: unsupported long double format|perldiag/"Hexadecimal float: unsupported long double format"> | |
236 | ||
237 | (F) You have configured Perl to use long doubles but | |
238 | the internals of the long double format are unknown, | |
239 | therefore the hexadecimal float output is impossible. | |
5bafdaa4 | 240 | |
58f25ac1 MH |
241 | =back |
242 | ||
13900f93 | 243 | =head2 Changes to Existing Diagnostics |
12042f24 | 244 | |
13900f93 | 245 | XXX Changes (i.e. rewording) of diagnostic messages go here |
b10906fb MH |
246 | |
247 | =over 4 | |
248 | ||
249 | =item * | |
250 | ||
13900f93 | 251 | XXX Describe change here |
b10906fb MH |
252 | |
253 | =back | |
254 | ||
13900f93 A |
255 | =head1 Configuration and Compilation |
256 | ||
257 | XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools | |
258 | go here. Any other changes to the Perl build process should be listed here. | |
259 | However, any platform-specific changes should be listed in the | |
260 | L</Platform Support> section, instead. | |
261 | ||
262 | [ List changes as a =item entry ]. | |
7065301c RS |
263 | |
264 | =over 4 | |
24a38d90 RS |
265 | |
266 | =item * | |
267 | ||
a5873648 | 268 | Internal handling of floating point values has been improved. |
7065301c RS |
269 | |
270 | =back | |
271 | ||
13900f93 | 272 | =head1 Testing |
6d9b7c7c | 273 | |
13900f93 A |
274 | XXX Any significant changes to the testing of a freshly built perl should be |
275 | listed here. Changes which create B<new> files in F<t/> go here as do any | |
276 | large changes to the testing harness (e.g. when parallel testing was added). | |
277 | Changes to existing files in F<t/> aren't worth summarizing, although the bugs | |
278 | that they represent may be covered elsewhere. | |
6d9b7c7c | 279 | |
13900f93 | 280 | [ List each test improvement as a =item entry ] |
7065301c RS |
281 | |
282 | =over 4 | |
24a38d90 RS |
283 | |
284 | =item * | |
285 | ||
13900f93 | 286 | XXX |
48867f3d | 287 | |
13900f93 | 288 | =back |
28462159 | 289 | |
13900f93 | 290 | =head1 Platform Support |
097675bf | 291 | |
6e97d65d | 292 | =head2 Platform-Specific Notes |
b3211734 | 293 | |
6e97d65d | 294 | =over 4 |
b3211734 | 295 | |
6e97d65d | 296 | =item Android |
7065301c | 297 | |
6e97d65d PM |
298 | Build support has been improved for cross-compiling in general and for |
299 | Android in particular. | |
13900f93 | 300 | |
6e97d65d | 301 | =item Solaris |
7d0ccdba | 302 | |
6e97d65d PM |
303 | C<c99> options have been cleaned up, hints look for C<solstudio> |
304 | as well as C<SUNWspro>, and support for native C<setenv> has been added. | |
7d0ccdba | 305 | |
6e97d65d PM |
306 | =item VMS |
307 | ||
308 | C<finite>, C<finitel>, and C<isfinite> detection has been added to | |
309 | C<configure.com>, environment handling has had some minor changes, and | |
310 | a fix for legacy feature checking status. | |
311 | ||
312 | =item Windows | |
313 | ||
314 | C<%I64d> is now being used instead of C<%lld> for MinGW. | |
7d0ccdba | 315 | |
7065301c RS |
316 | =back |
317 | ||
318 | =head1 Internal Changes | |
319 | ||
13900f93 A |
320 | XXX Changes which affect the interface available to C<XS> code go here. Other |
321 | significant internal changes for future core maintainers should be noted as | |
322 | well. | |
c9fcb674 | 323 | |
13900f93 | 324 | [ List each change as a =item entry ] |
ddeaf645 | 325 | |
13900f93 | 326 | =over 4 |
c9fcb674 | 327 | |
a835cd47 KW |
328 | =item * |
329 | ||
d8bcb4d6 KW |
330 | Added L<perlapi/sync_locale>. |
331 | Changing the program's locale should be avoided by XS code. Nevertheless, | |
332 | certain non-Perl libraries called from XS, such as C<Gtk> do so. When this | |
333 | happens, Perl needs to be told that the locale has changed. Use this function | |
334 | to do so, before returning to Perl. | |
c1284011 | 335 | |
1c43698b PM |
336 | =item * |
337 | ||
338 | Added L<perlapi/grok_atou> as a safer replacement for atoi and strtol. | |
339 | ||
6d9b7c7c | 340 | =back |
c1284011 | 341 | |
6d9b7c7c | 342 | =head1 Selected Bug Fixes |
375f5f06 | 343 | |
13900f93 A |
344 | XXX Important bug fixes in the core language are summarized here. Bug fixes in |
345 | files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>. | |
346 | ||
347 | [ List each fix as a =item entry ] | |
348 | ||
0346c3a9 | 349 | =over 4 |
375f5f06 | 350 | |
2884baee MH |
351 | =item * |
352 | ||
0dd816ae TC |
353 | Failing to compile C<use Foo> in an eval could leave a spurious |
354 | C<BEGIN> subroutine definition, which would produce a "Subroutine | |
355 | BEGIN redefined" warning on the next use of C<use>, or other C<BEGIN> | |
356 | block. [perl #122107] | |
2884baee | 357 | |
b756670b FC |
358 | =item * |
359 | ||
360 | C<method { BLOCK } ARGS> syntax now correctly parses the arguments if they | |
361 | begin with an opening brace. [perl #46947] | |
362 | ||
e917e94e PM |
363 | =item * |
364 | ||
365 | External libraries and Perl may have different ideas of what the locale is. | |
366 | This is problematic when parsing version strings if the locale's numeric | |
367 | separator has been changed. Version parsing has been patched to ensure | |
368 | it handles the locales correctly. [perl #121930] | |
369 | ||
26dd5fd6 PM |
370 | =item * |
371 | ||
372 | A bug has been fixed where zero-length assertions and code blocks inside of a | |
373 | regex could cause L<pos> to see an incorrect value. [perl #122460] | |
374 | ||
13900f93 A |
375 | =back |
376 | ||
377 | =head1 Known Problems | |
378 | ||
379 | XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any | |
380 | tests that had to be C<TODO>ed for the release would be noted here. Unfixed | |
381 | platform specific bugs also go here. | |
5af51eb4 | 382 | |
13900f93 A |
383 | [ List each fix as a =item entry ] |
384 | ||
385 | =over 4 | |
5af51eb4 | 386 | |
412f55bb KW |
387 | =item * |
388 | ||
13900f93 | 389 | XXX |
412f55bb | 390 | |
7065301c RS |
391 | =back |
392 | ||
13900f93 | 393 | =head1 Errata From Previous Releases |
24a38d90 | 394 | |
13900f93 A |
395 | =over 4 |
396 | ||
397 | =item * | |
e831f11a | 398 | |
13900f93 A |
399 | XXX Add anything here that we forgot to add, or were mistaken about, in |
400 | the perldelta of a previous release. | |
e831f11a | 401 | |
13900f93 A |
402 | =back |
403 | ||
13900f93 | 404 | =head1 Acknowledgements |
e831f11a | 405 | |
13900f93 | 406 | XXX Generate this with: |
e831f11a | 407 | |
13900f93 | 408 | perl Porting/acknowledgements.pl v5.21.2..HEAD |
f5b73711 | 409 | |
44691e6f AB |
410 | =head1 Reporting Bugs |
411 | ||
e08634c5 SH |
412 | If you find what you think is a bug, you might check the articles recently |
413 | posted to the comp.lang.perl.misc newsgroup and the perl bug database at | |
238894db | 414 | https://rt.perl.org/ . There may also be information at |
7ef8b31d | 415 | http://www.perl.org/ , the Perl Home Page. |
44691e6f | 416 | |
e08634c5 SH |
417 | If you believe you have an unreported bug, please run the L<perlbug> program |
418 | included with your release. Be sure to trim your bug down to a tiny but | |
419 | sufficient test case. Your bug report, along with the output of C<perl -V>, | |
420 | will be sent off to perlbug@perl.org to be analysed by the Perl porting team. | |
44691e6f AB |
421 | |
422 | If the bug you are reporting has security implications, which make it | |
e08634c5 SH |
423 | inappropriate to send to a publicly archived mailing list, then please send it |
424 | to perl5-security-report@perl.org. This points to a closed subscription | |
425 | unarchived mailing list, which includes all the core committers, who will be | |
426 | able to help assess the impact of issues, figure out a resolution, and help | |
f9001595 | 427 | co-ordinate the release of patches to mitigate or fix the problem across all |
e08634c5 SH |
428 | platforms on which Perl is supported. Please only use this address for |
429 | security issues in the Perl core, not for modules independently distributed on | |
430 | CPAN. | |
44691e6f AB |
431 | |
432 | =head1 SEE ALSO | |
433 | ||
e08634c5 SH |
434 | The F<Changes> file for an explanation of how to view exhaustive details on |
435 | what changed. | |
44691e6f AB |
436 | |
437 | The F<INSTALL> file for how to build Perl. | |
438 | ||
439 | The F<README> file for general stuff. | |
440 | ||
441 | The F<Artistic> and F<Copying> files for copyright information. | |
442 | ||
443 | =cut |