This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
unicore/README.perl:perl with older Unicode versions
[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
a9c3e753 456=item XXX-some-platform
fdcaecb7 457
a9c3e753 458XXX
2af7c6b6 459
4dc623f0 460=back
2af7c6b6 461
a9c3e753
S
462=head2 Discontinued Platforms
463
464XXX List any platforms that this version of perl no longer compiles on.
70cee83f 465
b5d4d3b9 466=over 4
e5fbfbc1 467
a9c3e753 468=item XXX-some-platform
b4045391 469
a9c3e753 470XXX
b4045391 471
2ff1ebfe 472=back
b4045391 473
2ff1ebfe 474=head2 Platform-Specific Notes
8c847e66 475
a9c3e753
S
476XXX List any changes for specific platforms. This could include configuration
477and compilation changes or changes in portability/compatibility. However,
478changes within modules for platforms should generally be listed in the
479L</Modules and Pragmata> section.
8c847e66 480
2ff1ebfe 481=over 4
d345f487 482
a9c3e753 483=item XXX-some-platform
d345f487 484
a9c3e753 485XXX
cd7bac54 486
4dc623f0 487=back
353075a0 488
a9c3e753 489=head1 Internal Changes
9f122eef 490
a9c3e753
S
491XXX Changes which affect the interface available to C<XS> code go here. Other
492significant internal changes for future core maintainers should be noted as
493well.
2ff1ebfe 494
a9c3e753 495[ List each change as a =item entry ]
2ff1ebfe 496
b5d4d3b9 497=over 4
2ec11c70
DM
498
499=item *
500
45235d99
KW
501Macros have been created to allow XS code to better manipulate the POSIX
502locale category C<LC_NUMERIC>.
503See L<perlapi/Locale-related functions and macros>.
2683609f 504
4dc623f0 505=back
c7f058f0 506
4dc623f0 507=head1 Selected Bug Fixes
0ef4323a 508
a9c3e753
S
509XXX Important bug fixes in the core language are summarized here. Bug fixes in
510files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
567291b6 511
a9c3e753 512[ List each fix as a =item entry ]
436f6503 513
a9c3e753 514=over 4
2bf83140 515
041a5927
FC
516=item *
517
5268e911
TC
518Repeated global pattern matches in scalar context on large tainted
519strings were exponentially slow depending on the current match
520position in the string. [perl #123202]
041a5927 521
69e954a5
FC
522=item *
523
524Various crashes due to the parser getting confused by syntax errors have
9269c59f 525been fixed. [perl #123801] [perl #123802] [perl #123955] [perl #123995]
69e954a5 526
20b5e916
FC
527=item *
528
529C<split> in the scope of lexical $_ has been fixed not to fail assertions.
530[perl #123763]
531
d76c14eb
FC
532=item *
533
534C<my $x : attr> syntax inside various list operators no longer fails
535assertions. [perl #123817]
536
d547bad0
FC
537=item *
538
539An @ sign in quotes followed by a non-ASCII digit (which is not a valid
540identifier) would cause the parser to crash, instead of simply trying the @
541as literal. This has been fixed. [perl #123963]
542
8a95d307
FC
543=item *
544
545C<*bar::=*foo::=*glob_with_hash> has been crashing since 5.14, but no
546longer does. [perl #123847]
547
2f304be9
FC
548=item *
549
550C<foreach> in scalar context was not pushing an item on to the stack,
551resulting in bugs. (C<print 4, scalar do { foreach(@x){} } + 1> would
552print 5.) It has been fixed to return C<undef>. [perl #124004]
553
a9c3e753 554=back
ea13b07e 555
a9c3e753 556=head1 Known Problems
b65adbec 557
a9c3e753
S
558XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
559tests that had to be C<TODO>ed for the release would be noted here. Unfixed
560platform specific bugs also go here.
b65adbec 561
a9c3e753 562[ List each fix as a =item entry ]
370c71c5 563
a9c3e753 564=over 4
b94c7836
FC
565
566=item *
567
f74610c0
KW
568A goal is for Perl to be able to be recompiled to work reasonably well
569on any Unicode version. In v5.22, though, the earliest such version is
570Unicode 5.1 (current is 7.0).
439f6100 571
a9c3e753 572=back
e3e8f263 573
a9c3e753 574=head1 Errata From Previous Releases
cd7bac54 575
a9c3e753 576=over 4
e3e8f263 577
cb6cc22b
TC
578=item *
579
a9c3e753
S
580XXX Add anything here that we forgot to add, or were mistaken about, in
581the perldelta of a previous release.
cb6cc22b 582
b5d4d3b9 583=back
fcfb7b86 584
a9c3e753 585=head1 Obituary
cd7bac54 586
a9c3e753
S
587XXX If any significant core contributor has died, we've added a short obituary
588here.
cd7bac54 589
a9c3e753 590=head1 Acknowledgements
541e1e0d 591
a9c3e753 592XXX Generate this with:
01d42a22 593
a9c3e753 594 perl Porting/acknowledgements.pl v5.21.9..HEAD
f5b73711 595
44691e6f
AB
596=head1 Reporting Bugs
597
e08634c5
SH
598If you find what you think is a bug, you might check the articles recently
599posted to the comp.lang.perl.misc newsgroup and the perl bug database at
238894db 600https://rt.perl.org/ . There may also be information at
7ef8b31d 601http://www.perl.org/ , the Perl Home Page.
44691e6f 602
e08634c5
SH
603If you believe you have an unreported bug, please run the L<perlbug> program
604included with your release. Be sure to trim your bug down to a tiny but
605sufficient test case. Your bug report, along with the output of C<perl -V>,
606will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
607
608If the bug you are reporting has security implications, which make it
e08634c5
SH
609inappropriate to send to a publicly archived mailing list, then please send it
610to perl5-security-report@perl.org. This points to a closed subscription
611unarchived mailing list, which includes all the core committers, who will be
612able to help assess the impact of issues, figure out a resolution, and help
f9001595 613co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
614platforms on which Perl is supported. Please only use this address for
615security issues in the Perl core, not for modules independently distributed on
616CPAN.
44691e6f
AB
617
618=head1 SEE ALSO
619
e08634c5
SH
620The F<Changes> file for an explanation of how to view exhaustive details on
621what changed.
44691e6f
AB
622
623The F<INSTALL> file for how to build Perl.
624
625The F<README> file for general stuff.
626
627The F<Artistic> and F<Copying> files for copyright information.
628
629=cut