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 | 174 | =head2 New Diagnostics |
2901561d | 175 | |
13900f93 | 176 | =head3 New Errors |
4594cf53 | 177 | |
13900f93 | 178 | =over 4 |
96dcbc37 DD |
179 | |
180 | =item * | |
181 | ||
a1d26ccd PM |
182 | L<Hexadecimal float: internal error|perldiag/"Hexadecimal float: internal error"> |
183 | ||
184 | (F) Something went horribly bad in hexadecimal float handling. | |
185 | ||
186 | =item * | |
187 | ||
188 | L<Hexadecimal float: unsupported long double format|perldiag/"Hexadecimal float: unsupported long double format"> | |
189 | ||
190 | (F) You have configured Perl to use long doubles but | |
191 | the internals of the long double format are unknown, | |
192 | therefore the hexadecimal float output is impossible. | |
7065301c | 193 | |
13900f93 | 194 | =back |
58f25ac1 | 195 | |
13900f93 A |
196 | =head3 New Warnings |
197 | ||
198 | =over 4 | |
58f25ac1 MH |
199 | |
200 | =item * | |
201 | ||
a5873648 PM |
202 | L<Hexadecimal float: exponent overflow|perldiag/"Hexadecimal float: exponent overflow"> |
203 | ||
204 | (W overflow) The hexadecimal floating point has larger exponent | |
205 | than the floating point supports. | |
206 | ||
207 | =item * | |
208 | ||
209 | L<Hexadecimal float: exponent underflow|perldiag/"Hexadecimal float: exponent underflow"> | |
210 | ||
211 | (W overflow) The hexadecimal floating point has smaller exponent | |
212 | than the floating point supports. | |
213 | ||
214 | =item * | |
215 | ||
a5873648 PM |
216 | L<Hexadecimal float: mantissa overflow|perldiag/"Hexadecimal float: mantissa overflow"> |
217 | ||
218 | (W overflow) The hexadecimal floating point literal had more bits in | |
219 | the mantissa (the part between the 0x and the exponent, also known as | |
220 | the fraction or the significand) than the floating point supports. | |
221 | ||
222 | =item * | |
223 | ||
224 | L<Hexadecimal float: precision loss|perldiag/"Hexadecimal float: precision loss"> | |
225 | ||
226 | (W overflow) The hexadecimal floating point had internally more | |
227 | digits than could be output. This can be caused by unsupported | |
228 | long double formats, or by 64-bit integers not being available | |
229 | (needed to retrieve the digits under some configurations). | |
230 | ||
58f25ac1 MH |
231 | =back |
232 | ||
13900f93 | 233 | =head2 Changes to Existing Diagnostics |
12042f24 | 234 | |
13900f93 | 235 | XXX Changes (i.e. rewording) of diagnostic messages go here |
b10906fb MH |
236 | |
237 | =over 4 | |
238 | ||
239 | =item * | |
240 | ||
13900f93 | 241 | XXX Describe change here |
b10906fb MH |
242 | |
243 | =back | |
244 | ||
13900f93 A |
245 | =head1 Configuration and Compilation |
246 | ||
247 | XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools | |
248 | go here. Any other changes to the Perl build process should be listed here. | |
249 | However, any platform-specific changes should be listed in the | |
250 | L</Platform Support> section, instead. | |
251 | ||
252 | [ List changes as a =item entry ]. | |
7065301c RS |
253 | |
254 | =over 4 | |
24a38d90 RS |
255 | |
256 | =item * | |
257 | ||
a5873648 | 258 | Internal handling of floating point values has been improved. |
7065301c RS |
259 | |
260 | =back | |
261 | ||
13900f93 | 262 | =head1 Testing |
6d9b7c7c | 263 | |
13900f93 A |
264 | XXX Any significant changes to the testing of a freshly built perl should be |
265 | listed here. Changes which create B<new> files in F<t/> go here as do any | |
266 | large changes to the testing harness (e.g. when parallel testing was added). | |
267 | Changes to existing files in F<t/> aren't worth summarizing, although the bugs | |
268 | that they represent may be covered elsewhere. | |
6d9b7c7c | 269 | |
13900f93 | 270 | [ List each test improvement as a =item entry ] |
7065301c RS |
271 | |
272 | =over 4 | |
24a38d90 RS |
273 | |
274 | =item * | |
275 | ||
13900f93 | 276 | XXX |
48867f3d | 277 | |
13900f93 | 278 | =back |
28462159 | 279 | |
13900f93 | 280 | =head1 Platform Support |
097675bf | 281 | |
6e97d65d | 282 | =head2 Platform-Specific Notes |
b3211734 | 283 | |
6e97d65d | 284 | =over 4 |
b3211734 | 285 | |
6e97d65d | 286 | =item Android |
7065301c | 287 | |
6e97d65d PM |
288 | Build support has been improved for cross-compiling in general and for |
289 | Android in particular. | |
13900f93 | 290 | |
6e97d65d | 291 | =item Solaris |
7d0ccdba | 292 | |
6e97d65d PM |
293 | C<c99> options have been cleaned up, hints look for C<solstudio> |
294 | as well as C<SUNWspro>, and support for native C<setenv> has been added. | |
7d0ccdba | 295 | |
6e97d65d PM |
296 | =item VMS |
297 | ||
298 | C<finite>, C<finitel>, and C<isfinite> detection has been added to | |
299 | C<configure.com>, environment handling has had some minor changes, and | |
300 | a fix for legacy feature checking status. | |
301 | ||
302 | =item Windows | |
303 | ||
304 | C<%I64d> is now being used instead of C<%lld> for MinGW. | |
7d0ccdba | 305 | |
7065301c RS |
306 | =back |
307 | ||
308 | =head1 Internal Changes | |
309 | ||
13900f93 A |
310 | XXX Changes which affect the interface available to C<XS> code go here. Other |
311 | significant internal changes for future core maintainers should be noted as | |
312 | well. | |
c9fcb674 | 313 | |
13900f93 | 314 | [ List each change as a =item entry ] |
ddeaf645 | 315 | |
13900f93 | 316 | =over 4 |
c9fcb674 | 317 | |
a835cd47 KW |
318 | =item * |
319 | ||
d8bcb4d6 KW |
320 | Added L<perlapi/sync_locale>. |
321 | Changing the program's locale should be avoided by XS code. Nevertheless, | |
322 | certain non-Perl libraries called from XS, such as C<Gtk> do so. When this | |
323 | happens, Perl needs to be told that the locale has changed. Use this function | |
324 | to do so, before returning to Perl. | |
c1284011 | 325 | |
1c43698b PM |
326 | =item * |
327 | ||
328 | Added L<perlapi/grok_atou> as a safer replacement for atoi and strtol. | |
329 | ||
6d9b7c7c | 330 | =back |
c1284011 | 331 | |
6d9b7c7c | 332 | =head1 Selected Bug Fixes |
375f5f06 | 333 | |
13900f93 A |
334 | XXX Important bug fixes in the core language are summarized here. Bug fixes in |
335 | files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>. | |
336 | ||
337 | [ List each fix as a =item entry ] | |
338 | ||
0346c3a9 | 339 | =over 4 |
375f5f06 | 340 | |
2884baee MH |
341 | =item * |
342 | ||
0dd816ae TC |
343 | Failing to compile C<use Foo> in an eval could leave a spurious |
344 | C<BEGIN> subroutine definition, which would produce a "Subroutine | |
345 | BEGIN redefined" warning on the next use of C<use>, or other C<BEGIN> | |
346 | block. [perl #122107] | |
2884baee | 347 | |
b756670b FC |
348 | =item * |
349 | ||
350 | C<method { BLOCK } ARGS> syntax now correctly parses the arguments if they | |
351 | begin with an opening brace. [perl #46947] | |
352 | ||
e917e94e PM |
353 | =item * |
354 | ||
355 | External libraries and Perl may have different ideas of what the locale is. | |
356 | This is problematic when parsing version strings if the locale's numeric | |
357 | separator has been changed. Version parsing has been patched to ensure | |
358 | it handles the locales correctly. [perl #121930] | |
359 | ||
26dd5fd6 PM |
360 | =item * |
361 | ||
362 | A bug has been fixed where zero-length assertions and code blocks inside of a | |
363 | regex could cause L<pos> to see an incorrect value. [perl #122460] | |
364 | ||
13900f93 A |
365 | =back |
366 | ||
367 | =head1 Known Problems | |
368 | ||
369 | XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any | |
370 | tests that had to be C<TODO>ed for the release would be noted here. Unfixed | |
371 | platform specific bugs also go here. | |
5af51eb4 | 372 | |
13900f93 A |
373 | [ List each fix as a =item entry ] |
374 | ||
375 | =over 4 | |
5af51eb4 | 376 | |
412f55bb KW |
377 | =item * |
378 | ||
13900f93 | 379 | XXX |
412f55bb | 380 | |
7065301c RS |
381 | =back |
382 | ||
13900f93 | 383 | =head1 Errata From Previous Releases |
24a38d90 | 384 | |
13900f93 A |
385 | =over 4 |
386 | ||
387 | =item * | |
e831f11a | 388 | |
13900f93 A |
389 | XXX Add anything here that we forgot to add, or were mistaken about, in |
390 | the perldelta of a previous release. | |
e831f11a | 391 | |
13900f93 A |
392 | =back |
393 | ||
13900f93 | 394 | =head1 Acknowledgements |
e831f11a | 395 | |
13900f93 | 396 | XXX Generate this with: |
e831f11a | 397 | |
13900f93 | 398 | perl Porting/acknowledgements.pl v5.21.2..HEAD |
f5b73711 | 399 | |
44691e6f AB |
400 | =head1 Reporting Bugs |
401 | ||
e08634c5 SH |
402 | If you find what you think is a bug, you might check the articles recently |
403 | posted to the comp.lang.perl.misc newsgroup and the perl bug database at | |
238894db | 404 | https://rt.perl.org/ . There may also be information at |
7ef8b31d | 405 | http://www.perl.org/ , the Perl Home Page. |
44691e6f | 406 | |
e08634c5 SH |
407 | If you believe you have an unreported bug, please run the L<perlbug> program |
408 | included with your release. Be sure to trim your bug down to a tiny but | |
409 | sufficient test case. Your bug report, along with the output of C<perl -V>, | |
410 | will be sent off to perlbug@perl.org to be analysed by the Perl porting team. | |
44691e6f AB |
411 | |
412 | If the bug you are reporting has security implications, which make it | |
e08634c5 SH |
413 | inappropriate to send to a publicly archived mailing list, then please send it |
414 | to perl5-security-report@perl.org. This points to a closed subscription | |
415 | unarchived mailing list, which includes all the core committers, who will be | |
416 | able to help assess the impact of issues, figure out a resolution, and help | |
f9001595 | 417 | co-ordinate the release of patches to mitigate or fix the problem across all |
e08634c5 SH |
418 | platforms on which Perl is supported. Please only use this address for |
419 | security issues in the Perl core, not for modules independently distributed on | |
420 | CPAN. | |
44691e6f AB |
421 | |
422 | =head1 SEE ALSO | |
423 | ||
e08634c5 SH |
424 | The F<Changes> file for an explanation of how to view exhaustive details on |
425 | what changed. | |
44691e6f AB |
426 | |
427 | The F<INSTALL> file for how to build Perl. | |
428 | ||
429 | The F<README> file for general stuff. | |
430 | ||
431 | The F<Artistic> and F<Copying> files for copyright information. | |
432 | ||
433 | =cut |