This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
for storage of NVs, use "IV in sv_u in head no-body trick" where possible
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
8c8d6154
SH
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.5
c68523cb 9
238894db 10=head1 DESCRIPTION
c68523cb 11
8c8d6154 12This document describes differences between the 5.21.4 release and the 5.21.5
238894db 13release.
c68523cb 14
8c8d6154
SH
15If you are upgrading from an earlier release such as 5.21.3, first read
16L<perl5214delta>, which describes differences between 5.21.3 and 5.21.4.
8435afd1 17
8c8d6154 18=head1 Notice
8435afd1 19
8c8d6154 20XXX Any important notices here
5cfa0642 21
8c8d6154 22=head1 Core Enhancements
5cfa0642 23
8c8d6154
SH
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.
8435afd1 27
8c8d6154 28[ List each enhancement as a =head2 entry ]
8435afd1 29
b15c1b56
AF
30=head2 Perl now supports POSIX 2008 locale currency additions.
31
32On platforms that are able to handle POSIX.1-2008, the
33hash returned by
34L<C<POSIX::localeconv()>|perllocale/The localeconv function>
35includes the international currency fields added by that version of the
36POSIX standard. These are
37C<int_n_cs_precedes>,
38C<int_n_sep_by_space>,
39C<int_n_sign_posn>,
40C<int_p_cs_precedes>,
41C<int_p_sep_by_space>,
42and
43C<int_p_sign_posn>.
44
8c8d6154 45=head1 Security
5cfa0642 46
8c8d6154
SH
47XXX Any security-related notices go here. In particular, any security
48vulnerabilities closed should be noted here rather than in the
49L</Selected Bug Fixes> section.
8435afd1 50
8c8d6154 51[ List each security issue as a =head2 entry ]
8435afd1 52
8c8d6154 53=head1 Incompatible Changes
5cfa0642 54
8c8d6154 55XXX For a release on a stable branch, this section aspires to be:
8435afd1 56
8c8d6154
SH
57 There are no changes intentionally incompatible with 5.XXX.XXX
58 If any exist, they are bugs, and we request that you submit a
59 report. See L</Reporting Bugs> below.
5b319db8 60
8c8d6154 61[ List each incompatible change as a =head2 entry ]
5cfa0642 62
8c8d6154 63=head1 Deprecations
d0ab07ee 64
8c8d6154 65XXX Any deprecated features, syntax, modules etc. should be listed here.
d0ab07ee 66
8c8d6154 67=head2 Module removals
5cfa0642 68
8c8d6154 69XXX Remove this section if inapplicable.
d0ab07ee 70
8c8d6154
SH
71The following modules will be removed from the core distribution in a
72future release, and will at that time need to be installed from CPAN.
73Distributions on CPAN which require these modules will need to list them as
74prerequisites.
8435afd1 75
8c8d6154
SH
76The core versions of these modules will now issue C<"deprecated">-category
77warnings to alert you to this fact. To silence these deprecation warnings,
78install the modules in question from CPAN.
46274848 79
8c8d6154
SH
80Note that these are (with rare exceptions) fine modules that you are encouraged
81to continue to use. Their disinclusion from core primarily hinges on their
82necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
83not usually on concerns over their design.
46274848 84
8c8d6154 85=over
d0ab07ee 86
8c8d6154 87=item XXX
5cfa0642 88
8c8d6154
SH
89XXX Note that deprecated modules should be listed here even if they are listed
90as an updated module in the L</Modules and Pragmata> section.
5cfa0642 91
8c8d6154 92=back
8435afd1 93
8c8d6154 94[ List each other deprecation as a =head2 entry ]
8435afd1 95
8c8d6154 96=head1 Performance Enhancements
5cfa0642 97
8c8d6154
SH
98XXX Changes which enhance performance without changing behaviour go here.
99There may well be none in a stable release.
8435afd1 100
8c8d6154 101[ List each enhancement as a =item entry ]
8435afd1 102
8c8d6154 103=over 4
5cfa0642 104
8435afd1
SH
105=item *
106
1dc08634
FC
107C<length> is up to 20% faster for non-magical/non-tied scalars containing a
108string if it is a non-utf8 string or if C<use bytes;> is in scope.
5cfa0642 109
5b306eef
DD
110=item *
111
112Non-magical/non-tied scalars that contain only a floating point value and are
113on most Perl builds with 64 bit integers now use 8-32 less bytes of memory
114depending on OS.
115
8c8d6154 116=back
d0ab07ee 117
8c8d6154 118=head1 Modules and Pragmata
d0ab07ee 119
8c8d6154
SH
120XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
121go here. If Module::CoreList is updated, generate an initial draft of the
122following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
123for important changes should then be added by hand. In an ideal world,
124dual-life modules would have a F<Changes> file that could be cribbed.
5cfa0642 125
8c8d6154 126[ Within each section, list entries as a =item entry ]
8435afd1 127
8c8d6154 128=head2 New Modules and Pragmata
8435afd1 129
8c8d6154 130=over 4
5cfa0642 131
8435afd1
SH
132=item *
133
8c8d6154 134XXX
5cfa0642 135
39c4a6cf 136=back
9c97a342 137
8c8d6154 138=head2 Updated Modules and Pragmata
d99849ae 139
39c4a6cf 140=over 4
d99849ae 141
ff433f2d
PM
142=item *
143
84d03adf
SH
144L<Module::CoreList> has been upgraded from version 5.20140920 to 5.20141020.
145
146Updated to cover the latest releases of Perl.
ff433f2d 147
13900f93 148=back
aac7f82f 149
8c8d6154 150=head2 Removed Modules and Pragmata
aac7f82f 151
5cfa0642 152=over 4
6d9b7c7c 153
5cfa0642 154=item *
2a395b86 155
8c8d6154 156XXX
2a395b86 157
5cfa0642 158=back
2a395b86 159
8c8d6154 160=head1 Documentation
2a395b86 161
8c8d6154
SH
162XXX Changes to files in F<pod/> go here. Consider grouping entries by
163file and be sure to link to the appropriate page, e.g. L<perlfunc>.
5cfa0642 164
8c8d6154 165=head2 New Documentation
39c4a6cf 166
8c8d6154 167XXX Changes which create B<new> files in F<pod/> go here.
2a395b86 168
8c8d6154 169=head3 L<XXX>
2a395b86 170
8c8d6154 171XXX Description of the purpose of the new file here
2a395b86 172
8c8d6154 173=head2 Changes to Existing Documentation
8435afd1 174
8c8d6154
SH
175XXX Changes which significantly change existing files in F<pod/> go here.
176However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
177section.
8435afd1 178
8c8d6154 179=head3 L<XXX>
8435afd1
SH
180
181=over 4
2a395b86 182
12d22d1f
JK
183=item *
184
8c8d6154 185XXX Description of the change here
12d22d1f 186
2a395b86
PM
187=back
188
39c4a6cf 189=head1 Diagnostics
2a395b86 190
39c4a6cf
PM
191The following additions or changes have been made to diagnostic output,
192including warnings and fatal error messages. For the complete list of
193diagnostic messages, see L<perldiag>.
2a395b86 194
8c8d6154
SH
195XXX New or changed warnings emitted by the core's C<C> code go here. Also
196include any changes in L<perldiag> that reconcile it to the C<C> code.
2a395b86 197
8c8d6154 198=head2 New Diagnostics
2a395b86 199
8c8d6154
SH
200XXX Newly added diagnostic messages go under here, separated into New Errors
201and New Warnings
2a395b86 202
8c8d6154 203=head3 New Errors
5cfa0642 204
8c8d6154 205=over 4
2a395b86
PM
206
207=item *
208
8c8d6154 209XXX L<message|perldiag/"message">
2a395b86
PM
210
211=back
6d9b7c7c 212
8c8d6154 213=head3 New Warnings
39c4a6cf 214
13900f93 215=over 4
7f55cec0
SH
216
217=item *
218
8c8d6154 219XXX L<message|perldiag/"message">
623141a1 220
8c8d6154 221=back
aac7f82f 222
8c8d6154 223=head2 Changes to Existing Diagnostics
363d3025 224
8c8d6154 225XXX Changes (i.e. rewording) of diagnostic messages go here
334464b3 226
8c8d6154 227=over 4
334464b3
FC
228
229=item *
230
8c8d6154 231XXX Describe change here
ef5a9509 232
363d3025
FC
233=back
234
8c8d6154 235=head1 Utility Changes
4594cf53 236
8c8d6154
SH
237XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
238Most of these are built within the directory F<utils>.
96dcbc37 239
8c8d6154
SH
240[ List utility changes as a =head2 entry for each utility and =item
241entries for each change
242Use L<XXX> with program names to get proper documentation linking. ]
96dcbc37 243
8c8d6154 244=head2 L<XXX>
13900f93 245
8c8d6154 246=over 4
58f25ac1
MH
247
248=item *
249
8c8d6154 250XXX
a5873648 251
39c4a6cf 252=back
a5873648 253
55ba8847
JH
254=head1 Configuration and Compilation
255
8c8d6154
SH
256XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
257go here. Any other changes to the Perl build process should be listed here.
258However, any platform-specific changes should be listed in the
259L</Platform Support> section, instead.
55ba8847 260
8c8d6154 261[ List changes as a =item entry ].
a5873648 262
39c4a6cf 263=over 4
a5873648
PM
264
265=item *
266
8c8d6154 267XXX
7d0ccdba 268
7065301c
RS
269=back
270
8c8d6154 271=head1 Testing
d72cd2eb 272
8c8d6154
SH
273XXX Any significant changes to the testing of a freshly built perl should be
274listed here. Changes which create B<new> files in F<t/> go here as do any
275large changes to the testing harness (e.g. when parallel testing was added).
276Changes to existing files in F<t/> aren't worth summarizing, although the bugs
277that they represent may be covered elsewhere.
c1284011 278
8c8d6154 279[ List each test improvement as a =item entry ]
375f5f06 280
0346c3a9 281=over 4
375f5f06 282
2884baee
MH
283=item *
284
8c8d6154 285XXX
6f1a844b 286
8c8d6154 287=back
549ea8d4 288
8c8d6154 289=head1 Platform Support
549ea8d4 290
8c8d6154 291XXX Any changes to platform support should be listed in the sections below.
be0006e0 292
8c8d6154
SH
293[ Within the sections, list each platform as a =item entry with specific
294changes as paragraphs below it. ]
be0006e0 295
8c8d6154 296=head2 New Platforms
1699f5c2 297
8c8d6154
SH
298XXX List any platforms that this version of perl compiles on, that previous
299versions did not. These will either be enabled by new files in the F<hints/>
300directories, or new subdirectories and F<README> files at the top level of the
301source tree.
1699f5c2 302
8c8d6154 303=over 4
7e8b2071 304
8c8d6154 305=item XXX-some-platform
7e8b2071 306
8c8d6154 307XXX
f9acf899 308
8c8d6154 309=back
f9acf899 310
8c8d6154 311=head2 Discontinued Platforms
fd26b6f0 312
8c8d6154 313XXX List any platforms that this version of perl no longer compiles on.
fd26b6f0 314
8c8d6154 315=over 4
499333dc 316
8c8d6154 317=item XXX-some-platform
499333dc 318
8c8d6154 319XXX
8f0cd35a 320
8c8d6154 321=back
8f0cd35a 322
8c8d6154 323=head2 Platform-Specific Notes
aa292ef2 324
8c8d6154
SH
325XXX List any changes for specific platforms. This could include configuration
326and compilation changes or changes in portability/compatibility. However,
327changes within modules for platforms should generally be listed in the
328L</Modules and Pragmata> section.
aa292ef2 329
8c8d6154 330=over 4
739e9bee 331
8c8d6154 332=item XXX-some-platform
739e9bee 333
8c8d6154 334XXX
b23b2fdb 335
8c8d6154 336=back
b23b2fdb 337
8c8d6154 338=head1 Internal Changes
7d15b1a8 339
8c8d6154
SH
340XXX Changes which affect the interface available to C<XS> code go here. Other
341significant internal changes for future core maintainers should be noted as
342well.
7d15b1a8 343
8c8d6154 344[ List each change as a =item entry ]
bbca64cf 345
8c8d6154 346=over 4
bbca64cf 347
0064f8cc
KW
348=item *
349
8c8d6154 350XXX
6ff8f256 351
8c8d6154 352=back
6ff8f256 353
8c8d6154 354=head1 Selected Bug Fixes
80cc3290 355
8c8d6154
SH
356XXX Important bug fixes in the core language are summarized here. Bug fixes in
357files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
80cc3290 358
8c8d6154 359[ List each fix as a =item entry ]
13dd5671 360
8c8d6154 361=over 4
13dd5671 362
bdab7676
FC
363=item *
364
8c8d6154 365XXX
bdab7676 366
8c8d6154 367=back
3a085d00 368
8c8d6154 369=head1 Known Problems
caa66803 370
8c8d6154
SH
371XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
372tests that had to be C<TODO>ed for the release would be noted here. Unfixed
373platform specific bugs also go here.
caa66803 374
8c8d6154 375[ List each fix as a =item entry ]
91766151 376
8c8d6154 377=over 4
91766151 378
dd593f1d
FC
379=item *
380
8c8d6154 381XXX
fb3b7425 382
8c8d6154 383=back
fb3b7425 384
8c8d6154 385=head1 Errata From Previous Releases
b245455d 386
8c8d6154 387=over 4
b245455d 388
26dd5fd6
PM
389=item *
390
8c8d6154
SH
391XXX Add anything here that we forgot to add, or were mistaken about, in
392the perldelta of a previous release.
ff433f2d 393
5b306eef
DD
394=item *
395
396SVs of type SVt_NV are now bodyless when a build configure and platform allow
397it, specifically C<sizeof(NV) <= sizeof(IV)>. The bodyless trick is the same one
398as for IVs since 5.9.2, but for NVs, unlike IVs, is not guarenteed on all
399platforms and build configurations.
400
39c4a6cf
PM
401=back
402
8c8d6154 403=head1 Obituary
c0c55a9b 404
8c8d6154
SH
405XXX If any significant core contributor has died, we've added a short obituary
406here.
c0c55a9b 407
8c8d6154 408=head1 Acknowledgements
c0c55a9b 409
8c8d6154 410XXX Generate this with:
e831f11a 411
8c8d6154 412 perl Porting/acknowledgements.pl v5.21.4..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