This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta - One more module update
[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
47cb8ddb
SH
139C<< <<>> >> is now correctly deparsed.
140
c14a43b7
SH
141=item *
142
143L<Config::Perl::V> has been upgraded from version 0.23 to 0.24.
144
145=item *
146
51c2f40f
SH
147L<CPAN> has been upgraded from version 2.10 to 2.11.
148
149=item *
150
79a77127 151L<Cwd> has been upgraded from version 3.55 to 3.56.
83a5d6b6 152
abec5bed
DIM
153=item *
154
155L<ExtUtils::Miniperl> has been upgraded from version 1.04 to 1.05.
156
157=item *
158
c14a43b7
SH
159L<ExtUtils::ParseXS> has been upgraded from version 3.27 to 3.28.
160
161=item *
162
163L<ExtUtils::Typemaps> has been upgraded from version 3.25 to 3.28.
164
165=item *
166
167L<File::Spec> has been upgraded from version 3.55 to 3.56.
168
169=item *
170
171L<if> has been upgraded from version 0.0603 to 0.0604.
172
be39acb2
SH
173The documentation now notes that this module also works with C<no>.
174
c14a43b7
SH
175=item *
176
60dcce55
SH
177L<IO::Socket::IP> has been upgraded from version 0.36 to 0.37.
178
179=item *
180
79a77127
SH
181L<Module::CoreList> has been upgraded from version 5.20150320 to 5.20150420.
182
be39acb2
SH
183Updated to cover the latest releases of Perl. Also fixes a fencepost error in
184is_core() and copes with versions that do not match x.yyyzzz.
abec5bed
DIM
185
186=item *
187
9749148e
TC
188L<perl5db.pl> has been upgraded from 1.48 to 1.49.
189
190The debugger would cause an assertion failure. [perl #124127]
191
192=item *
193
abec5bed
DIM
194L<PerlIO::mmap> has been upgraded from version 0.013 to 0.014.
195
196=item *
197
79a77127 198L<utf8> has been upgraded from version 1.15 to 1.16.
abec5bed 199
be39acb2
SH
200Minor documentation update only.
201
2e4abf26
DG
202=item *
203
204L<warnings> has been upgraded from version 1.31 to 1.32.
205
e5998677 206=back
83a5d6b6 207
e5998677 208=head2 Removed Modules and Pragmata
83a5d6b6 209
e5998677 210=over 4
83a5d6b6
SH
211
212=item *
213
e5998677 214XXX
83a5d6b6 215
e5998677 216=back
83a5d6b6 217
e5998677 218=head1 Documentation
83a5d6b6 219
e5998677
SH
220XXX Changes to files in F<pod/> go here. Consider grouping entries by
221file and be sure to link to the appropriate page, e.g. L<perlfunc>.
83a5d6b6 222
e5998677 223=head2 New Documentation
b367c45d 224
e5998677 225XXX Changes which create B<new> files in F<pod/> go here.
b367c45d 226
e5998677 227=head3 L<XXX>
b367c45d 228
e5998677 229XXX Description of the purpose of the new file here
338906ce 230
e5998677 231=head2 Changes to Existing Documentation
338906ce 232
e5998677
SH
233XXX Changes which significantly change existing files in F<pod/> go here.
234However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
235section.
83a5d6b6 236
5de148ee
SH
237=head3 L<perlebcdic>
238
239=over 4
240
241=item *
242
243This document has been significantly updated in the light of recent
244improvements to EBCDIC support.
245
246=back
247
47cb8ddb
SH
248=head3 L<perlfunc>
249
250=over 4
251
252=item *
253
254Mention that C<study()> is currently a no-op.
255
256=back
257
258=head3 L<perlguts>
259
260=over 4
261
262=item *
263
264The OOK example has been updated to account for COW changes and a change in the
265storage of the offset.
266
267=back
268
5de148ee
SH
269=head3 L<perlhacktips>
270
271=over 4
272
273=item *
274
275Documentation has been added illustrating the perils of assuming the contents of
276static memory pointed to by the return values of Perl wrappers for C library
277functions doesn't change.
278
279=back
280
be39acb2
SH
281=head3 L<perlport>
282
283=over 4
284
285=item *
286
287Out-of-date VMS-specific information has been fixed/simplified.
288
289=back
290
291=head3 L<perluniintro>
292
293=over 4
294
295=item *
296
297Advice for how to make sure your strings and regular expression patterns are
298interpreted as Unicode has been revised to account for the new 5.22 EBCDIC
299handling.
300
301=back
302
5de148ee 303=head3 L<perlvms>
83a5d6b6 304
e5998677 305=over 4
83a5d6b6
SH
306
307=item *
308
5de148ee 309Out-of-date and/or incorrect material has been removed.
83a5d6b6 310
e5998677 311=back
338906ce 312
e5998677 313=head1 Diagnostics
338906ce 314
e5998677
SH
315The following additions or changes have been made to diagnostic output,
316including warnings and fatal error messages. For the complete list of
317diagnostic messages, see L<perldiag>.
338906ce 318
e5998677
SH
319XXX New or changed warnings emitted by the core's C<C> code go here. Also
320include any changes in L<perldiag> that reconcile it to the C<C> code.
338906ce 321
e5998677 322=head2 New Diagnostics
9409f752 323
e5998677
SH
324XXX Newly added diagnostic messages go under here, separated into New Errors
325and New Warnings
9409f752 326
e5998677 327=head3 New Errors
03a97c81 328
e5998677 329=over 4
03a97c81
SH
330
331=item *
332
e5998677 333XXX L<message|perldiag/"message">
a790e348 334
e5998677 335=back
83a5d6b6 336
e5998677 337=head3 New Warnings
83a5d6b6 338
e5998677 339=over 4
126be117
JH
340
341=item *
342
e5998677 343XXX L<message|perldiag/"message">
83a5d6b6 344
a9c3e753 345=back
0939a951 346
e5998677 347=head2 Changes to Existing Diagnostics
d2fff9f6 348
e5998677 349XXX Changes (i.e. rewording) of diagnostic messages go here
e329daf3 350
cd7bac54 351=over 4
e329daf3 352
cd7bac54 353=item *
e329daf3 354
e5998677 355XXX Describe change here
83a5d6b6
SH
356
357=back
358
e5998677 359=head1 Utility Changes
83a5d6b6 360
e5998677
SH
361XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
362Most of these are built within the directory F<utils>.
83a5d6b6 363
e5998677
SH
364[ List utility changes as a =head2 entry for each utility and =item
365entries for each change
366Use L<XXX> with program names to get proper documentation linking. ]
83a5d6b6 367
e5998677 368=head2 L<XXX>
83a5d6b6
SH
369
370=over 4
371
372=item *
373
e5998677 374XXX
ba31029d 375
cd7bac54
S
376=back
377
e5998677 378=head1 Configuration and Compilation
cd7bac54 379
e5998677
SH
380XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
381go here. Any other changes to the Perl build process should be listed here.
382However, any platform-specific changes should be listed in the
383L</Platform Support> section, instead.
cd7bac54 384
e5998677 385[ List changes as a =item entry ].
cd7bac54
S
386
387=over 4
388
389=item *
390
e5998677 391XXX
cd7bac54
S
392
393=back
541e1e0d 394
a9c3e753 395=head1 Testing
cd7bac54 396
e5998677
SH
397XXX Any significant changes to the testing of a freshly built perl should be
398listed here. Changes which create B<new> files in F<t/> go here as do any
399large changes to the testing harness (e.g. when parallel testing was added).
400Changes to existing files in F<t/> aren't worth summarizing, although the bugs
401that they represent may be covered elsewhere.
402
403[ List each test improvement as a =item entry ]
404
b5d4d3b9 405=over 4
83b69bfd
DD
406
407=item *
408
62ddb720
SH
409F<t/porting/re_context.t> has been added to test that L<utf8> and its
410dependencies only use the subset of the C<$1..$n> capture vars that
411Perl_save_re_context() is hard-coded to localize, because that function has no
412efficient way of determining at runtime what vars to localize.
13adb056 413
b5d4d3b9 414=back
391823f2 415
a9c3e753 416=head1 Platform Support
6c8457e9 417
e5998677 418XXX Any changes to platform support should be listed in the sections below.
fdcaecb7 419
e5998677
SH
420[ Within the sections, list each platform as a =item entry with specific
421changes as paragraphs below it. ]
ce1e892e 422
e5998677 423=head2 New Platforms
2af7c6b6 424
e5998677
SH
425XXX List any platforms that this version of perl compiles on, that previous
426versions did not. These will either be enabled by new files in the F<hints/>
427directories, or new subdirectories and F<README> files at the top level of the
428source tree.
8c847e66 429
2ff1ebfe 430=over 4
d345f487 431
e5998677 432=item XXX-some-platform
d345f487 433
e5998677 434XXX
cd7bac54 435
4dc623f0 436=back
353075a0 437
e5998677 438=head2 Discontinued Platforms
9f122eef 439
e5998677 440XXX List any platforms that this version of perl no longer compiles on.
2ec11c70 441
e5998677 442=over 4
2ec11c70 443
e5998677 444=item XXX-some-platform
2683609f 445
e5998677 446XXX
338906ce 447
4dc623f0 448=back
c7f058f0 449
e5998677 450=head2 Platform-Specific Notes
2bf83140 451
e5998677
SH
452XXX List any changes for specific platforms. This could include configuration
453and compilation changes or changes in portability/compatibility. However,
454changes within modules for platforms should generally be listed in the
455L</Modules and Pragmata> section.
041a5927 456
e5998677 457=over 4
041a5927 458
86e0176a 459=item Win32
69e954a5 460
86e0176a
TC
461F<miniperl.exe> is now built with C<-fno-strict-aliasing>, allowing
46264-bit builds to complete on GCC 4.8. [perl #123976]
463
464C<test-prep> again depends on C<test-prep-gcc> for GCC builds. [perl
465#124221]
69e954a5 466
e5998677 467=back
20b5e916 468
e5998677 469=head1 Internal Changes
d76c14eb 470
532ecd00
DM
471=over 4
472
473=item *
d76c14eb 474
532ecd00
DM
4755.21.2 introduced a new build option, C<-DPERL_OP_PARENT>, which causes
476the last C<op_sibling> pointer to refer back to the parent rather than
477being C<NULL>, and where instead a new flag indicates the end of the
478chain. In this release, the new implementation has been revised; in
479particular:
d547bad0 480
e5998677 481=over 4
d547bad0 482
8a95d307
FC
483=item *
484
532ecd00
DM
485On C<PERL_OP_PARENT> builds, the C<op_sibling> field has been renamed
486C<op_sibparent> to reflect its new dual purpose. Since the intention is that
487this field should primarily be accessed via macros, this change should be
488transparent for code written to work under C<PERL_OP_PARENT>.
489
490=item *
491
492The newly-introduced C<op_lastsib> flag bit has been renamed C<op_moresib>
493and its logic inverted; i.e. it is initialised to zero in a new op, and is
494changed to 1 when an op gains a sibling.
495
496=item *
497
498The function C<Perl_op_parent> is now only available on C<PERL_OP_PARENT>
499builds. Using it on a plain build will be a compile-timer error.
500
501=item *
502
503Three new macros, C<OpMORESIB_set>, C<OpLASTSIB_set>, C<OpMAYBESIB_set>
504have been added, which are intended to be be a low-level portable way to
505set C<op_sibling> / C<op_sibparent> while also updating C<op_moresib>.
506The first sets the sibling pointer to a new sibling, the second makes the
507op the last sibling, and the third conditionally does the first or second
508action. The C<op_sibling_splice()> function is retained as a higher-level
509interface that can also maintain consistency in the parent at the same time
510(e.g. by updating C<op_first> and C<op_last> where appropriate).
511
512=item *
513
514The macro C<OpSIBLING_set>, added in 5.21.2, has been removed. It didn't
515manipulate C<op_moresib> and has been superseded by C<OpMORESIB_set> et
516al.
517
518=item *
519
520The C<op_sibling_splice> function now accepts a null C<parent> argument
521where the splicing doesn't affect the first or last ops in the sibling
522chain, and thus where the parent doesn't need to be updated accordingly.
523
524=back
525
8a95d307 526
e5998677 527=back
338906ce 528
e5998677 529=head1 Selected Bug Fixes
338906ce 530
e5998677
SH
531XXX Important bug fixes in the core language are summarized here. Bug fixes in
532files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
338906ce 533
e5998677 534[ List each fix as a =item entry ]
338906ce 535
e5998677 536=over 4
338906ce
SH
537
538=item *
539
e42530d2
TC
540C<pack("D", $x)> and C<pack("F", $x)> now zero the padding on x86 long
541double builds. GCC 4.8 and later, under some build options, would
542either overwrite the zero-initialized padding, or bypass the
543initialized buffer entirely. This caused F<op/pack.t> to fail. [perl
544#123971]
2f304be9 545
9749148e
TC
546=item *
547
548Extending an array cloned from a parent thread could result in
549"Modification of a read-only value attempted" errors when attempting
550to modify the new elements. [perl #124127]
551
47cb8ddb
SH
552=item *
553
554An assertion failure and subsequent crash with C<< *x=<y> >> has been fixed.
555[perl #123790]
556
557=item *
558
559An optimization for state variable initialization introduced in Perl 5.21.6 has
560been reverted because it was found to exacerbate some other existing buggy
561behaviour. [perl #124160]
562
563=item *
564
565The extension of another optimization to cover more ops in Perl 5.21 has also
566been reverted to its Perl 5.20 state as a temporary fix for regression issues
567that it caused. [perl #123790]
568
be39acb2
SH
569=item *
570
571New bitwise ops added in Perl 5.21.9 accidentally caused C<$^H |= 0x1c020000>
572to enable all features. This has now been fixed.
573
574=item *
575
576A possible crashing/looping bug has been fixed. [perl #124099]
577
578=item *
579
580UTF-8 variable names used in array indexes, unquoted UTF-8 HERE-document
581terminators and UTF-8 function names all now work correctly. [perl #124113]
582
583=item *
584
585Breakage in C<require(VERSION)> (with parentheses), introduced in Perl 5.21.6,
586has been fixed. [perl #124135]
587
588=item *
589
590Wide char warnings, wrongly raised in UTF-8 locales since Perl 5.21.8, are now
591suppressed. [perl #123527]
592
593=item *
594
595A subtle bug introduced in Perl 5.21.4 involving UTF-8 in regular expressions
596and sometimes causing a crash has been fixed. A new test script has been added
597to test this fix; see under L</Testing>. [perl #124109]
598
599=item *
600
601A change introduced in Perl 5.21.10 that broke the autovivification CPAN module
602has been reverted.
603
604=item *
605
606A bug whereby C<< 'FOO'->f() >> lost the read-only status of C<FOO>, introduced
607in Perl 5.21.7, has been fixed. [perl #123619]
608
609=item *
610
611A regression in Perl 5.21 in the matching of C</[A-Z]/ai> has been fixed.
612
a9c3e753 613=back
ea13b07e 614
a9c3e753 615=head1 Known Problems
b65adbec 616
e5998677
SH
617XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
618tests that had to be C<TODO>ed for the release would be noted here. Unfixed
619platform specific bugs also go here.
b94c7836 620
e5998677 621[ List each fix as a =item entry ]
ce1e892e
KW
622
623=over 4
624
625=item *
626
e5998677 627XXX
ce1e892e 628
e5998677 629=back
ce1e892e 630
e5998677 631=head1 Errata From Previous Releases
ce1e892e 632
e5998677 633=over 4
ce1e892e 634
e5998677 635=item *
ce1e892e 636
e5998677
SH
637XXX Add anything here that we forgot to add, or were mistaken about, in
638the perldelta of a previous release.
ce1e892e 639
a9c3e753 640=back
e3e8f263 641
e5998677 642=head1 Obituary
0d42058e 643
e5998677
SH
644XXX If any significant core contributor has died, we've added a short obituary
645here.
0d42058e 646
e5998677 647=head1 Acknowledgements
0d42058e 648
e5998677 649XXX Generate this with:
0d42058e 650
e5998677 651 perl Porting/acknowledgements.pl v5.21.10..HEAD
f5b73711 652
44691e6f
AB
653=head1 Reporting Bugs
654
e08634c5
SH
655If you find what you think is a bug, you might check the articles recently
656posted to the comp.lang.perl.misc newsgroup and the perl bug database at
e5998677
SH
657https://rt.perl.org/ . There may also be information at
658http://www.perl.org/ , the Perl Home Page.
44691e6f 659
e08634c5
SH
660If you believe you have an unreported bug, please run the L<perlbug> program
661included with your release. Be sure to trim your bug down to a tiny but
662sufficient test case. Your bug report, along with the output of C<perl -V>,
663will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
664
665If the bug you are reporting has security implications, which make it
e08634c5
SH
666inappropriate to send to a publicly archived mailing list, then please send it
667to perl5-security-report@perl.org. This points to a closed subscription
668unarchived mailing list, which includes all the core committers, who will be
669able to help assess the impact of issues, figure out a resolution, and help
f9001595 670co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
671platforms on which Perl is supported. Please only use this address for
672security issues in the Perl core, not for modules independently distributed on
673CPAN.
44691e6f
AB
674
675=head1 SEE ALSO
676
e08634c5
SH
677The F<Changes> file for an explanation of how to view exhaustive details on
678what changed.
44691e6f
AB
679
680The F<INSTALL> file for how to build Perl.
681
682The F<README> file for general stuff.
683
684The F<Artistic> and F<Copying> files for copyright information.
685
686=cut