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