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