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