This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta - Update modules
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
e5998677
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.11
c68523cb 9
238894db 10=head1 DESCRIPTION
c68523cb 11
e5998677 12This document describes differences between the 5.21.10 release and the 5.21.11
238894db 13release.
c68523cb 14
e5998677
SH
15If you are upgrading from an earlier release such as 5.21.9, first read
16L<perl52110delta>, which describes differences between 5.21.9 and 5.21.10.
2ec11c70 17
e5998677 18=head1 Notice
ef8784b7 19
e5998677 20XXX Any important notices here
6798c95d 21
e5998677 22=head1 Core Enhancements
6798c95d 23
e5998677
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.
cd7bac54 27
e5998677 28[ List each enhancement as a =head2 entry ]
cd7bac54 29
e5998677 30=head1 Security
0939a951 31
e5998677
SH
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.
cd7bac54 35
e5998677 36[ List each security issue as a =head2 entry ]
cd7bac54 37
e5998677 38=head1 Incompatible Changes
cd7bac54 39
e5998677 40XXX For a release on a stable branch, this section aspires to be:
83a5d6b6 41
e5998677
SH
42 There are no changes intentionally incompatible with 5.XXX.XXX
43 If any exist, they are bugs, and we request that you submit a
44 report. See L</Reporting Bugs> below.
83a5d6b6 45
e5998677 46[ List each incompatible change as a =head2 entry ]
b9c683b3 47
e5998677 48=head1 Deprecations
b9c683b3 49
e5998677 50XXX Any deprecated features, syntax, modules etc. should be listed here.
b9c683b3 51
2e4abf26
DG
52=head2 Making all warnings fatal is discouraged
53
54The documentation for L<fatal warnings|warnings/Fatal Warnings> notes
55that C<< use warnings FATAL => 'all' >> is discouraged
56and provides stronger language about the risks of fatal warnings
57in general.
58
e5998677 59=head2 Module removals
b05565aa 60
e5998677 61XXX Remove this section if inapplicable.
b05565aa 62
e5998677
SH
63The following modules will be removed from the core distribution in a
64future release, and will at that time need to be installed from CPAN.
65Distributions on CPAN which require these modules will need to list them as
66prerequisites.
79116533 67
e5998677
SH
68The core versions of these modules will now issue C<"deprecated">-category
69warnings to alert you to this fact. To silence these deprecation warnings,
70install the modules in question from CPAN.
79116533 71
e5998677
SH
72Note that these are (with rare exceptions) fine modules that you are encouraged
73to continue to use. Their disinclusion from core primarily hinges on their
74necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
75not usually on concerns over their design.
79116533 76
e5998677 77=over
79116533 78
e5998677 79=item XXX
79116533 80
e5998677
SH
81XXX Note that deprecated modules should be listed here even if they are listed
82as an updated module in the L</Modules and Pragmata> section.
79116533 83
e5998677 84=back
79116533 85
e5998677 86[ List each other deprecation as a =head2 entry ]
79116533 87
e5998677 88=head1 Performance Enhancements
79116533 89
e5998677
SH
90XXX Changes which enhance performance without changing behaviour go here.
91There may well be none in a stable release.
79116533 92
e5998677 93[ List each enhancement as a =item entry ]
79116533 94
e5998677 95=over 4
79116533
SH
96
97=item *
98
e5998677 99XXX
79116533
SH
100
101=back
0939a951 102
e5998677 103=head1 Modules and Pragmata
fea59588 104
e5998677
SH
105XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
106go here. If Module::CoreList is updated, generate an initial draft of the
107following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
108for important changes should then be added by hand. In an ideal world,
109dual-life modules would have a F<Changes> file that could be cribbed.
fea59588 110
e5998677 111[ Within each section, list entries as a =item entry ]
83a5d6b6 112
e5998677 113=head2 New Modules and Pragmata
83a5d6b6 114
e5998677 115=over 4
338906ce
SH
116
117=item *
118
e5998677 119XXX
b05565aa 120
e5998677 121=back
83a5d6b6 122
e5998677 123=head2 Updated Modules and Pragmata
83a5d6b6 124
e5998677 125=over 4
e455391f
SH
126
127=item *
128
79a77127 129L<attributes> has been upgraded from version 0.26 to 0.27.
53902397 130
79a77127
SH
131=item *
132
c14a43b7
SH
133L<B> has been upgraded from version 1.57 to 1.58.
134
135=item *
136
137L<B::Deparse> has been upgraded from version 1.34 to 1.35.
138
139=item *
140
141L<Config::Perl::V> has been upgraded from version 0.23 to 0.24.
142
143=item *
144
79a77127 145L<Cwd> has been upgraded from version 3.55 to 3.56.
83a5d6b6 146
abec5bed
DIM
147=item *
148
149L<ExtUtils::Miniperl> has been upgraded from version 1.04 to 1.05.
150
151=item *
152
c14a43b7
SH
153L<ExtUtils::ParseXS> has been upgraded from version 3.27 to 3.28.
154
155=item *
156
157L<ExtUtils::Typemaps> has been upgraded from version 3.25 to 3.28.
158
159=item *
160
161L<File::Spec> has been upgraded from version 3.55 to 3.56.
162
163=item *
164
165L<if> has been upgraded from version 0.0603 to 0.0604.
166
167=item *
168
60dcce55
SH
169L<IO::Socket::IP> has been upgraded from version 0.36 to 0.37.
170
171=item *
172
79a77127
SH
173L<Module::CoreList> has been upgraded from version 5.20150320 to 5.20150420.
174
175Updated to cover the latest releases of Perl.
abec5bed
DIM
176
177=item *
178
9749148e
TC
179L<perl5db.pl> has been upgraded from 1.48 to 1.49.
180
181The debugger would cause an assertion failure. [perl #124127]
182
183=item *
184
abec5bed
DIM
185L<PerlIO::mmap> has been upgraded from version 0.013 to 0.014.
186
187=item *
188
79a77127 189L<utf8> has been upgraded from version 1.15 to 1.16.
abec5bed 190
2e4abf26
DG
191=item *
192
193L<warnings> has been upgraded from version 1.31 to 1.32.
194
e5998677 195=back
83a5d6b6 196
e5998677 197=head2 Removed Modules and Pragmata
83a5d6b6 198
e5998677 199=over 4
83a5d6b6
SH
200
201=item *
202
e5998677 203XXX
83a5d6b6 204
e5998677 205=back
83a5d6b6 206
e5998677 207=head1 Documentation
83a5d6b6 208
e5998677
SH
209XXX Changes to files in F<pod/> go here. Consider grouping entries by
210file and be sure to link to the appropriate page, e.g. L<perlfunc>.
83a5d6b6 211
e5998677 212=head2 New Documentation
b367c45d 213
e5998677 214XXX Changes which create B<new> files in F<pod/> go here.
b367c45d 215
e5998677 216=head3 L<XXX>
b367c45d 217
e5998677 218XXX Description of the purpose of the new file here
338906ce 219
e5998677 220=head2 Changes to Existing Documentation
338906ce 221
e5998677
SH
222XXX Changes which significantly change existing files in F<pod/> go here.
223However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
224section.
83a5d6b6 225
e5998677 226=head3 L<XXX>
83a5d6b6 227
e5998677 228=over 4
83a5d6b6
SH
229
230=item *
231
e5998677 232XXX Description of the change here
83a5d6b6 233
e5998677 234=back
338906ce 235
e5998677 236=head1 Diagnostics
338906ce 237
e5998677
SH
238The following additions or changes have been made to diagnostic output,
239including warnings and fatal error messages. For the complete list of
240diagnostic messages, see L<perldiag>.
338906ce 241
e5998677
SH
242XXX New or changed warnings emitted by the core's C<C> code go here. Also
243include any changes in L<perldiag> that reconcile it to the C<C> code.
338906ce 244
e5998677 245=head2 New Diagnostics
9409f752 246
e5998677
SH
247XXX Newly added diagnostic messages go under here, separated into New Errors
248and New Warnings
9409f752 249
e5998677 250=head3 New Errors
03a97c81 251
e5998677 252=over 4
03a97c81
SH
253
254=item *
255
e5998677 256XXX L<message|perldiag/"message">
a790e348 257
e5998677 258=back
83a5d6b6 259
e5998677 260=head3 New Warnings
83a5d6b6 261
e5998677 262=over 4
126be117
JH
263
264=item *
265
e5998677 266XXX L<message|perldiag/"message">
83a5d6b6 267
a9c3e753 268=back
0939a951 269
e5998677 270=head2 Changes to Existing Diagnostics
d2fff9f6 271
e5998677 272XXX Changes (i.e. rewording) of diagnostic messages go here
e329daf3 273
cd7bac54 274=over 4
e329daf3 275
cd7bac54 276=item *
e329daf3 277
e5998677 278XXX Describe change here
83a5d6b6
SH
279
280=back
281
e5998677 282=head1 Utility Changes
83a5d6b6 283
e5998677
SH
284XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
285Most of these are built within the directory F<utils>.
83a5d6b6 286
e5998677
SH
287[ List utility changes as a =head2 entry for each utility and =item
288entries for each change
289Use L<XXX> with program names to get proper documentation linking. ]
83a5d6b6 290
e5998677 291=head2 L<XXX>
83a5d6b6
SH
292
293=over 4
294
295=item *
296
e5998677 297XXX
ba31029d 298
cd7bac54
S
299=back
300
e5998677 301=head1 Configuration and Compilation
cd7bac54 302
e5998677
SH
303XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
304go here. Any other changes to the Perl build process should be listed here.
305However, any platform-specific changes should be listed in the
306L</Platform Support> section, instead.
cd7bac54 307
e5998677 308[ List changes as a =item entry ].
cd7bac54
S
309
310=over 4
311
312=item *
313
e5998677 314XXX
cd7bac54
S
315
316=back
541e1e0d 317
a9c3e753 318=head1 Testing
cd7bac54 319
e5998677
SH
320XXX Any significant changes to the testing of a freshly built perl should be
321listed here. Changes which create B<new> files in F<t/> go here as do any
322large changes to the testing harness (e.g. when parallel testing was added).
323Changes to existing files in F<t/> aren't worth summarizing, although the bugs
324that they represent may be covered elsewhere.
325
326[ List each test improvement as a =item entry ]
327
b5d4d3b9 328=over 4
83b69bfd
DD
329
330=item *
331
e5998677 332XXX
13adb056 333
b5d4d3b9 334=back
391823f2 335
a9c3e753 336=head1 Platform Support
6c8457e9 337
e5998677 338XXX Any changes to platform support should be listed in the sections below.
fdcaecb7 339
e5998677
SH
340[ Within the sections, list each platform as a =item entry with specific
341changes as paragraphs below it. ]
ce1e892e 342
e5998677 343=head2 New Platforms
2af7c6b6 344
e5998677
SH
345XXX List any platforms that this version of perl compiles on, that previous
346versions did not. These will either be enabled by new files in the F<hints/>
347directories, or new subdirectories and F<README> files at the top level of the
348source tree.
8c847e66 349
2ff1ebfe 350=over 4
d345f487 351
e5998677 352=item XXX-some-platform
d345f487 353
e5998677 354XXX
cd7bac54 355
4dc623f0 356=back
353075a0 357
e5998677 358=head2 Discontinued Platforms
9f122eef 359
e5998677 360XXX List any platforms that this version of perl no longer compiles on.
2ec11c70 361
e5998677 362=over 4
2ec11c70 363
e5998677 364=item XXX-some-platform
2683609f 365
e5998677 366XXX
338906ce 367
4dc623f0 368=back
c7f058f0 369
e5998677 370=head2 Platform-Specific Notes
2bf83140 371
e5998677
SH
372XXX List any changes for specific platforms. This could include configuration
373and compilation changes or changes in portability/compatibility. However,
374changes within modules for platforms should generally be listed in the
375L</Modules and Pragmata> section.
041a5927 376
e5998677 377=over 4
041a5927 378
86e0176a 379=item Win32
69e954a5 380
86e0176a
TC
381F<miniperl.exe> is now built with C<-fno-strict-aliasing>, allowing
38264-bit builds to complete on GCC 4.8. [perl #123976]
383
384C<test-prep> again depends on C<test-prep-gcc> for GCC builds. [perl
385#124221]
69e954a5 386
e5998677 387=back
20b5e916 388
e5998677 389=head1 Internal Changes
d76c14eb 390
532ecd00
DM
391=over 4
392
393=item *
d76c14eb 394
532ecd00
DM
3955.21.2 introduced a new build option, C<-DPERL_OP_PARENT>, which causes
396the last C<op_sibling> pointer to refer back to the parent rather than
397being C<NULL>, and where instead a new flag indicates the end of the
398chain. In this release, the new implementation has been revised; in
399particular:
d547bad0 400
e5998677 401=over 4
d547bad0 402
8a95d307
FC
403=item *
404
532ecd00
DM
405On C<PERL_OP_PARENT> builds, the C<op_sibling> field has been renamed
406C<op_sibparent> to reflect its new dual purpose. Since the intention is that
407this field should primarily be accessed via macros, this change should be
408transparent for code written to work under C<PERL_OP_PARENT>.
409
410=item *
411
412The newly-introduced C<op_lastsib> flag bit has been renamed C<op_moresib>
413and its logic inverted; i.e. it is initialised to zero in a new op, and is
414changed to 1 when an op gains a sibling.
415
416=item *
417
418The function C<Perl_op_parent> is now only available on C<PERL_OP_PARENT>
419builds. Using it on a plain build will be a compile-timer error.
420
421=item *
422
423Three new macros, C<OpMORESIB_set>, C<OpLASTSIB_set>, C<OpMAYBESIB_set>
424have been added, which are intended to be be a low-level portable way to
425set C<op_sibling> / C<op_sibparent> while also updating C<op_moresib>.
426The first sets the sibling pointer to a new sibling, the second makes the
427op the last sibling, and the third conditionally does the first or second
428action. The C<op_sibling_splice()> function is retained as a higher-level
429interface that can also maintain consistency in the parent at the same time
430(e.g. by updating C<op_first> and C<op_last> where appropriate).
431
432=item *
433
434The macro C<OpSIBLING_set>, added in 5.21.2, has been removed. It didn't
435manipulate C<op_moresib> and has been superseded by C<OpMORESIB_set> et
436al.
437
438=item *
439
440The C<op_sibling_splice> function now accepts a null C<parent> argument
441where the splicing doesn't affect the first or last ops in the sibling
442chain, and thus where the parent doesn't need to be updated accordingly.
443
444=back
445
8a95d307 446
e5998677 447=back
338906ce 448
e5998677 449=head1 Selected Bug Fixes
338906ce 450
e5998677
SH
451XXX Important bug fixes in the core language are summarized here. Bug fixes in
452files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
338906ce 453
e5998677 454[ List each fix as a =item entry ]
338906ce 455
e5998677 456=over 4
338906ce
SH
457
458=item *
459
e42530d2
TC
460C<pack("D", $x)> and C<pack("F", $x)> now zero the padding on x86 long
461double builds. GCC 4.8 and later, under some build options, would
462either overwrite the zero-initialized padding, or bypass the
463initialized buffer entirely. This caused F<op/pack.t> to fail. [perl
464#123971]
2f304be9 465
9749148e
TC
466=item *
467
468Extending an array cloned from a parent thread could result in
469"Modification of a read-only value attempted" errors when attempting
470to modify the new elements. [perl #124127]
471
a9c3e753 472=back
ea13b07e 473
a9c3e753 474=head1 Known Problems
b65adbec 475
e5998677
SH
476XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
477tests that had to be C<TODO>ed for the release would be noted here. Unfixed
478platform specific bugs also go here.
b94c7836 479
e5998677 480[ List each fix as a =item entry ]
ce1e892e
KW
481
482=over 4
483
484=item *
485
e5998677 486XXX
ce1e892e 487
e5998677 488=back
ce1e892e 489
e5998677 490=head1 Errata From Previous Releases
ce1e892e 491
e5998677 492=over 4
ce1e892e 493
e5998677 494=item *
ce1e892e 495
e5998677
SH
496XXX Add anything here that we forgot to add, or were mistaken about, in
497the perldelta of a previous release.
ce1e892e 498
a9c3e753 499=back
e3e8f263 500
e5998677 501=head1 Obituary
0d42058e 502
e5998677
SH
503XXX If any significant core contributor has died, we've added a short obituary
504here.
0d42058e 505
e5998677 506=head1 Acknowledgements
0d42058e 507
e5998677 508XXX Generate this with:
0d42058e 509
e5998677 510 perl Porting/acknowledgements.pl v5.21.10..HEAD
f5b73711 511
44691e6f
AB
512=head1 Reporting Bugs
513
e08634c5
SH
514If you find what you think is a bug, you might check the articles recently
515posted to the comp.lang.perl.misc newsgroup and the perl bug database at
e5998677
SH
516https://rt.perl.org/ . There may also be information at
517http://www.perl.org/ , the Perl Home Page.
44691e6f 518
e08634c5
SH
519If you believe you have an unreported bug, please run the L<perlbug> program
520included with your release. Be sure to trim your bug down to a tiny but
521sufficient test case. Your bug report, along with the output of C<perl -V>,
522will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
523
524If the bug you are reporting has security implications, which make it
e08634c5
SH
525inappropriate to send to a publicly archived mailing list, then please send it
526to perl5-security-report@perl.org. This points to a closed subscription
527unarchived mailing list, which includes all the core committers, who will be
528able to help assess the impact of issues, figure out a resolution, and help
f9001595 529co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
530platforms on which Perl is supported. Please only use this address for
531security issues in the Perl core, not for modules independently distributed on
532CPAN.
44691e6f
AB
533
534=head1 SEE ALSO
535
e08634c5
SH
536The F<Changes> file for an explanation of how to view exhaustive details on
537what changed.
44691e6f
AB
538
539The F<INSTALL> file for how to build Perl.
540
541The F<README> file for general stuff.
542
543The F<Artistic> and F<Copying> files for copyright information.
544
545=cut