This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[perl #122455] fix XSLoader loading other namespaces
[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
ba474e87
JH
47=head2 Perl is now compiled with -fstack-protector-strong if available
48
49Perl has been compiled with the anti-stack-smashing option
50C<-fstack-protector> since 5.10.1. Now Perl uses the newer variant
51called C<-fstack-protector-strong>, if available. (This was added
52already in 5.21.4.)
8435afd1 53
8c8d6154 54[ List each security issue as a =head2 entry ]
8435afd1 55
8c8d6154 56=head1 Incompatible Changes
5cfa0642 57
8c8d6154 58XXX For a release on a stable branch, this section aspires to be:
8435afd1 59
8c8d6154
SH
60 There are no changes intentionally incompatible with 5.XXX.XXX
61 If any exist, they are bugs, and we request that you submit a
62 report. See L</Reporting Bugs> below.
5b319db8 63
8c8d6154 64[ List each incompatible change as a =head2 entry ]
5cfa0642 65
8c8d6154 66=head1 Deprecations
d0ab07ee 67
8c8d6154 68XXX Any deprecated features, syntax, modules etc. should be listed here.
d0ab07ee 69
8c8d6154 70=head2 Module removals
5cfa0642 71
8c8d6154 72XXX Remove this section if inapplicable.
d0ab07ee 73
8c8d6154
SH
74The following modules will be removed from the core distribution in a
75future release, and will at that time need to be installed from CPAN.
76Distributions on CPAN which require these modules will need to list them as
77prerequisites.
8435afd1 78
8c8d6154
SH
79The core versions of these modules will now issue C<"deprecated">-category
80warnings to alert you to this fact. To silence these deprecation warnings,
81install the modules in question from CPAN.
46274848 82
8c8d6154
SH
83Note that these are (with rare exceptions) fine modules that you are encouraged
84to continue to use. Their disinclusion from core primarily hinges on their
85necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
86not usually on concerns over their design.
46274848 87
8c8d6154 88=over
d0ab07ee 89
8c8d6154 90=item XXX
5cfa0642 91
8c8d6154
SH
92XXX Note that deprecated modules should be listed here even if they are listed
93as an updated module in the L</Modules and Pragmata> section.
5cfa0642 94
8c8d6154 95=back
8435afd1 96
cc4d09e1
KW
97=head2 Use of multiple /x regexp modifiers
98
99It is now deprecated to say something like any of the following:
100
101 qr/foo/xx;
102 /(?xax:foo)/;
103 use re qw(/amxx);
104
105That is, now C<x> should only occur once in any string of contiguous
106regular expression pattern modifiers. We do not believe there are any
107occurrences of this in all of CPAN. This is in preparation for a future
108Perl release having C</xx> mean to allow white-space for readability in
109bracketed character classes (those enclosed in square brackets:
110C<[...]>).
8435afd1 111
8c8d6154 112=head1 Performance Enhancements
5cfa0642 113
8c8d6154
SH
114XXX Changes which enhance performance without changing behaviour go here.
115There may well be none in a stable release.
8435afd1 116
8c8d6154 117[ List each enhancement as a =item entry ]
8435afd1 118
8c8d6154 119=over 4
5cfa0642 120
8435afd1
SH
121=item *
122
1dc08634
FC
123C<length> is up to 20% faster for non-magical/non-tied scalars containing a
124string if it is a non-utf8 string or if C<use bytes;> is in scope.
5cfa0642 125
5b306eef
DD
126=item *
127
128Non-magical/non-tied scalars that contain only a floating point value and are
129on most Perl builds with 64 bit integers now use 8-32 less bytes of memory
130depending on OS.
131
8c8d6154 132=back
d0ab07ee 133
8c8d6154 134=head1 Modules and Pragmata
d0ab07ee 135
8c8d6154
SH
136XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
137go here. If Module::CoreList is updated, generate an initial draft of the
138following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
139for important changes should then be added by hand. In an ideal world,
140dual-life modules would have a F<Changes> file that could be cribbed.
5cfa0642 141
8c8d6154 142[ Within each section, list entries as a =item entry ]
8435afd1 143
8c8d6154 144=head2 New Modules and Pragmata
8435afd1 145
8c8d6154 146=over 4
5cfa0642 147
8435afd1
SH
148=item *
149
8c8d6154 150XXX
5cfa0642 151
39c4a6cf 152=back
9c97a342 153
8c8d6154 154=head2 Updated Modules and Pragmata
d99849ae 155
39c4a6cf 156=over 4
d99849ae 157
ff433f2d
PM
158=item *
159
84d03adf
SH
160L<Module::CoreList> has been upgraded from version 5.20140920 to 5.20141020.
161
162Updated to cover the latest releases of Perl.
ff433f2d 163
13900f93 164=back
aac7f82f 165
8c8d6154 166=head2 Removed Modules and Pragmata
aac7f82f 167
5cfa0642 168=over 4
6d9b7c7c 169
5cfa0642 170=item *
2a395b86 171
8c8d6154 172XXX
2a395b86 173
5cfa0642 174=back
2a395b86 175
8c8d6154 176=head1 Documentation
2a395b86 177
8c8d6154
SH
178XXX Changes to files in F<pod/> go here. Consider grouping entries by
179file and be sure to link to the appropriate page, e.g. L<perlfunc>.
5cfa0642 180
8c8d6154 181=head2 New Documentation
39c4a6cf 182
8c8d6154 183XXX Changes which create B<new> files in F<pod/> go here.
2a395b86 184
8c8d6154 185=head3 L<XXX>
2a395b86 186
8c8d6154 187XXX Description of the purpose of the new file here
2a395b86 188
8c8d6154 189=head2 Changes to Existing Documentation
8435afd1 190
8c8d6154
SH
191XXX Changes which significantly change existing files in F<pod/> go here.
192However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
193section.
8435afd1 194
8c8d6154 195=head3 L<XXX>
8435afd1
SH
196
197=over 4
2a395b86 198
12d22d1f
JK
199=item *
200
8c8d6154 201XXX Description of the change here
12d22d1f 202
2a395b86
PM
203=back
204
39c4a6cf 205=head1 Diagnostics
2a395b86 206
39c4a6cf
PM
207The following additions or changes have been made to diagnostic output,
208including warnings and fatal error messages. For the complete list of
209diagnostic messages, see L<perldiag>.
2a395b86 210
8c8d6154
SH
211XXX New or changed warnings emitted by the core's C<C> code go here. Also
212include any changes in L<perldiag> that reconcile it to the C<C> code.
2a395b86 213
8c8d6154 214=head2 New Diagnostics
2a395b86 215
8c8d6154
SH
216XXX Newly added diagnostic messages go under here, separated into New Errors
217and New Warnings
2a395b86 218
8c8d6154 219=head3 New Errors
5cfa0642 220
8c8d6154 221=over 4
2a395b86
PM
222
223=item *
224
8c8d6154 225XXX L<message|perldiag/"message">
2a395b86
PM
226
227=back
6d9b7c7c 228
8c8d6154 229=head3 New Warnings
39c4a6cf 230
13900f93 231=over 4
7f55cec0
SH
232
233=item *
234
8c8d6154 235XXX L<message|perldiag/"message">
623141a1 236
8c8d6154 237=back
aac7f82f 238
8c8d6154 239=head2 Changes to Existing Diagnostics
363d3025 240
8c8d6154 241XXX Changes (i.e. rewording) of diagnostic messages go here
334464b3 242
8c8d6154 243=over 4
334464b3
FC
244
245=item *
246
8c8d6154 247XXX Describe change here
ef5a9509 248
363d3025
FC
249=back
250
8c8d6154 251=head1 Utility Changes
4594cf53 252
8c8d6154
SH
253XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
254Most of these are built within the directory F<utils>.
96dcbc37 255
8c8d6154
SH
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. ]
96dcbc37 259
8c8d6154 260=head2 L<XXX>
13900f93 261
8c8d6154 262=over 4
58f25ac1
MH
263
264=item *
265
8c8d6154 266XXX
a5873648 267
39c4a6cf 268=back
a5873648 269
55ba8847
JH
270=head1 Configuration and Compilation
271
8c8d6154
SH
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.
55ba8847 276
8c8d6154 277[ List changes as a =item entry ].
a5873648 278
39c4a6cf 279=over 4
a5873648
PM
280
281=item *
282
8c8d6154 283XXX
7d0ccdba 284
7065301c
RS
285=back
286
8c8d6154 287=head1 Testing
d72cd2eb 288
8c8d6154
SH
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.
c1284011 294
8c8d6154 295[ List each test improvement as a =item entry ]
375f5f06 296
0346c3a9 297=over 4
375f5f06 298
2884baee
MH
299=item *
300
8c8d6154 301XXX
6f1a844b 302
8c8d6154 303=back
549ea8d4 304
8c8d6154 305=head1 Platform Support
549ea8d4 306
8c8d6154 307XXX Any changes to platform support should be listed in the sections below.
be0006e0 308
8c8d6154
SH
309[ Within the sections, list each platform as a =item entry with specific
310changes as paragraphs below it. ]
be0006e0 311
8c8d6154 312=head2 New Platforms
1699f5c2 313
8c8d6154
SH
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.
1699f5c2 318
8c8d6154 319=over 4
7e8b2071 320
8c8d6154 321=item XXX-some-platform
7e8b2071 322
8c8d6154 323XXX
f9acf899 324
8c8d6154 325=back
f9acf899 326
8c8d6154 327=head2 Discontinued Platforms
fd26b6f0 328
8c8d6154 329XXX List any platforms that this version of perl no longer compiles on.
fd26b6f0 330
8c8d6154 331=over 4
499333dc 332
8c8d6154 333=item XXX-some-platform
499333dc 334
8c8d6154 335XXX
8f0cd35a 336
8c8d6154 337=back
8f0cd35a 338
8c8d6154 339=head2 Platform-Specific Notes
aa292ef2 340
8c8d6154
SH
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.
aa292ef2 345
8c8d6154 346=over 4
739e9bee 347
8c8d6154 348=item XXX-some-platform
739e9bee 349
8c8d6154 350XXX
b23b2fdb 351
8c8d6154 352=back
b23b2fdb 353
8c8d6154 354=head1 Internal Changes
7d15b1a8 355
8c8d6154
SH
356XXX Changes which affect the interface available to C<XS> code go here. Other
357significant internal changes for future core maintainers should be noted as
358well.
7d15b1a8 359
8c8d6154 360[ List each change as a =item entry ]
bbca64cf 361
8c8d6154 362=over 4
bbca64cf 363
0064f8cc
KW
364=item *
365
13203cef
FC
366SVs of type SVt_NV are now bodyless when a build configure and platform allow
367it, specifically C<sizeof(NV) <= sizeof(IV)>. The bodyless trick is the same one
368as for IVs since 5.9.2, but for NVs, unlike IVs, is not guarenteed on all
369platforms and build configurations.
6ff8f256 370
8c8d6154 371=back
6ff8f256 372
8c8d6154 373=head1 Selected Bug Fixes
80cc3290 374
8c8d6154
SH
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>.
80cc3290 377
8c8d6154 378[ List each fix as a =item entry ]
13dd5671 379
8c8d6154 380=over 4
13dd5671 381
bdab7676
FC
382=item *
383
8c8d6154 384XXX
bdab7676 385
8c8d6154 386=back
3a085d00 387
8c8d6154 388=head1 Known Problems
caa66803 389
8c8d6154
SH
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.
caa66803 393
8c8d6154 394[ List each fix as a =item entry ]
91766151 395
8c8d6154 396=over 4
91766151 397
dd593f1d
FC
398=item *
399
8c8d6154 400XXX
fb3b7425 401
8c8d6154 402=back
fb3b7425 403
8c8d6154 404=head1 Errata From Previous Releases
b245455d 405
8c8d6154 406=over 4
b245455d 407
26dd5fd6
PM
408=item *
409
8c8d6154
SH
410XXX Add anything here that we forgot to add, or were mistaken about, in
411the perldelta of a previous release.
ff433f2d 412
39c4a6cf
PM
413=back
414
8c8d6154 415=head1 Obituary
c0c55a9b 416
8c8d6154
SH
417XXX If any significant core contributor has died, we've added a short obituary
418here.
c0c55a9b 419
8c8d6154 420=head1 Acknowledgements
c0c55a9b 421
8c8d6154 422XXX Generate this with:
e831f11a 423
8c8d6154 424 perl Porting/acknowledgements.pl v5.21.4..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