This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for 3f7602fa4cd6
[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
091fed7c
TC
132L<Math::BigInt> has been upgraded from version 1.9995 to 1.9996.
133
134Correct handling of subclasses.
135L<[cpan #96254]|https://rt.cpan.org/Ticket/Display.html?id=96254>
136L<[cpan #96329]|https://rt.cpan.org/Ticket/Display.html?id=96329>
902c1f75 137
2901561d
MH
138=item *
139
140L<Module::CoreList> has been upgraded from version 5.021001_1 to 5.021002.
141
7065301c
RS
142=back
143
0346c3a9 144=head2 Removed Modules and Pragmata
58f25ac1
MH
145
146=over 4
147
148=item *
149
0346c3a9 150XXX
5bafdaa4 151
58f25ac1
MH
152=back
153
0346c3a9 154=head1 Documentation
12042f24 155
0346c3a9
MH
156XXX Changes to files in F<pod/> go here. Consider grouping entries by
157file and be sure to link to the appropriate page, e.g. L<perlfunc>.
12042f24 158
0346c3a9 159=head2 New Documentation
12042f24 160
0346c3a9 161XXX Changes which create B<new> files in F<pod/> go here.
12042f24 162
0346c3a9 163=head3 L<XXX>
2705070b 164
0346c3a9 165XXX Description of the purpose of the new file here
2705070b 166
0346c3a9 167=head2 Changes to Existing Documentation
2705070b 168
0346c3a9
MH
169XXX Changes which significantly change existing files in F<pod/> go here.
170However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
171section.
2705070b 172
0346c3a9 173=head3 L<XXX>
b10906fb
MH
174
175=over 4
176
177=item *
178
0346c3a9 179XXX Description of the change here
b10906fb
MH
180
181=back
182
7065301c
RS
183=head1 Diagnostics
184
185The following additions or changes have been made to diagnostic output,
186including warnings and fatal error messages. For the complete list of
187diagnostic messages, see L<perldiag>.
188
0346c3a9
MH
189XXX New or changed warnings emitted by the core's C<C> code go here. Also
190include any changes in L<perldiag> that reconcile it to the C<C> code.
191
7065301c
RS
192=head2 New Diagnostics
193
0346c3a9
MH
194XXX Newly added diagnostic messages go under here, separated into New Errors
195and New Warnings
196
7065301c
RS
197=head3 New Errors
198
199=over 4
24a38d90
RS
200
201=item *
202
0346c3a9 203XXX L<message|perldiag/"message">
7065301c
RS
204
205=back
206
207=head3 New Warnings
208
209=over 4
24a38d90
RS
210
211=item *
212
48867f3d
TC
213L<Argument "%s" treated as 0 in increment (++)|perldiag/"Argument "%s" treated
214as 0 in increment (++)">
215
216(W numeric) The indicated string was fed as an argument to the C<++> operator
217which expects either a number or a string matching C</^[a-zA-Z]*[0-9]*\z/>.
218See L<perlop/Auto-increment and Auto-decrement> for details.
28462159 219
0346c3a9 220=back
28462159 221
0346c3a9 222=head2 Changes to Existing Diagnostics
28462159 223
0346c3a9 224XXX Changes (i.e. rewording) of diagnostic messages go here
28462159 225
0346c3a9 226=over 4
28462159
MH
227
228=item *
229
0346c3a9 230XXX Describe change here
28462159 231
0346c3a9 232=back
28462159 233
0346c3a9 234=head1 Utility Changes
28462159 235
0346c3a9
MH
236XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
237Most of these are built within the directory F<utils>.
28462159 238
0346c3a9
MH
239[ List utility changes as a =head2 entry for each utility and =item
240entries for each change
241Use L<XXX> with program names to get proper documentation linking. ]
097675bf 242
0346c3a9 243=head2 L<XXX>
097675bf 244
0346c3a9 245=over 4
24a38d90 246
28462159 247=item *
b3211734 248
0346c3a9 249XXX
b3211734 250
238894db 251=back
24a38d90 252
0346c3a9 253=head1 Configuration and Compilation
b08d439a 254
0346c3a9
MH
255XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
256go here. Any other changes to the Perl build process should be listed here.
257However, any platform-specific changes should be listed in the
258L</Platform Support> section, instead.
b08d439a 259
0346c3a9 260[ List changes as a =item entry ].
b08d439a 261
0346c3a9 262=over 4
747b6130
MH
263
264=item *
265
0346c3a9 266XXX
7065301c
RS
267
268=back
269
0346c3a9
MH
270=head1 Testing
271
272XXX Any significant changes to the testing of a freshly built perl should be
273listed here. Changes which create B<new> files in F<t/> go here as do any
274large changes to the testing harness (e.g. when parallel testing was added).
275Changes to existing files in F<t/> aren't worth summarizing, although the bugs
276that they represent may be covered elsewhere.
7065301c 277
0346c3a9 278[ List each test improvement as a =item entry ]
7065301c
RS
279
280=over 4
281
282=item *
24a38d90 283
0346c3a9 284XXX
7065301c
RS
285
286=back
287
0346c3a9 288=head1 Platform Support
12042f24 289
0346c3a9 290XXX Any changes to platform support should be listed in the sections below.
12042f24 291
0346c3a9
MH
292[ Within the sections, list each platform as a =item entry with specific
293changes as paragraphs below it. ]
12042f24 294
0346c3a9 295=head2 New Platforms
7065301c 296
0346c3a9
MH
297XXX List any platforms that this version of perl compiles on, that previous
298versions did not. These will either be enabled by new files in the F<hints/>
299directories, or new subdirectories and F<README> files at the top level of the
300source tree.
b2e61987 301
0346c3a9 302=over 4
b2e61987 303
0346c3a9 304=item XXX-some-platform
b2e61987 305
0346c3a9 306XXX
b2e61987 307
7065301c
RS
308=back
309
7065301c
RS
310=head2 Discontinued Platforms
311
0346c3a9
MH
312XXX List any platforms that this version of perl no longer compiles on.
313
7065301c
RS
314=over 4
315
0346c3a9 316=item XXX-some-platform
7065301c 317
0346c3a9 318XXX
7065301c
RS
319
320=back
321
322=head2 Platform-Specific Notes
323
0346c3a9
MH
324XXX List any changes for specific platforms. This could include configuration
325and compilation changes or changes in portability/compatibility. However,
326changes within modules for platforms should generally be listed in the
327L</Modules and Pragmata> section.
7065301c 328
0346c3a9 329=over 4
7d0ccdba 330
44bb6bf0 331=item Solaris
7d0ccdba 332
44bb6bf0
TC
333Builds on Solaris 10 with C<-Dusedtrace> would fail early since make
334didn't follow implied dependencies to build C<perldtrace.h>. Added an
335explicit dependency to C<depend>.
336L<[perl #120120]|https://rt.perl.org/Ticket/Display.html?id=120120>
7d0ccdba 337
7065301c
RS
338=back
339
340=head1 Internal Changes
341
0346c3a9
MH
342XXX Changes which affect the interface available to C<XS> code go here. Other
343significant internal changes for future core maintainers should be noted as
344well.
7065301c 345
0346c3a9 346[ List each change as a =item entry ]
7065301c 347
0346c3a9 348=over 4
4c28b29c 349
c9fcb674
KW
350=item *
351
ddeaf645
DD
352The following private API functions had their context parameter removed,
353C<Perl_cast_ulong>, C<Perl_cast_i32>, C<Perl_cast_iv>, C<Perl_cast_uv>,
354C<Perl_cv_const_sv>, C<Perl_mg_find>, C<Perl_mg_findext>, C<Perl_mg_magical>,
355C<Perl_mini_mktime>, C<Perl_my_dirfd>, C<Perl_sv_backoff>, C<Perl_utf8_hop>.
356
357Users of the public API prefix-less calls remain unaffected.
c9fcb674 358
7065301c
RS
359=back
360
361=head1 Selected Bug Fixes
362
0346c3a9
MH
363XXX Important bug fixes in the core language are summarized here. Bug fixes in
364files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
7065301c 365
0346c3a9 366[ List each fix as a =item entry ]
7065301c 367
0346c3a9 368=over 4
0c2c57a8 369
a835cd47
KW
370=item *
371
0346c3a9 372XXX
03ceeedf 373
0346c3a9 374=back
03ceeedf 375
0346c3a9 376=head1 Known Problems
c1284011 377
0346c3a9
MH
378XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
379tests that had to be C<TODO>ed for the release would be noted here. Unfixed
380platform specific bugs also go here.
c1284011 381
0346c3a9 382[ List each fix as a =item entry ]
375f5f06 383
0346c3a9 384=over 4
375f5f06 385
2884baee
MH
386=item *
387
0346c3a9 388XXX
2884baee 389
0346c3a9 390=back
5af51eb4 391
0346c3a9 392=head1 Errata From Previous Releases
5af51eb4 393
0346c3a9 394=over 4
5af51eb4 395
412f55bb
KW
396=item *
397
0346c3a9
MH
398XXX Add anything here that we forgot to add, or were mistaken about, in
399the perldelta of a previous release.
412f55bb 400
7065301c
RS
401=back
402
0346c3a9
MH
403=head1 Obituary
404
405XXX If any significant core contributor has died, we've added a short obituary
406here.
407
7065301c 408=head1 Acknowledgements
24a38d90 409
0346c3a9
MH
410XXX Generate this with:
411
412 perl Porting/acknowledgements.pl v5.21.1..HEAD
f5b73711 413
44691e6f
AB
414=head1 Reporting Bugs
415
e08634c5
SH
416If you find what you think is a bug, you might check the articles recently
417posted to the comp.lang.perl.misc newsgroup and the perl bug database at
238894db 418https://rt.perl.org/ . There may also be information at
7ef8b31d 419http://www.perl.org/ , the Perl Home Page.
44691e6f 420
e08634c5
SH
421If you believe you have an unreported bug, please run the L<perlbug> program
422included with your release. Be sure to trim your bug down to a tiny but
423sufficient test case. Your bug report, along with the output of C<perl -V>,
424will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
425
426If the bug you are reporting has security implications, which make it
e08634c5
SH
427inappropriate to send to a publicly archived mailing list, then please send it
428to perl5-security-report@perl.org. This points to a closed subscription
429unarchived mailing list, which includes all the core committers, who will be
430able to help assess the impact of issues, figure out a resolution, and help
f9001595 431co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
432platforms on which Perl is supported. Please only use this address for
433security issues in the Perl core, not for modules independently distributed on
434CPAN.
44691e6f
AB
435
436=head1 SEE ALSO
437
e08634c5
SH
438The F<Changes> file for an explanation of how to view exhaustive details on
439what changed.
44691e6f
AB
440
441The F<INSTALL> file for how to build Perl.
442
443The F<README> file for general stuff.
444
445The F<Artistic> and F<Copying> files for copyright information.
446
447=cut