This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Unicode::Collate has been upgraded from version 1.11 to 1.12
[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
126be117
JH
261L<Unicode::Collate> has been upgraded from version 1.11 to 1.12.
262
263=item *
264
83a5d6b6
SH
265L<utf8> has been upgraded from version 1.14 to 1.15.
266
267=item *
268
269L<XS::APItest> has been upgraded from version 0.70 to 0.71.
c0ff9143 270
a9c3e753 271=back
0939a951 272
a9c3e753 273=head2 Removed Modules and Pragmata
cd7bac54 274
a9c3e753 275=over 4
cd7bac54
S
276
277=item *
278
a9c3e753 279XXX
cd7bac54 280
2ff1ebfe 281=back
541e1e0d 282
cd7bac54
S
283=head1 Documentation
284
a9c3e753
S
285XXX Changes to files in F<pod/> go here. Consider grouping entries by
286file and be sure to link to the appropriate page, e.g. L<perlfunc>.
287
cd7bac54
S
288=head2 New Documentation
289
a9c3e753 290XXX Changes which create B<new> files in F<pod/> go here.
541e1e0d 291
a9c3e753 292=head3 L<XXX>
d676fe86 293
a9c3e753 294XXX Description of the purpose of the new file here
d676fe86 295
a9c3e753 296=head2 Changes to Existing Documentation
d2fff9f6 297
a9c3e753
S
298XXX Changes which significantly change existing files in F<pod/> go here.
299However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
300section.
d2fff9f6 301
83a5d6b6 302=head3 L<perldata>
e329daf3 303
cd7bac54 304=over 4
e329daf3 305
cd7bac54 306=item *
e329daf3 307
83a5d6b6
SH
308Documentation has been added regarding the special floating point values C<Inf>
309and C<NaN>.
310
311=back
312
313=head3 L<perlexperiment>
314
315=over 4
316
317=item *
318
319Removed note about C<\s> matching C<VT> now that it is no longer experimental.
320
321=item *
322
323Added note that C<use re 'strict'> has been introduced experimentally.
324
325=back
326
327=head3 L<perlpolicy>
328
329=over 4
330
331=item *
332
333The documentation of what to expect to see in future maintenance releases has
334been updated. Essentially the same types of changes will be included as before
335but with fewer changes that don't affect the installation or execution of perl.
ba31029d 336
cd7bac54
S
337=back
338
a9c3e753 339=head1 Diagnostics
cd7bac54 340
a9c3e753
S
341The following additions or changes have been made to diagnostic output,
342including warnings and fatal error messages. For the complete list of
343diagnostic messages, see L<perldiag>.
cd7bac54 344
a9c3e753
S
345XXX New or changed warnings emitted by the core's C<C> code go here. Also
346include any changes in L<perldiag> that reconcile it to the C<C> code.
cd7bac54 347
a9c3e753 348=head2 New Diagnostics
541e1e0d 349
a9c3e753
S
350XXX Newly added diagnostic messages go under here, separated into New Errors
351and New Warnings
541e1e0d 352
a9c3e753 353=head3 New Errors
cd7bac54
S
354
355=over 4
356
357=item *
358
83a5d6b6
SH
359L<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/">
360
361(F) The pattern looks like a {min,max} quantifier, but the min or max could not
362be parsed as a valid number - either it has leading zeroes, or it represents
363too big a number to cope with. The S<<-- HERE> shows where in the regular
364expression the problem was discovered. See L<perlre>.
cd7bac54
S
365
366=back
541e1e0d 367
a9c3e753 368=head3 New Warnings
541e1e0d 369
2ff1ebfe 370=over 4
aa67537d 371
4c7a0d98
DD
372=item *
373
a9c3e753 374XXX L<message|perldiag/"message">
4c7a0d98 375
b5d4d3b9 376=back
4c7a0d98 377
a9c3e753 378=head2 Changes to Existing Diagnostics
a5d66edf 379
a9c3e753 380XXX Changes (i.e. rewording) of diagnostic messages go here
f348c3d8 381
cd7bac54 382=over 4
f348c3d8 383
cd7bac54 384=item *
2ff1ebfe 385
a9c3e753 386XXX Describe change here
f348c3d8 387
cd7bac54 388=back
2ff1ebfe 389
a9c3e753 390=head1 Utility Changes
f348c3d8 391
a9c3e753
S
392XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
393Most of these are built within the directory F<utils>.
4dc623f0 394
a9c3e753
S
395[ List utility changes as a =head2 entry for each utility and =item
396entries for each change
397Use L<XXX> with program names to get proper documentation linking. ]
84d03adf 398
a9c3e753 399=head2 L<XXX>
ff433f2d 400
9ce6583e 401=over 4
4cd408ba 402
9ce6583e 403=item *
6ed80d55 404
a9c3e753 405XXX
9ce6583e 406
2ff1ebfe 407=back
ab0b796c 408
a9c3e753 409=head1 Configuration and Compilation
cd7bac54 410
a9c3e753
S
411XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
412go here. Any other changes to the Perl build process should be listed here.
413However, any platform-specific changes should be listed in the
414L</Platform Support> section, instead.
cd7bac54 415
a9c3e753 416[ List changes as a =item entry ].
8c6180a9 417
2ff1ebfe 418=over 4
0561e60b 419
9ce6583e 420=item *
dd200dff 421
a9c3e753 422XXX
c877af1b 423
cd7bac54 424=back
c877af1b 425
a9c3e753 426=head1 Testing
cd7bac54 427
a9c3e753
S
428XXX Any significant changes to the testing of a freshly built perl should be
429listed here. Changes which create B<new> files in F<t/> go here as do any
430large changes to the testing harness (e.g. when parallel testing was added).
431Changes to existing files in F<t/> aren't worth summarizing, although the bugs
432that they represent may be covered elsewhere.
cd7bac54 433
a9c3e753 434[ List each test improvement as a =item entry ]
bb8c7e27 435
b5d4d3b9 436=over 4
83b69bfd
DD
437
438=item *
439
83a5d6b6 440Tests for performance issues have been added in the file F<t/perf/taint.t>.
13adb056 441
b5d4d3b9 442=back
391823f2 443
a9c3e753 444=head1 Platform Support
6c8457e9 445
a9c3e753 446XXX Any changes to platform support should be listed in the sections below.
6c8457e9 447
a9c3e753
S
448[ Within the sections, list each platform as a =item entry with specific
449changes as paragraphs below it. ]
db98db4e 450
a9c3e753 451=head2 New Platforms
8818afe8 452
a9c3e753
S
453XXX List any platforms that this version of perl compiles on, that previous
454versions did not. These will either be enabled by new files in the F<hints/>
455directories, or new subdirectories and F<README> files at the top level of the
456source tree.
8af808bf 457
2ff1ebfe 458=over 4
fdcaecb7 459
ce1e892e
KW
460=item z/OS running EBCDIC Code Page 1047
461
462Core perl now works on this EBCDIC platform. Early perls also worked,
463but, even though support wasn't officially withdrawn, recent perls would
464not compile and run well. Perl v5.20 would work, but had many bugs
465which have now been fixed. Many CPAN modules that ship with Perl still
466fail tests, including Pod::Simple. However the version of Pod::Simple
467currently on CPAN should work; it was fixed too late to include in
468Perl v5.22. Work is under way to fix many of the still-broken CPAN
469modules, which likely will be installed on CPAN when completed, so that
470you may not have to wait until v5.24 to get a working version.
2af7c6b6 471
4dc623f0 472=back
2af7c6b6 473
a9c3e753
S
474=head2 Discontinued Platforms
475
476XXX List any platforms that this version of perl no longer compiles on.
70cee83f 477
b5d4d3b9 478=over 4
e5fbfbc1 479
a9c3e753 480=item XXX-some-platform
b4045391 481
a9c3e753 482XXX
b4045391 483
2ff1ebfe 484=back
b4045391 485
2ff1ebfe 486=head2 Platform-Specific Notes
8c847e66 487
a9c3e753
S
488XXX List any changes for specific platforms. This could include configuration
489and compilation changes or changes in portability/compatibility. However,
490changes within modules for platforms should generally be listed in the
491L</Modules and Pragmata> section.
8c847e66 492
2ff1ebfe 493=over 4
d345f487 494
a9c3e753 495=item XXX-some-platform
d345f487 496
a9c3e753 497XXX
cd7bac54 498
4dc623f0 499=back
353075a0 500
a9c3e753 501=head1 Internal Changes
9f122eef 502
a9c3e753
S
503XXX Changes which affect the interface available to C<XS> code go here. Other
504significant internal changes for future core maintainers should be noted as
505well.
2ff1ebfe 506
a9c3e753 507[ List each change as a =item entry ]
2ff1ebfe 508
b5d4d3b9 509=over 4
2ec11c70
DM
510
511=item *
512
45235d99
KW
513Macros have been created to allow XS code to better manipulate the POSIX
514locale category C<LC_NUMERIC>.
515See L<perlapi/Locale-related functions and macros>.
2683609f 516
4dc623f0 517=back
c7f058f0 518
4dc623f0 519=head1 Selected Bug Fixes
0ef4323a 520
a9c3e753
S
521XXX Important bug fixes in the core language are summarized here. Bug fixes in
522files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
567291b6 523
a9c3e753 524[ List each fix as a =item entry ]
436f6503 525
a9c3e753 526=over 4
2bf83140 527
041a5927
FC
528=item *
529
5268e911
TC
530Repeated global pattern matches in scalar context on large tainted
531strings were exponentially slow depending on the current match
532position in the string. [perl #123202]
041a5927 533
69e954a5
FC
534=item *
535
536Various crashes due to the parser getting confused by syntax errors have
9269c59f 537been fixed. [perl #123801] [perl #123802] [perl #123955] [perl #123995]
69e954a5 538
20b5e916
FC
539=item *
540
541C<split> in the scope of lexical $_ has been fixed not to fail assertions.
542[perl #123763]
543
d76c14eb
FC
544=item *
545
546C<my $x : attr> syntax inside various list operators no longer fails
547assertions. [perl #123817]
548
d547bad0
FC
549=item *
550
551An @ sign in quotes followed by a non-ASCII digit (which is not a valid
552identifier) would cause the parser to crash, instead of simply trying the @
553as literal. This has been fixed. [perl #123963]
554
8a95d307
FC
555=item *
556
557C<*bar::=*foo::=*glob_with_hash> has been crashing since 5.14, but no
558longer does. [perl #123847]
559
2f304be9
FC
560=item *
561
562C<foreach> in scalar context was not pushing an item on to the stack,
563resulting in bugs. (C<print 4, scalar do { foreach(@x){} } + 1> would
564print 5.) It has been fixed to return C<undef>. [perl #124004]
565
a9c3e753 566=back
ea13b07e 567
a9c3e753 568=head1 Known Problems
b65adbec 569
a9c3e753
S
570XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
571tests that had to be C<TODO>ed for the release would be noted here. Unfixed
572platform specific bugs also go here.
b65adbec 573
a9c3e753 574[ List each fix as a =item entry ]
370c71c5 575
a9c3e753 576=over 4
b94c7836
FC
577
578=item *
579
f74610c0
KW
580A goal is for Perl to be able to be recompiled to work reasonably well
581on any Unicode version. In v5.22, though, the earliest such version is
582Unicode 5.1 (current is 7.0).
439f6100 583
ce1e892e
KW
584=item *
585
586EBCDIC platforms
587
588=over 4
589
590=item *
591
592Encode and encoding are mostly broken.
593
594=item *
595
596Many cpan modules that are shipped with core show failing tests
597
598=item *
599
600C<pack>/C<unpack> with C<"U0"> format may not work properly.
601
602=back
603
a9c3e753 604=back
e3e8f263 605
a9c3e753 606=head1 Errata From Previous Releases
cd7bac54 607
a9c3e753 608=over 4
e3e8f263 609
cb6cc22b
TC
610=item *
611
a9c3e753
S
612XXX Add anything here that we forgot to add, or were mistaken about, in
613the perldelta of a previous release.
cb6cc22b 614
b5d4d3b9 615=back
fcfb7b86 616
a9c3e753 617=head1 Obituary
cd7bac54 618
a9c3e753
S
619XXX If any significant core contributor has died, we've added a short obituary
620here.
cd7bac54 621
a9c3e753 622=head1 Acknowledgements
541e1e0d 623
a9c3e753 624XXX Generate this with:
01d42a22 625
a9c3e753 626 perl Porting/acknowledgements.pl v5.21.9..HEAD
f5b73711 627
44691e6f
AB
628=head1 Reporting Bugs
629
e08634c5
SH
630If you find what you think is a bug, you might check the articles recently
631posted to the comp.lang.perl.misc newsgroup and the perl bug database at
238894db 632https://rt.perl.org/ . There may also be information at
7ef8b31d 633http://www.perl.org/ , the Perl Home Page.
44691e6f 634
e08634c5
SH
635If you believe you have an unreported bug, please run the L<perlbug> program
636included with your release. Be sure to trim your bug down to a tiny but
637sufficient test case. Your bug report, along with the output of C<perl -V>,
638will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
639
640If the bug you are reporting has security implications, which make it
e08634c5
SH
641inappropriate to send to a publicly archived mailing list, then please send it
642to perl5-security-report@perl.org. This points to a closed subscription
643unarchived mailing list, which includes all the core committers, who will be
644able to help assess the impact of issues, figure out a resolution, and help
f9001595 645co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
646platforms on which Perl is supported. Please only use this address for
647security issues in the Perl core, not for modules independently distributed on
648CPAN.
44691e6f
AB
649
650=head1 SEE ALSO
651
e08634c5
SH
652The F<Changes> file for an explanation of how to view exhaustive details on
653what changed.
44691e6f
AB
654
655The F<INSTALL> file for how to build Perl.
656
657The F<README> file for general stuff.
658
659The F<Artistic> and F<Copying> files for copyright information.
660
661=cut