This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for f4ef132
[perl5.git] / pod / perldelta.pod
1 =encoding utf8
2
3 =head1 NAME
4
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
9
10 =head1 DESCRIPTION
11
12 This document describes differences between the 5.21.2 release and the 5.21.3
13 release.
14
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
21
22 =head1 Core Enhancements
23
24 =head2 C<defined(@array = LIST)> is no longer fatal
25
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.
28
29 =head1 Security
30
31 XXX Any security-related notices go here.  In particular, any security
32 vulnerabilities closed should be noted here rather than in the
33 L</Selected Bug Fixes> section.
34
35 [ List each security issue as a =head2 entry ]
36
37 =head1 Incompatible Changes
38
39 XXX For a release on a stable branch, this section aspires to be:
40
41     There are no changes intentionally incompatible with 5.XXX.XXX
42     If any exist, they are bugs, and we request that you submit a
43     report.  See L</Reporting Bugs> below.
44
45 [ List each incompatible change as a =head2 entry ]
46
47 =head2 S<C<use UNIVERSAL '...'>> is now a fatal error
48
49 Importing functions from C<UNIVERSAL> has been deprecated since v5.12, and
50 is now a fatal error.  S<C<"use UNIVERSAL">> without any arguments is still
51 allowed.
52
53 =head1 Deprecations
54
55 XXX Any deprecated features, syntax, modules etc. should be listed here.
56
57 =head2 Module removals
58
59 XXX Remove this section if inapplicable.
60
61 The following modules will be removed from the core distribution in a
62 future release, and will at that time need to be installed from CPAN.
63 Distributions on CPAN which require these modules will need to list them as
64 prerequisites.
65
66 The core versions of these modules will now issue C<"deprecated">-category
67 warnings to alert you to this fact.  To silence these deprecation warnings,
68 install the modules in question from CPAN.
69
70 Note that these are (with rare exceptions) fine modules that you are encouraged
71 to continue to use.  Their disinclusion from core primarily hinges on their
72 necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
73 not usually on concerns over their design.
74
75 =over
76
77 =item XXX
78
79 XXX Note that deprecated modules should be listed here even if they are listed
80 as an updated module in the L</Modules and Pragmata> section.
81
82 =back
83
84 [ List each other deprecation as a =head2 entry ]
85
86 =head1 Performance Enhancements
87
88 XXX Changes which enhance performance without changing behaviour go here.
89 There may well be none in a stable release.
90
91 [ List each enhancement as a =item entry ]
92
93 =over 4
94
95 =item *
96
97 XXX
98
99 =back
100
101 =head1 Modules and Pragmata
102
103 XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
104 go here.  If Module::CoreList is updated, generate an initial draft of the
105 following sections using F<Porting/corelist-perldelta.pl>.  A paragraph summary
106 for important changes should then be added by hand.  In an ideal world,
107 dual-life modules would have a F<Changes> file that could be cribbed.
108
109 [ Within each section, list entries as a =item entry ]
110
111 =head2 New Modules and Pragmata
112
113 =over 4
114
115 =item *
116
117 XXX
118
119 =back
120
121 =head2 Updated Modules and Pragmata
122
123 =over 4
124
125 =item *
126
127 L<B::Debug> has been upgraded from version 1.19 to 1.21
128
129 =item *
130
131 L<Config::Perl::V> has been upgraded from version 0.20 to 0.22.
132
133 =item *
134
135 L<CPAN::Meta> has been upgraded from version 2.141520 to 2.142060.
136
137 =item *
138
139 L<CPAN::Meta::Requirements> has been upgraded from version 2.125 to 2.126.
140
141 =item *
142
143 L<ExtUtils::Manifest> has been upgraded from version 1.64 to 1.65.
144
145 The MANIFEST is now opened with C<:raw>, to prevent C<CRLF>s leaking in.
146
147 =item *
148
149 L<perl5db.pl> has been upgraded from version 1.45 to 1.46.
150
151 Fixed the scope level handling of the debugger's C<y> command.
152
153 =item *
154
155 L<POSIX> has been upgraded from version 1.41 to 1.42.
156
157 Replaced the thread-unsafe code used to prevent duplicate warning
158 messages for using the isxxx() functions.  [perl #122476]
159
160 =item *
161
162 L<Socket> has been upgraded from version 2.014 to 2.015.
163
164 Test suite updates, particularly useful for Solaris and cygwin, and
165 a slight change to the pattern used for IPv4 address matching.
166
167 =back
168
169 =head2 Removed Modules and Pragmata
170
171 =over 4
172
173 =item *
174
175 XXX
176
177 =back
178
179 =head1 Documentation
180
181 XXX Changes to files in F<pod/> go here.  Consider grouping entries by
182 file and be sure to link to the appropriate page, e.g. L<perlfunc>.
183
184 =head2 New Documentation
185
186 XXX Changes which create B<new> files in F<pod/> go here.
187
188 =head3 L<XXX>
189
190 XXX Description of the purpose of the new file here
191
192 =head2 Changes to Existing Documentation
193
194 XXX Changes which significantly change existing files in F<pod/> go here.
195 However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
196 section.
197
198 =head3 L<XXX>
199
200 =over 4
201
202 =item *
203
204 XXX Description of the change here
205
206 =back
207
208 =head1 Diagnostics
209
210 The following additions or changes have been made to diagnostic output,
211 including warnings and fatal error messages.  For the complete list of
212 diagnostic messages, see L<perldiag>.
213
214 XXX New or changed warnings emitted by the core's C<C> code go here.  Also
215 include any changes in L<perldiag> that reconcile it to the C<C> code.
216
217 =head2 New Diagnostics
218
219 XXX Newly added diagnostic messages go under here, separated into New Errors
220 and New Warnings
221
222 =head3 New Errors
223
224 =over 4
225
226 =item *
227
228 XXX L<message|perldiag/"message">
229
230 =back
231
232 =head3 New Warnings
233
234 =over 4
235
236 =item *
237
238 L<Hexadecimal float: exponent overflow|perldiag/"Hexadecimal float: exponent overflow">
239
240 (W overflow) The hexadecimal floating point has larger exponent
241 than the floating point supports.
242
243 =item *
244
245 L<Hexadecimal float: exponent underflow|perldiag/"Hexadecimal float: exponent underflow">
246
247 (W overflow) The hexadecimal floating point has smaller exponent
248 than the floating point supports.
249
250 =item *
251
252 L<Hexadecimal float: internal error|perldiag/"Hexadecimal float: internal error">
253
254 (F) Something went horribly bad in hexadecimal float handling.
255
256 =item *
257
258 L<Hexadecimal float: mantissa overflow|perldiag/"Hexadecimal float: mantissa overflow">
259
260 (W overflow) The hexadecimal floating point literal had more bits in
261 the mantissa (the part between the 0x and the exponent, also known as
262 the fraction or the significand) than the floating point supports.
263
264 =item *
265
266 L<Hexadecimal float: precision loss|perldiag/"Hexadecimal float: precision loss">
267
268 (W overflow) The hexadecimal floating point had internally more
269 digits than could be output.  This can be caused by unsupported
270 long double formats, or by 64-bit integers not being available
271 (needed to retrieve the digits under some configurations).
272
273 =item *
274
275 L<Hexadecimal float: unsupported long double format|perldiag/"Hexadecimal float: unsupported long double format">
276
277 (F) You have configured Perl to use long doubles but
278 the internals of the long double format are unknown,
279 therefore the hexadecimal float output is impossible.
280
281 =back
282
283 =head2 Changes to Existing Diagnostics
284
285 XXX Changes (i.e. rewording) of diagnostic messages go here
286
287 =over 4
288
289 =item *
290
291 XXX Describe change here
292
293 =back
294
295 =head1 Utility Changes
296
297 XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
298 Most of these are built within the directory F<utils>.
299
300 [ List utility changes as a =head2 entry for each utility and =item
301 entries for each change
302 Use L<XXX> with program names to get proper documentation linking. ]
303
304 =head2 L<XXX>
305
306 =over 4
307
308 =item *
309
310 XXX
311
312 =back
313
314 =head1 Configuration and Compilation
315
316 XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
317 go here.  Any other changes to the Perl build process should be listed here.
318 However, any platform-specific changes should be listed in the
319 L</Platform Support> section, instead.
320
321 [ List changes as a =item entry ].
322
323 =over 4
324
325 =item *
326
327 Internal handling of floating point values has been improved.
328
329 =back
330
331 =head1 Testing
332
333 XXX Any significant changes to the testing of a freshly built perl should be
334 listed here.  Changes which create B<new> files in F<t/> go here as do any
335 large changes to the testing harness (e.g. when parallel testing was added).
336 Changes to existing files in F<t/> aren't worth summarizing, although the bugs
337 that they represent may be covered elsewhere.
338
339 [ List each test improvement as a =item entry ]
340
341 =over 4
342
343 =item *
344
345 XXX
346
347 =back
348
349 =head1 Platform Support
350
351 XXX Any changes to platform support should be listed in the sections below.
352
353 [ Within the sections, list each platform as a =item entry with specific
354 changes as paragraphs below it. ]
355
356 =head2 New Platforms
357
358 XXX List any platforms that this version of perl compiles on, that previous
359 versions did not.  These will either be enabled by new files in the F<hints/>
360 directories, or new subdirectories and F<README> files at the top level of the
361 source tree.
362
363 =over 4
364
365 =item XXX-some-platform
366
367 XXX
368
369 =back
370
371 =head2 Discontinued Platforms
372
373 XXX List any platforms that this version of perl no longer compiles on.
374
375 =over 4
376
377 =item XXX-some-platform
378
379 XXX
380
381 =back
382
383 =head2 Platform-Specific Notes
384
385 XXX List any changes for specific platforms.  This could include configuration
386 and compilation changes or changes in portability/compatibility.  However,
387 changes within modules for platforms should generally be listed in the
388 L</Modules and Pragmata> section.
389
390 =over 4
391
392 =item XXX-some-platform
393
394 XXX
395
396 =back
397
398 =head1 Internal Changes
399
400 XXX Changes which affect the interface available to C<XS> code go here.  Other
401 significant internal changes for future core maintainers should be noted as
402 well.
403
404 [ List each change as a =item entry ]
405
406 =over 4
407
408 =item *
409
410 Added L<perlapi/sync_locale>.
411 Changing the program's locale should be avoided by XS code.  Nevertheless,
412 certain non-Perl libraries called from XS, such as C<Gtk> do so.  When this
413 happens, Perl needs to be told that the locale has changed.  Use this function
414 to do so, before returning to Perl.
415
416 =back
417
418 =head1 Selected Bug Fixes
419
420 XXX Important bug fixes in the core language are summarized here.  Bug fixes in
421 files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
422
423 [ List each fix as a =item entry ]
424
425 =over 4
426
427 =item *
428
429 Failing to compile C<use Foo> in an eval could leave a spurious
430 C<BEGIN> subroutine definition, which would produce a "Subroutine
431 BEGIN redefined" warning on the next use of C<use>, or other C<BEGIN>
432 block.  [perl #122107]
433
434 =item *
435
436 C<method { BLOCK } ARGS> syntax now correctly parses the arguments if they
437 begin with an opening brace.  [perl #46947]
438
439 =back
440
441 =head1 Known Problems
442
443 XXX Descriptions of platform agnostic bugs we know we can't fix go here.  Any
444 tests that had to be C<TODO>ed for the release would be noted here.  Unfixed
445 platform specific bugs also go here.
446
447 [ List each fix as a =item entry ]
448
449 =over 4
450
451 =item *
452
453 XXX
454
455 =back
456
457 =head1 Errata From Previous Releases
458
459 =over 4
460
461 =item *
462
463 XXX Add anything here that we forgot to add, or were mistaken about, in
464 the perldelta of a previous release.
465
466 =back
467
468 =head1 Obituary
469
470 XXX If any significant core contributor has died, we've added a short obituary
471 here.
472
473 =head1 Acknowledgements
474
475 XXX Generate this with:
476
477   perl Porting/acknowledgements.pl v5.21.2..HEAD
478
479 =head1 Reporting Bugs
480
481 If you find what you think is a bug, you might check the articles recently
482 posted to the comp.lang.perl.misc newsgroup and the perl bug database at
483 https://rt.perl.org/ .  There may also be information at
484 http://www.perl.org/ , the Perl Home Page.
485
486 If you believe you have an unreported bug, please run the L<perlbug> program
487 included with your release.  Be sure to trim your bug down to a tiny but
488 sufficient test case.  Your bug report, along with the output of C<perl -V>,
489 will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
490
491 If the bug you are reporting has security implications, which make it
492 inappropriate to send to a publicly archived mailing list, then please send it
493 to perl5-security-report@perl.org.  This points to a closed subscription
494 unarchived mailing list, which includes all the core committers, who will be
495 able to help assess the impact of issues, figure out a resolution, and help
496 co-ordinate the release of patches to mitigate or fix the problem across all
497 platforms on which Perl is supported.  Please only use this address for
498 security issues in the Perl core, not for modules independently distributed on
499 CPAN.
500
501 =head1 SEE ALSO
502
503 The F<Changes> file for an explanation of how to view exhaustive details on
504 what changed.
505
506 The F<INSTALL> file for how to build Perl.
507
508 The F<README> file for general stuff.
509
510 The F<Artistic> and F<Copying> files for copyright information.
511
512 =cut