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