This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for EBCDIC now working
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
a9c3e753
S
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.10
c68523cb 9
238894db 10=head1 DESCRIPTION
c68523cb 11
a9c3e753 12This document describes differences between the 5.21.9 release and the 5.21.10
238894db 13release.
c68523cb 14
a9c3e753
S
15If you are upgrading from an earlier release such as 5.21.8, first read
16L<perl5219delta>, which describes differences between 5.21.8 and 5.21.9.
2ec11c70 17
b5d4d3b9 18=head1 Notice
2ec11c70 19
a9c3e753 20XXX Any important notices here
67f2cc75 21
b5d4d3b9 22=head1 Core Enhancements
67f2cc75 23
a9c3e753
S
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.
06ae2722 27
a9c3e753 28[ List each enhancement as a =head2 entry ]
156f41cf 29
a9c3e753 30=head1 Security
156f41cf 31
a9c3e753
S
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.
156f41cf 35
a9c3e753 36[ List each security issue as a =head2 entry ]
48c4d243 37
b5d4d3b9 38=head1 Incompatible Changes
ef8784b7 39
a9c3e753 40XXX For a release on a stable branch, this section aspires to be:
541e1e0d 41
a9c3e753
S
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.
541e1e0d 45
a9c3e753 46[ List each incompatible change as a =head2 entry ]
541e1e0d 47
6798c95d
KW
48=head2 C<(?[...])> operators now follow standard Perl precedence
49
50This experimental feature allows set operations in regular expression
51patterns. Prior to this, the intersection operator had the same
52precedence as the other binary operators. Now it has higher precedence.
53This could lead to different outcomes than existing code expects (though
54the documentation has always noted that this change might happen,
55recommending fully parenthesizing the expressions). See
56L<perlrecharclass/Extended Bracketed Character Classes>.
57
a9c3e753 58=head1 Deprecations
541e1e0d 59
a9c3e753 60XXX Any deprecated features, syntax, modules etc. should be listed here.
541e1e0d 61
a9c3e753 62=head2 Module removals
541e1e0d 63
a9c3e753 64XXX Remove this section if inapplicable.
541e1e0d 65
a9c3e753
S
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.
cd7bac54 70
a9c3e753
S
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.
541e1e0d 74
a9c3e753
S
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.
541e1e0d 79
a9c3e753 80=over
cd7bac54 81
a9c3e753 82=item XXX
6c8457e9 83
a9c3e753
S
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.
cd7bac54
S
86
87=back
6c8457e9 88
a9c3e753 89[ List each other deprecation as a =head2 entry ]
6c8457e9 90
a9c3e753 91=head1 Performance Enhancements
6c8457e9 92
a9c3e753
S
93XXX Changes which enhance performance without changing behaviour go here.
94There may well be none in a stable release.
127a7155 95
a9c3e753 96[ List each enhancement as a =item entry ]
6c8457e9 97
cd7bac54
S
98=over 4
99
100=item *
101
273e254d
KW
102The functions
103C<utf8::native_to_unicode()> and
104C<utf8::unicode_to_native()> (see L<utf8>)
105are now optimized out on ASCII platforms.
106There is now not even a minimal performance hit in writing code portable
107between ASCII and EBCDIC platforms.
cd7bac54
S
108
109=back
110
a9c3e753 111=head1 Modules and Pragmata
0939a951 112
a9c3e753
S
113XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
114go here. If Module::CoreList is updated, generate an initial draft of the
115following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
116for important changes should then be added by hand. In an ideal world,
117dual-life modules would have a F<Changes> file that could be cribbed.
c49582c3 118
a9c3e753 119[ Within each section, list entries as a =item entry ]
9024667a 120
a9c3e753 121=head2 New Modules and Pragmata
31e72f27
KW
122
123=over 4
124
125=item *
126
a9c3e753 127XXX
0ce5e53e 128
31e72f27
KW
129=back
130
a9c3e753 131=head2 Updated Modules and Pragmata
cd7bac54 132
a9c3e753 133=over 4
cd7bac54
S
134
135=item *
136
83a5d6b6
SH
137L<B> has been upgraded from version 1.56 to 1.57.
138
139=item *
140
b9c683b3
TC
141L<B::Deparse> has been upgraded from version 1.33 to 1.34.
142
143Deparse C<$#_> as that instead of as C<$#{_}>. [perl #123947]
144
145=item *
146
b05565aa
SH
147L<Carp> has been upgraded from version 1.35 to 1.36.
148
149=item *
150
d210e520 151L<CPAN> has been upgraded from version 2.05 to 2.10.
79116533
SH
152
153=over 4
154
155=item *
156
157Add support for C<Cwd::getdcwd()> and introduce workaround for a misbehaviour
158seen on Strawberry Perl 5.20.1.
159
160=item *
161
162Fix C<chdir()> after building dependencies bug.
163
164=item *
165
166Introduce experimental support for plugins/hooks.
167
168=item *
169
170Integrate the App::Cpan sources.
171
172=item *
173
174Do not check recursion on optional dependencies.
175
176=item *
177
178Sanity check META.yml to contain a hash.
179L<[cpan #95271]|https://rt.cpan.org/Ticket/Display.html?id=95271>
180
181=back
0939a951 182
c0ff9143
JH
183=item *
184
fea59588
SH
185L<CPAN::Meta> has been upgraded from version 2.143240 to 2.150001.
186
187=item *
188
83a5d6b6
SH
189L<Data::Dumper> has been upgraded from version 2.157 to 2.158.
190
191=item *
192
b05565aa
SH
193L<Devel::PPPort> has been upgraded from version 3.28 to 3.31.
194
195=item *
196
83a5d6b6
SH
197L<DynaLoader> has been upgraded from version 1.31 to 1.32.
198
199=item *
200
e455391f
SH
201L<Encode> has been upgraded from version 2.70 to 2.72.
202
203=item *
204
83a5d6b6
SH
205L<encoding> has been upgraded from version 2.13 to 2.14.
206
207=item *
208
209L<Getopt::Long> has been upgraded from version 2.43 to 2.45.
210
211=item *
212
213L<locale> has been upgraded from version 1.05 to 1.06.
214
215=item *
216
217L<Locale::Codes> has been upgraded from version 3.33 to 3.34.
218
219=item *
220
221L<Module::CoreList> has been reverted from version 5.20150220 to 5.20150320.
222
223=item *
224
b367c45d
SH
225L<parent> has been upgraded from version 0.228 to 0.232.
226
227No changes to installed files other than the version bump.
228
229=item *
230
83a5d6b6
SH
231L<Pod::Functions> has been upgraded from version 1.08 to 1.09.
232
233=item *
234
235L<POSIX> has been upgraded from version 1.51 to 1.52.
236
237=item *
238
239L<re> has been upgraded from version 0.31 to 0.32.
240
241=item *
242
9409f752
SH
243L<Test::Simple> has been reverted from version 1.301001_098 to 1.001014.
244
245=item *
246
03a97c81
SH
247L<Text::Balanced> has been upgraded from version 2.02 to 2.03.
248
249No changes to installed files other than the version bump.
250
251=item *
252
a790e348
SH
253L<Text::ParseWords> has been upgraded from version 3.29 to 3.30.
254
255=item *
256
15af3bc0 257L<threads> has been upgraded from version 1.96_001 to 2.01.
83a5d6b6
SH
258
259=item *
260
261L<utf8> has been upgraded from version 1.14 to 1.15.
262
263=item *
264
265L<XS::APItest> has been upgraded from version 0.70 to 0.71.
c0ff9143 266
a9c3e753 267=back
0939a951 268
a9c3e753 269=head2 Removed Modules and Pragmata
cd7bac54 270
a9c3e753 271=over 4
cd7bac54
S
272
273=item *
274
a9c3e753 275XXX
cd7bac54 276
2ff1ebfe 277=back
541e1e0d 278
cd7bac54
S
279=head1 Documentation
280
a9c3e753
S
281XXX Changes to files in F<pod/> go here. Consider grouping entries by
282file and be sure to link to the appropriate page, e.g. L<perlfunc>.
283
cd7bac54
S
284=head2 New Documentation
285
a9c3e753 286XXX Changes which create B<new> files in F<pod/> go here.
541e1e0d 287
a9c3e753 288=head3 L<XXX>
d676fe86 289
a9c3e753 290XXX Description of the purpose of the new file here
d676fe86 291
a9c3e753 292=head2 Changes to Existing Documentation
d2fff9f6 293
a9c3e753
S
294XXX Changes which significantly change existing files in F<pod/> go here.
295However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
296section.
d2fff9f6 297
83a5d6b6 298=head3 L<perldata>
e329daf3 299
cd7bac54 300=over 4
e329daf3 301
cd7bac54 302=item *
e329daf3 303
83a5d6b6
SH
304Documentation has been added regarding the special floating point values C<Inf>
305and C<NaN>.
306
307=back
308
309=head3 L<perlexperiment>
310
311=over 4
312
313=item *
314
315Removed note about C<\s> matching C<VT> now that it is no longer experimental.
316
317=item *
318
319Added note that C<use re 'strict'> has been introduced experimentally.
320
321=back
322
323=head3 L<perlpolicy>
324
325=over 4
326
327=item *
328
329The documentation of what to expect to see in future maintenance releases has
330been updated. Essentially the same types of changes will be included as before
331but with fewer changes that don't affect the installation or execution of perl.
ba31029d 332
cd7bac54
S
333=back
334
a9c3e753 335=head1 Diagnostics
cd7bac54 336
a9c3e753
S
337The following additions or changes have been made to diagnostic output,
338including warnings and fatal error messages. For the complete list of
339diagnostic messages, see L<perldiag>.
cd7bac54 340
a9c3e753
S
341XXX New or changed warnings emitted by the core's C<C> code go here. Also
342include any changes in L<perldiag> that reconcile it to the C<C> code.
cd7bac54 343
a9c3e753 344=head2 New Diagnostics
541e1e0d 345
a9c3e753
S
346XXX Newly added diagnostic messages go under here, separated into New Errors
347and New Warnings
541e1e0d 348
a9c3e753 349=head3 New Errors
cd7bac54
S
350
351=over 4
352
353=item *
354
83a5d6b6
SH
355L<Invalid quantifier in {,} in regex; marked by <-- HERE in mE<sol>%sE<sol>|perldiag/"Invalid quantifier in {,} in regex; marked by <-- HERE in m/%s/">
356
357(F) The pattern looks like a {min,max} quantifier, but the min or max could not
358be parsed as a valid number - either it has leading zeroes, or it represents
359too big a number to cope with. The S<<-- HERE> shows where in the regular
360expression the problem was discovered. See L<perlre>.
cd7bac54
S
361
362=back
541e1e0d 363
a9c3e753 364=head3 New Warnings
541e1e0d 365
2ff1ebfe 366=over 4
aa67537d 367
4c7a0d98
DD
368=item *
369
a9c3e753 370XXX L<message|perldiag/"message">
4c7a0d98 371
b5d4d3b9 372=back
4c7a0d98 373
a9c3e753 374=head2 Changes to Existing Diagnostics
a5d66edf 375
a9c3e753 376XXX Changes (i.e. rewording) of diagnostic messages go here
f348c3d8 377
cd7bac54 378=over 4
f348c3d8 379
cd7bac54 380=item *
2ff1ebfe 381
a9c3e753 382XXX Describe change here
f348c3d8 383
cd7bac54 384=back
2ff1ebfe 385
a9c3e753 386=head1 Utility Changes
f348c3d8 387
a9c3e753
S
388XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
389Most of these are built within the directory F<utils>.
4dc623f0 390
a9c3e753
S
391[ List utility changes as a =head2 entry for each utility and =item
392entries for each change
393Use L<XXX> with program names to get proper documentation linking. ]
84d03adf 394
a9c3e753 395=head2 L<XXX>
ff433f2d 396
9ce6583e 397=over 4
4cd408ba 398
9ce6583e 399=item *
6ed80d55 400
a9c3e753 401XXX
9ce6583e 402
2ff1ebfe 403=back
ab0b796c 404
a9c3e753 405=head1 Configuration and Compilation
cd7bac54 406
a9c3e753
S
407XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
408go here. Any other changes to the Perl build process should be listed here.
409However, any platform-specific changes should be listed in the
410L</Platform Support> section, instead.
cd7bac54 411
a9c3e753 412[ List changes as a =item entry ].
8c6180a9 413
2ff1ebfe 414=over 4
0561e60b 415
9ce6583e 416=item *
dd200dff 417
a9c3e753 418XXX
c877af1b 419
cd7bac54 420=back
c877af1b 421
a9c3e753 422=head1 Testing
cd7bac54 423
a9c3e753
S
424XXX Any significant changes to the testing of a freshly built perl should be
425listed here. Changes which create B<new> files in F<t/> go here as do any
426large changes to the testing harness (e.g. when parallel testing was added).
427Changes to existing files in F<t/> aren't worth summarizing, although the bugs
428that they represent may be covered elsewhere.
cd7bac54 429
a9c3e753 430[ List each test improvement as a =item entry ]
bb8c7e27 431
b5d4d3b9 432=over 4
83b69bfd
DD
433
434=item *
435
83a5d6b6 436Tests for performance issues have been added in the file F<t/perf/taint.t>.
13adb056 437
b5d4d3b9 438=back
391823f2 439
a9c3e753 440=head1 Platform Support
6c8457e9 441
a9c3e753 442XXX Any changes to platform support should be listed in the sections below.
6c8457e9 443
a9c3e753
S
444[ Within the sections, list each platform as a =item entry with specific
445changes as paragraphs below it. ]
db98db4e 446
a9c3e753 447=head2 New Platforms
8818afe8 448
a9c3e753
S
449XXX List any platforms that this version of perl compiles on, that previous
450versions did not. These will either be enabled by new files in the F<hints/>
451directories, or new subdirectories and F<README> files at the top level of the
452source tree.
8af808bf 453
2ff1ebfe 454=over 4
fdcaecb7 455
ce1e892e
KW
456=item z/OS running EBCDIC Code Page 1047
457
458Core perl now works on this EBCDIC platform. Early perls also worked,
459but, even though support wasn't officially withdrawn, recent perls would
460not compile and run well. Perl v5.20 would work, but had many bugs
461which have now been fixed. Many CPAN modules that ship with Perl still
462fail tests, including Pod::Simple. However the version of Pod::Simple
463currently on CPAN should work; it was fixed too late to include in
464Perl v5.22. Work is under way to fix many of the still-broken CPAN
465modules, which likely will be installed on CPAN when completed, so that
466you may not have to wait until v5.24 to get a working version.
2af7c6b6 467
4dc623f0 468=back
2af7c6b6 469
a9c3e753
S
470=head2 Discontinued Platforms
471
472XXX List any platforms that this version of perl no longer compiles on.
70cee83f 473
b5d4d3b9 474=over 4
e5fbfbc1 475
a9c3e753 476=item XXX-some-platform
b4045391 477
a9c3e753 478XXX
b4045391 479
2ff1ebfe 480=back
b4045391 481
2ff1ebfe 482=head2 Platform-Specific Notes
8c847e66 483
a9c3e753
S
484XXX List any changes for specific platforms. This could include configuration
485and compilation changes or changes in portability/compatibility. However,
486changes within modules for platforms should generally be listed in the
487L</Modules and Pragmata> section.
8c847e66 488
2ff1ebfe 489=over 4
d345f487 490
a9c3e753 491=item XXX-some-platform
d345f487 492
a9c3e753 493XXX
cd7bac54 494
4dc623f0 495=back
353075a0 496
a9c3e753 497=head1 Internal Changes
9f122eef 498
a9c3e753
S
499XXX Changes which affect the interface available to C<XS> code go here. Other
500significant internal changes for future core maintainers should be noted as
501well.
2ff1ebfe 502
a9c3e753 503[ List each change as a =item entry ]
2ff1ebfe 504
b5d4d3b9 505=over 4
2ec11c70
DM
506
507=item *
508
45235d99
KW
509Macros have been created to allow XS code to better manipulate the POSIX
510locale category C<LC_NUMERIC>.
511See L<perlapi/Locale-related functions and macros>.
2683609f 512
4dc623f0 513=back
c7f058f0 514
4dc623f0 515=head1 Selected Bug Fixes
0ef4323a 516
a9c3e753
S
517XXX Important bug fixes in the core language are summarized here. Bug fixes in
518files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
567291b6 519
a9c3e753 520[ List each fix as a =item entry ]
436f6503 521
a9c3e753 522=over 4
2bf83140 523
041a5927
FC
524=item *
525
5268e911
TC
526Repeated global pattern matches in scalar context on large tainted
527strings were exponentially slow depending on the current match
528position in the string. [perl #123202]
041a5927 529
69e954a5
FC
530=item *
531
532Various crashes due to the parser getting confused by syntax errors have
9269c59f 533been fixed. [perl #123801] [perl #123802] [perl #123955] [perl #123995]
69e954a5 534
20b5e916
FC
535=item *
536
537C<split> in the scope of lexical $_ has been fixed not to fail assertions.
538[perl #123763]
539
d76c14eb
FC
540=item *
541
542C<my $x : attr> syntax inside various list operators no longer fails
543assertions. [perl #123817]
544
d547bad0
FC
545=item *
546
547An @ sign in quotes followed by a non-ASCII digit (which is not a valid
548identifier) would cause the parser to crash, instead of simply trying the @
549as literal. This has been fixed. [perl #123963]
550
8a95d307
FC
551=item *
552
553C<*bar::=*foo::=*glob_with_hash> has been crashing since 5.14, but no
554longer does. [perl #123847]
555
2f304be9
FC
556=item *
557
558C<foreach> in scalar context was not pushing an item on to the stack,
559resulting in bugs. (C<print 4, scalar do { foreach(@x){} } + 1> would
560print 5.) It has been fixed to return C<undef>. [perl #124004]
561
a9c3e753 562=back
ea13b07e 563
a9c3e753 564=head1 Known Problems
b65adbec 565
a9c3e753
S
566XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
567tests that had to be C<TODO>ed for the release would be noted here. Unfixed
568platform specific bugs also go here.
b65adbec 569
a9c3e753 570[ List each fix as a =item entry ]
370c71c5 571
a9c3e753 572=over 4
b94c7836
FC
573
574=item *
575
f74610c0
KW
576A goal is for Perl to be able to be recompiled to work reasonably well
577on any Unicode version. In v5.22, though, the earliest such version is
578Unicode 5.1 (current is 7.0).
439f6100 579
ce1e892e
KW
580=item *
581
582EBCDIC platforms
583
584=over 4
585
586=item *
587
588Encode and encoding are mostly broken.
589
590=item *
591
592Many cpan modules that are shipped with core show failing tests
593
594=item *
595
596C<pack>/C<unpack> with C<"U0"> format may not work properly.
597
598=back
599
a9c3e753 600=back
e3e8f263 601
a9c3e753 602=head1 Errata From Previous Releases
cd7bac54 603
a9c3e753 604=over 4
e3e8f263 605
cb6cc22b
TC
606=item *
607
a9c3e753
S
608XXX Add anything here that we forgot to add, or were mistaken about, in
609the perldelta of a previous release.
cb6cc22b 610
b5d4d3b9 611=back
fcfb7b86 612
a9c3e753 613=head1 Obituary
cd7bac54 614
a9c3e753
S
615XXX If any significant core contributor has died, we've added a short obituary
616here.
cd7bac54 617
a9c3e753 618=head1 Acknowledgements
541e1e0d 619
a9c3e753 620XXX Generate this with:
01d42a22 621
a9c3e753 622 perl Porting/acknowledgements.pl v5.21.9..HEAD
f5b73711 623
44691e6f
AB
624=head1 Reporting Bugs
625
e08634c5
SH
626If you find what you think is a bug, you might check the articles recently
627posted to the comp.lang.perl.misc newsgroup and the perl bug database at
238894db 628https://rt.perl.org/ . There may also be information at
7ef8b31d 629http://www.perl.org/ , the Perl Home Page.
44691e6f 630
e08634c5
SH
631If you believe you have an unreported bug, please run the L<perlbug> program
632included with your release. Be sure to trim your bug down to a tiny but
633sufficient test case. Your bug report, along with the output of C<perl -V>,
634will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
635
636If the bug you are reporting has security implications, which make it
e08634c5
SH
637inappropriate to send to a publicly archived mailing list, then please send it
638to perl5-security-report@perl.org. This points to a closed subscription
639unarchived mailing list, which includes all the core committers, who will be
640able to help assess the impact of issues, figure out a resolution, and help
f9001595 641co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
642platforms on which Perl is supported. Please only use this address for
643security issues in the Perl core, not for modules independently distributed on
644CPAN.
44691e6f
AB
645
646=head1 SEE ALSO
647
e08634c5
SH
648The F<Changes> file for an explanation of how to view exhaustive details on
649what changed.
44691e6f
AB
650
651The F<INSTALL> file for how to build Perl.
652
653The F<README> file for general stuff.
654
655The F<Artistic> and F<Copying> files for copyright information.
656
657=cut