This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Tick off the 5.20.0 and 5.20.1 releases.
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
0346c3a9
MH
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.2
c68523cb 9
238894db 10=head1 DESCRIPTION
c68523cb 11
0346c3a9 12This document describes differences between the 5.21.1 release and the 5.21.2
238894db 13release.
c68523cb 14
0346c3a9
MH
15If you are upgrading from an earlier release such as 5.21.0, first read
16L<perl5211delta>, which describes differences between 5.21.0 and 5.21.1.
7065301c
RS
17
18=head1 Notice
19
0346c3a9 20XXX Any important notices here
7065301c
RS
21
22=head1 Core Enhancements
23
0346c3a9
MH
24XXX New core language features go here. Summarize user-visible core language
25enhancements. Particularly prominent performance optimisations could go
26here, but most should go in the L</Performance Enhancements> section.
7e957246 27
0346c3a9 28[ List each enhancement as a =head2 entry ]
7e957246 29
0346c3a9 30=head1 Security
7e957246 31
0346c3a9
MH
32XXX Any security-related notices go here. In particular, any security
33vulnerabilities closed should be noted here rather than in the
34L</Selected Bug Fixes> section.
7e957246 35
0346c3a9 36[ List each security issue as a =head2 entry ]
d6ded950 37
8bdb3f93
JH
38=head2 Perl is now always compiled with -D_FORTIFY_SOURCE=2 if available
39
40The 'code hardening' option called C<_FORTIFY_SOURCE>, available in
41gcc 4.*, is now always used for compiling Perl, if available.
42
43Note that this isn't necessarily a huge step since in many platforms
44the step had already been taken several years ago: many Linux
45distributions (like Fedora) have been using this option for Perl,
46and OS X has enforced the same for many years.
47
7065301c
RS
48=head1 Incompatible Changes
49
0346c3a9 50XXX For a release on a stable branch, this section aspires to be:
7065301c 51
0346c3a9
MH
52 There are no changes intentionally incompatible with 5.XXX.XXX
53 If any exist, they are bugs, and we request that you submit a
54 report. See L</Reporting Bugs> below.
cd209d9d 55
0346c3a9 56[ List each incompatible change as a =head2 entry ]
cd209d9d 57
0346c3a9 58=head1 Deprecations
5320b60d 59
0346c3a9 60XXX Any deprecated features, syntax, modules etc. should be listed here.
c3383756 61
0346c3a9 62=head2 Module removals
c3383756 63
0346c3a9 64XXX Remove this section if inapplicable.
36304e49 65
0346c3a9
MH
66The following modules will be removed from the core distribution in a
67future release, and will at that time need to be installed from CPAN.
68Distributions on CPAN which require these modules will need to list them as
69prerequisites.
36304e49 70
0346c3a9
MH
71The core versions of these modules will now issue C<"deprecated">-category
72warnings to alert you to this fact. To silence these deprecation warnings,
73install the modules in question from CPAN.
36304e49 74
0346c3a9
MH
75Note that these are (with rare exceptions) fine modules that you are encouraged
76to continue to use. Their disinclusion from core primarily hinges on their
77necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
78not usually on concerns over their design.
36304e49 79
0346c3a9 80=over
7065301c 81
0346c3a9 82=item XXX
df758df2 83
0346c3a9
MH
84XXX Note that deprecated modules should be listed here even if they are listed
85as an updated module in the L</Modules and Pragmata> section.
df758df2 86
0346c3a9 87=back
412f55bb 88
0346c3a9 89[ List each other deprecation as a =head2 entry ]
412f55bb 90
7065301c
RS
91=head1 Performance Enhancements
92
0346c3a9
MH
93XXX Changes which enhance performance without changing behaviour go here.
94There may well be none in a stable release.
7065301c 95
0346c3a9 96[ List each enhancement as a =item entry ]
d133a3dd 97
0346c3a9 98=over 4
7065301c 99
6bb82be0
MH
100=item *
101
0346c3a9 102XXX
6bb82be0 103
7065301c
RS
104=back
105
7ef8b31d 106=head1 Modules and Pragmata
f6f3144e 107
0346c3a9
MH
108XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
109go here. If Module::CoreList is updated, generate an initial draft of the
110following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
111for important changes should then be added by hand. In an ideal world,
112dual-life modules would have a F<Changes> file that could be cribbed.
2fc36bac 113
0346c3a9 114[ Within each section, list entries as a =item entry ]
2fc36bac 115
0346c3a9 116=head2 New Modules and Pragmata
2fc36bac 117
0346c3a9 118=over 4
24a38d90
RS
119
120=item *
121
0346c3a9 122XXX
7065301c
RS
123
124=back
125
0346c3a9 126=head2 Updated Modules and Pragmata
7065301c
RS
127
128=over 4
129
130=item *
131
7f55cec0
SH
132L<IO::Socket::IP> has been upgraded from verion 0.29 to 0.31.
133
134A better fix for subclassing C<connect()>.
135L<[cpan #95983]|https://rt.cpan.org/Ticket/Display.html?id=95983>
136L<[cpan #97050]|https://rt.cpan.org/Ticket/Display.html?id=97050>
137
138=item *
139
091fed7c
TC
140L<Math::BigInt> has been upgraded from version 1.9995 to 1.9996.
141
142Correct handling of subclasses.
143L<[cpan #96254]|https://rt.cpan.org/Ticket/Display.html?id=96254>
144L<[cpan #96329]|https://rt.cpan.org/Ticket/Display.html?id=96329>
902c1f75 145
2901561d
MH
146=item *
147
148L<Module::CoreList> has been upgraded from version 5.021001_1 to 5.021002.
149
4594cf53
TC
150=item *
151
96dcbc37
DD
152The PathTools module collection has been upgraded from version 3.48 to
1533.49.
154
155=item *
156
4594cf53
TC
157L<threads> has been upgraded from version 1.94 to 1.95.
158
7065301c
RS
159=back
160
0346c3a9 161=head2 Removed Modules and Pragmata
58f25ac1
MH
162
163=over 4
164
165=item *
166
0346c3a9 167XXX
5bafdaa4 168
58f25ac1
MH
169=back
170
0346c3a9 171=head1 Documentation
12042f24 172
0346c3a9
MH
173XXX Changes to files in F<pod/> go here. Consider grouping entries by
174file and be sure to link to the appropriate page, e.g. L<perlfunc>.
12042f24 175
0346c3a9 176=head2 New Documentation
12042f24 177
0346c3a9 178XXX Changes which create B<new> files in F<pod/> go here.
12042f24 179
0346c3a9 180=head3 L<XXX>
2705070b 181
0346c3a9 182XXX Description of the purpose of the new file here
2705070b 183
0346c3a9 184=head2 Changes to Existing Documentation
2705070b 185
0346c3a9
MH
186XXX Changes which significantly change existing files in F<pod/> go here.
187However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
188section.
2705070b 189
0346c3a9 190=head3 L<XXX>
b10906fb
MH
191
192=over 4
193
194=item *
195
0346c3a9 196XXX Description of the change here
b10906fb
MH
197
198=back
199
7065301c
RS
200=head1 Diagnostics
201
202The following additions or changes have been made to diagnostic output,
203including warnings and fatal error messages. For the complete list of
204diagnostic messages, see L<perldiag>.
205
0346c3a9
MH
206XXX New or changed warnings emitted by the core's C<C> code go here. Also
207include any changes in L<perldiag> that reconcile it to the C<C> code.
208
7065301c
RS
209=head2 New Diagnostics
210
0346c3a9
MH
211XXX Newly added diagnostic messages go under here, separated into New Errors
212and New Warnings
213
7065301c
RS
214=head3 New Errors
215
216=over 4
24a38d90
RS
217
218=item *
219
0346c3a9 220XXX L<message|perldiag/"message">
7065301c
RS
221
222=back
223
224=head3 New Warnings
225
226=over 4
24a38d90
RS
227
228=item *
229
48867f3d
TC
230L<Argument "%s" treated as 0 in increment (++)|perldiag/"Argument "%s" treated
231as 0 in increment (++)">
232
233(W numeric) The indicated string was fed as an argument to the C<++> operator
234which expects either a number or a string matching C</^[a-zA-Z]*[0-9]*\z/>.
235See L<perlop/Auto-increment and Auto-decrement> for details.
28462159 236
0346c3a9 237=back
28462159 238
0346c3a9 239=head2 Changes to Existing Diagnostics
28462159 240
0346c3a9 241XXX Changes (i.e. rewording) of diagnostic messages go here
28462159 242
0346c3a9 243=over 4
28462159
MH
244
245=item *
246
0346c3a9 247XXX Describe change here
28462159 248
0346c3a9 249=back
28462159 250
0346c3a9 251=head1 Utility Changes
28462159 252
0346c3a9
MH
253XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
254Most of these are built within the directory F<utils>.
28462159 255
0346c3a9
MH
256[ List utility changes as a =head2 entry for each utility and =item
257entries for each change
258Use L<XXX> with program names to get proper documentation linking. ]
097675bf 259
0346c3a9 260=head2 L<XXX>
097675bf 261
0346c3a9 262=over 4
24a38d90 263
28462159 264=item *
b3211734 265
0346c3a9 266XXX
b3211734 267
238894db 268=back
24a38d90 269
0346c3a9 270=head1 Configuration and Compilation
b08d439a 271
0346c3a9
MH
272XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
273go here. Any other changes to the Perl build process should be listed here.
274However, any platform-specific changes should be listed in the
275L</Platform Support> section, instead.
b08d439a 276
0346c3a9 277[ List changes as a =item entry ].
b08d439a 278
0346c3a9 279=over 4
747b6130
MH
280
281=item *
282
0346c3a9 283XXX
7065301c
RS
284
285=back
286
0346c3a9
MH
287=head1 Testing
288
289XXX Any significant changes to the testing of a freshly built perl should be
290listed here. Changes which create B<new> files in F<t/> go here as do any
291large changes to the testing harness (e.g. when parallel testing was added).
292Changes to existing files in F<t/> aren't worth summarizing, although the bugs
293that they represent may be covered elsewhere.
7065301c 294
0346c3a9 295[ List each test improvement as a =item entry ]
7065301c
RS
296
297=over 4
298
299=item *
24a38d90 300
0346c3a9 301XXX
7065301c
RS
302
303=back
304
0346c3a9 305=head1 Platform Support
12042f24 306
0346c3a9 307XXX Any changes to platform support should be listed in the sections below.
12042f24 308
0346c3a9
MH
309[ Within the sections, list each platform as a =item entry with specific
310changes as paragraphs below it. ]
12042f24 311
0346c3a9 312=head2 New Platforms
7065301c 313
0346c3a9
MH
314XXX List any platforms that this version of perl compiles on, that previous
315versions did not. These will either be enabled by new files in the F<hints/>
316directories, or new subdirectories and F<README> files at the top level of the
317source tree.
b2e61987 318
0346c3a9 319=over 4
b2e61987 320
0346c3a9 321=item XXX-some-platform
b2e61987 322
0346c3a9 323XXX
b2e61987 324
7065301c
RS
325=back
326
7065301c
RS
327=head2 Discontinued Platforms
328
0346c3a9
MH
329XXX List any platforms that this version of perl no longer compiles on.
330
7065301c
RS
331=over 4
332
0346c3a9 333=item XXX-some-platform
7065301c 334
0346c3a9 335XXX
7065301c
RS
336
337=back
338
339=head2 Platform-Specific Notes
340
0346c3a9
MH
341XXX List any changes for specific platforms. This could include configuration
342and compilation changes or changes in portability/compatibility. However,
343changes within modules for platforms should generally be listed in the
344L</Modules and Pragmata> section.
7065301c 345
0346c3a9 346=over 4
7d0ccdba 347
44bb6bf0 348=item Solaris
7d0ccdba 349
44bb6bf0
TC
350Builds on Solaris 10 with C<-Dusedtrace> would fail early since make
351didn't follow implied dependencies to build C<perldtrace.h>. Added an
352explicit dependency to C<depend>.
353L<[perl #120120]|https://rt.perl.org/Ticket/Display.html?id=120120>
7d0ccdba 354
7065301c
RS
355=back
356
357=head1 Internal Changes
358
0346c3a9
MH
359XXX Changes which affect the interface available to C<XS> code go here. Other
360significant internal changes for future core maintainers should be noted as
361well.
7065301c 362
0346c3a9 363[ List each change as a =item entry ]
7065301c 364
0346c3a9 365=over 4
4c28b29c 366
c9fcb674
KW
367=item *
368
ddeaf645
DD
369The following private API functions had their context parameter removed,
370C<Perl_cast_ulong>, C<Perl_cast_i32>, C<Perl_cast_iv>, C<Perl_cast_uv>,
371C<Perl_cv_const_sv>, C<Perl_mg_find>, C<Perl_mg_findext>, C<Perl_mg_magical>,
372C<Perl_mini_mktime>, C<Perl_my_dirfd>, C<Perl_sv_backoff>, C<Perl_utf8_hop>.
373
374Users of the public API prefix-less calls remain unaffected.
c9fcb674 375
7065301c
RS
376=back
377
378=head1 Selected Bug Fixes
379
0346c3a9
MH
380XXX Important bug fixes in the core language are summarized here. Bug fixes in
381files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
7065301c 382
0346c3a9 383[ List each fix as a =item entry ]
7065301c 384
0346c3a9 385=over 4
0c2c57a8 386
a835cd47
KW
387=item *
388
0346c3a9 389XXX
03ceeedf 390
0346c3a9 391=back
03ceeedf 392
0346c3a9 393=head1 Known Problems
c1284011 394
0346c3a9
MH
395XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
396tests that had to be C<TODO>ed for the release would be noted here. Unfixed
397platform specific bugs also go here.
c1284011 398
0346c3a9 399[ List each fix as a =item entry ]
375f5f06 400
0346c3a9 401=over 4
375f5f06 402
2884baee
MH
403=item *
404
0346c3a9 405XXX
2884baee 406
0346c3a9 407=back
5af51eb4 408
0346c3a9 409=head1 Errata From Previous Releases
5af51eb4 410
0346c3a9 411=over 4
5af51eb4 412
412f55bb
KW
413=item *
414
0346c3a9
MH
415XXX Add anything here that we forgot to add, or were mistaken about, in
416the perldelta of a previous release.
412f55bb 417
7065301c
RS
418=back
419
0346c3a9
MH
420=head1 Obituary
421
422XXX If any significant core contributor has died, we've added a short obituary
423here.
424
7065301c 425=head1 Acknowledgements
24a38d90 426
0346c3a9
MH
427XXX Generate this with:
428
429 perl Porting/acknowledgements.pl v5.21.1..HEAD
f5b73711 430
44691e6f
AB
431=head1 Reporting Bugs
432
e08634c5
SH
433If you find what you think is a bug, you might check the articles recently
434posted to the comp.lang.perl.misc newsgroup and the perl bug database at
238894db 435https://rt.perl.org/ . There may also be information at
7ef8b31d 436http://www.perl.org/ , the Perl Home Page.
44691e6f 437
e08634c5
SH
438If you believe you have an unreported bug, please run the L<perlbug> program
439included with your release. Be sure to trim your bug down to a tiny but
440sufficient test case. Your bug report, along with the output of C<perl -V>,
441will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
442
443If the bug you are reporting has security implications, which make it
e08634c5
SH
444inappropriate to send to a publicly archived mailing list, then please send it
445to perl5-security-report@perl.org. This points to a closed subscription
446unarchived mailing list, which includes all the core committers, who will be
447able to help assess the impact of issues, figure out a resolution, and help
f9001595 448co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
449platforms on which Perl is supported. Please only use this address for
450security issues in the Perl core, not for modules independently distributed on
451CPAN.
44691e6f
AB
452
453=head1 SEE ALSO
454
e08634c5
SH
455The F<Changes> file for an explanation of how to view exhaustive details on
456what changed.
44691e6f
AB
457
458The F<INSTALL> file for how to build Perl.
459
460The F<README> file for general stuff.
461
462The F<Artistic> and F<Copying> files for copyright information.
463
464=cut