This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for 57d69a4
[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
55e8b286
PM
149L<HTTP::Tiny> has been upgraded from version 0.043 to 0.047.
150
151=item *
152
796f59e8 153L<perl5db.pl> has been upgraded from version 1.45 to 1.46.
f7df1a8c
TC
154
155Fixed the scope level handling of the debugger's C<y> command.
aac7f82f 156
0bb39c26
TC
157=item *
158
159L<POSIX> has been upgraded from version 1.41 to 1.42.
160
161Replaced the thread-unsafe code used to prevent duplicate warning
162messages for using the isxxx() functions. [perl #122476]
163
9c97a342
PM
164=item *
165
166L<Socket> has been upgraded from version 2.014 to 2.015.
167
168Test suite updates, particularly useful for Solaris and cygwin, and
169a slight change to the pattern used for IPv4 address matching.
170
13900f93 171=back
aac7f82f 172
13900f93
A
173=head2 Removed Modules and Pragmata
174
175=over 4
aac7f82f
A
176
177=item *
178
13900f93 179XXX
aac7f82f 180
13900f93 181=back
aac7f82f 182
13900f93 183=head1 Documentation
aac7f82f 184
13900f93
A
185XXX Changes to files in F<pod/> go here. Consider grouping entries by
186file and be sure to link to the appropriate page, e.g. L<perlfunc>.
aac7f82f 187
13900f93 188=head2 New Documentation
7065301c 189
13900f93 190XXX Changes which create B<new> files in F<pod/> go here.
7065301c 191
13900f93 192=head3 L<XXX>
aac7f82f 193
13900f93 194XXX Description of the purpose of the new file here
aac7f82f 195
13900f93 196=head2 Changes to Existing Documentation
6d9b7c7c 197
13900f93
A
198XXX Changes which significantly change existing files in F<pod/> go here.
199However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
200section.
6d9b7c7c 201
13900f93 202=head3 L<XXX>
7f55cec0 203
13900f93 204=over 4
7f55cec0
SH
205
206=item *
207
13900f93 208XXX Description of the change here
aac7f82f 209
13900f93 210=back
aac7f82f 211
13900f93 212=head1 Diagnostics
091fed7c 213
13900f93
A
214The following additions or changes have been made to diagnostic output,
215including warnings and fatal error messages. For the complete list of
216diagnostic messages, see L<perldiag>.
902c1f75 217
13900f93
A
218XXX New or changed warnings emitted by the core's C<C> code go here. Also
219include any changes in L<perldiag> that reconcile it to the C<C> code.
2901561d 220
13900f93 221=head2 New Diagnostics
2901561d 222
13900f93
A
223XXX Newly added diagnostic messages go under here, separated into New Errors
224and New Warnings
225
226=head3 New Errors
4594cf53 227
13900f93 228=over 4
96dcbc37
DD
229
230=item *
231
13900f93 232XXX L<message|perldiag/"message">
7065301c 233
13900f93 234=back
58f25ac1 235
13900f93
A
236=head3 New Warnings
237
238=over 4
58f25ac1
MH
239
240=item *
241
a5873648
PM
242L<Hexadecimal float: exponent overflow|perldiag/"Hexadecimal float: exponent overflow">
243
244(W overflow) The hexadecimal floating point has larger exponent
245than the floating point supports.
246
247=item *
248
249L<Hexadecimal float: exponent underflow|perldiag/"Hexadecimal float: exponent underflow">
250
251(W overflow) The hexadecimal floating point has smaller exponent
252than the floating point supports.
253
254=item *
255
256L<Hexadecimal float: internal error|perldiag/"Hexadecimal float: internal error">
257
258(F) Something went horribly bad in hexadecimal float handling.
259
260=item *
261
262L<Hexadecimal float: mantissa overflow|perldiag/"Hexadecimal float: mantissa overflow">
263
264(W overflow) The hexadecimal floating point literal had more bits in
265the mantissa (the part between the 0x and the exponent, also known as
266the fraction or the significand) than the floating point supports.
267
268=item *
269
270L<Hexadecimal float: precision loss|perldiag/"Hexadecimal float: precision loss">
271
272(W overflow) The hexadecimal floating point had internally more
273digits than could be output. This can be caused by unsupported
274long double formats, or by 64-bit integers not being available
275(needed to retrieve the digits under some configurations).
276
277=item *
278
279L<Hexadecimal float: unsupported long double format|perldiag/"Hexadecimal float: unsupported long double format">
280
281(F) You have configured Perl to use long doubles but
282the internals of the long double format are unknown,
283therefore the hexadecimal float output is impossible.
5bafdaa4 284
58f25ac1
MH
285=back
286
13900f93 287=head2 Changes to Existing Diagnostics
12042f24 288
13900f93 289XXX Changes (i.e. rewording) of diagnostic messages go here
b10906fb
MH
290
291=over 4
292
293=item *
294
13900f93 295XXX Describe change here
b10906fb
MH
296
297=back
298
13900f93
A
299=head1 Utility Changes
300
301XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
302Most of these are built within the directory F<utils>.
303
304[ List utility changes as a =head2 entry for each utility and =item
305entries for each change
306Use L<XXX> with program names to get proper documentation linking. ]
307
308=head2 L<XXX>
7065301c 309
6d9b7c7c 310=over 4
7065301c 311
6d9b7c7c 312=item *
0346c3a9 313
13900f93 314XXX
7065301c 315
6d9b7c7c 316=back
0346c3a9 317
13900f93
A
318=head1 Configuration and Compilation
319
320XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
321go here. Any other changes to the Perl build process should be listed here.
322However, any platform-specific changes should be listed in the
323L</Platform Support> section, instead.
324
325[ List changes as a =item entry ].
7065301c
RS
326
327=over 4
24a38d90
RS
328
329=item *
330
a5873648 331Internal handling of floating point values has been improved.
7065301c
RS
332
333=back
334
13900f93 335=head1 Testing
6d9b7c7c 336
13900f93
A
337XXX Any significant changes to the testing of a freshly built perl should be
338listed here. Changes which create B<new> files in F<t/> go here as do any
339large changes to the testing harness (e.g. when parallel testing was added).
340Changes to existing files in F<t/> aren't worth summarizing, although the bugs
341that they represent may be covered elsewhere.
6d9b7c7c 342
13900f93 343[ List each test improvement as a =item entry ]
7065301c
RS
344
345=over 4
24a38d90
RS
346
347=item *
348
13900f93 349XXX
48867f3d 350
13900f93 351=back
28462159 352
13900f93 353=head1 Platform Support
097675bf 354
13900f93 355XXX Any changes to platform support should be listed in the sections below.
b3211734 356
13900f93
A
357[ Within the sections, list each platform as a =item entry with specific
358changes as paragraphs below it. ]
b3211734 359
13900f93 360=head2 New Platforms
24a38d90 361
13900f93
A
362XXX List any platforms that this version of perl compiles on, that previous
363versions did not. These will either be enabled by new files in the F<hints/>
364directories, or new subdirectories and F<README> files at the top level of the
365source tree.
b08d439a 366
0346c3a9 367=over 4
747b6130 368
13900f93 369=item XXX-some-platform
747b6130 370
13900f93 371XXX
7065301c
RS
372
373=back
374
13900f93
A
375=head2 Discontinued Platforms
376
377XXX List any platforms that this version of perl no longer compiles on.
0346c3a9 378
7065301c
RS
379=over 4
380
13900f93 381=item XXX-some-platform
24a38d90 382
13900f93 383XXX
7065301c
RS
384
385=back
386
7065301c
RS
387=head2 Platform-Specific Notes
388
13900f93
A
389XXX List any changes for specific platforms. This could include configuration
390and compilation changes or changes in portability/compatibility. However,
391changes within modules for platforms should generally be listed in the
392L</Modules and Pragmata> section.
393
0346c3a9 394=over 4
7d0ccdba 395
13900f93 396=item XXX-some-platform
7d0ccdba 397
13900f93 398XXX
7d0ccdba 399
7065301c
RS
400=back
401
402=head1 Internal Changes
403
13900f93
A
404XXX Changes which affect the interface available to C<XS> code go here. Other
405significant internal changes for future core maintainers should be noted as
406well.
c9fcb674 407
13900f93 408[ List each change as a =item entry ]
ddeaf645 409
13900f93 410=over 4
c9fcb674 411
a835cd47
KW
412=item *
413
d8bcb4d6
KW
414Added L<perlapi/sync_locale>.
415Changing the program's locale should be avoided by XS code. Nevertheless,
416certain non-Perl libraries called from XS, such as C<Gtk> do so. When this
417happens, Perl needs to be told that the locale has changed. Use this function
418to do so, before returning to Perl.
c1284011 419
6d9b7c7c 420=back
c1284011 421
6d9b7c7c 422=head1 Selected Bug Fixes
375f5f06 423
13900f93
A
424XXX Important bug fixes in the core language are summarized here. Bug fixes in
425files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
426
427[ List each fix as a =item entry ]
428
0346c3a9 429=over 4
375f5f06 430
2884baee
MH
431=item *
432
0dd816ae
TC
433Failing to compile C<use Foo> in an eval could leave a spurious
434C<BEGIN> subroutine definition, which would produce a "Subroutine
435BEGIN redefined" warning on the next use of C<use>, or other C<BEGIN>
436block. [perl #122107]
2884baee 437
b756670b
FC
438=item *
439
440C<method { BLOCK } ARGS> syntax now correctly parses the arguments if they
441begin with an opening brace. [perl #46947]
442
13900f93
A
443=back
444
445=head1 Known Problems
446
447XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
448tests that had to be C<TODO>ed for the release would be noted here. Unfixed
449platform specific bugs also go here.
5af51eb4 450
13900f93
A
451[ List each fix as a =item entry ]
452
453=over 4
5af51eb4 454
412f55bb
KW
455=item *
456
13900f93 457XXX
412f55bb 458
7065301c
RS
459=back
460
13900f93 461=head1 Errata From Previous Releases
24a38d90 462
13900f93
A
463=over 4
464
465=item *
e831f11a 466
13900f93
A
467XXX Add anything here that we forgot to add, or were mistaken about, in
468the perldelta of a previous release.
e831f11a 469
13900f93
A
470=back
471
472=head1 Obituary
e831f11a 473
13900f93
A
474XXX If any significant core contributor has died, we've added a short obituary
475here.
e831f11a 476
13900f93 477=head1 Acknowledgements
e831f11a 478
13900f93 479XXX Generate this with:
e831f11a 480
13900f93 481 perl Porting/acknowledgements.pl v5.21.2..HEAD
f5b73711 482
44691e6f
AB
483=head1 Reporting Bugs
484
e08634c5
SH
485If you find what you think is a bug, you might check the articles recently
486posted to the comp.lang.perl.misc newsgroup and the perl bug database at
238894db 487https://rt.perl.org/ . There may also be information at
7ef8b31d 488http://www.perl.org/ , the Perl Home Page.
44691e6f 489
e08634c5
SH
490If you believe you have an unreported bug, please run the L<perlbug> program
491included with your release. Be sure to trim your bug down to a tiny but
492sufficient test case. Your bug report, along with the output of C<perl -V>,
493will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
494
495If the bug you are reporting has security implications, which make it
e08634c5
SH
496inappropriate to send to a publicly archived mailing list, then please send it
497to perl5-security-report@perl.org. This points to a closed subscription
498unarchived mailing list, which includes all the core committers, who will be
499able to help assess the impact of issues, figure out a resolution, and help
f9001595 500co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
501platforms on which Perl is supported. Please only use this address for
502security issues in the Perl core, not for modules independently distributed on
503CPAN.
44691e6f
AB
504
505=head1 SEE ALSO
506
e08634c5
SH
507The F<Changes> file for an explanation of how to view exhaustive details on
508what changed.
44691e6f
AB
509
510The F<INSTALL> file for how to build Perl.
511
512The F<README> file for general stuff.
513
514The F<Artistic> and F<Copying> files for copyright information.
515
516=cut