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