This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for 012528a99df1906d6fe.
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
19718730
AC
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.17.9
e128ab2c 9
4eabcf70 10=head1 DESCRIPTION
6db9054f 11
19718730 12This document describes differences between the 5.17.8 release and the 5.17.9
e08634c5 13release.
6db9054f 14
19718730
AC
15If you are upgrading from an earlier release such as 5.17.7, first read
16L<perl5178delta>, which describes differences between 5.17.7 and 5.17.8.
17
18=head1 Notice
19
20XXX Any important notices here
bde9e88d 21
6253ee75 22=head1 Core Enhancements
dd271d7a 23
19718730
AC
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.
27
28[ List each enhancement as a =head2 entry ]
29
b5864679
KW
30=head2 Interpolations now Accepted in Regular Expression Set Operations
31
32Perl v5.17.8 introduced L<regular expression set operations|perlre/(?[ ])>.
33They have now been expanded to allow the interpolation of a
34previously-compiled set into a bigger set, like this:
35
ea5a2f13 36 my $thai_or_lao = qr/\p{Thai} + \p{Lao}/;
b5864679
KW
37 ...
38 qr/(?[ \p{Digit} & $thai_or_lao ])/;
39
19718730
AC
40=head1 Security
41
42XXX Any security-related notices go here. In particular, any security
43vulnerabilities closed should be noted here rather than in the
44L</Selected Bug Fixes> section.
45
46[ List each security issue as a =head2 entry ]
9d1a5160 47
19718730
AC
48=head1 Incompatible Changes
49
50XXX For a release on a stable branch, this section aspires to be:
51
52 There are no changes intentionally incompatible with 5.XXX.XXX
53 If any exist, they are bugs, and we request that you submit a
54 report. See L</Reporting Bugs> below.
55
56[ List each incompatible change as a =head2 entry ]
9d1a5160 57
0e55f0d7 58=head1 Deprecations
3ef6ec90 59
19718730
AC
60XXX Any deprecated features, syntax, modules etc. should be listed here. In
61particular, deprecated modules should be listed here even if they are listed as
62an updated module in the L</Modules and Pragmata> section.
4d68ffa0 63
19718730
AC
64[ List each deprecation as a =head2 entry ]
65
3f01b192
CBW
66=head2 Deprecated Modules
67
68The following modules will be removed from the core distribution in a
69future release, and should be installed from CPAN instead. Distributions
70on CPAN which require these should add them to their prerequisites. The
71core versions of these modules C<warnings> will issue a deprecation warning.
72
73You can silence these deprecation warnings by installing the modules
74in question from CPAN.
75
76=over
77
78=item L<Archive::Extract>
79
80=item L<B::Lint>
81
82=item L<B::Lint::Debug>
83
84=item L<CPANPLUS>
85
86=item L<CPANPLUS::Backend>
87
88=item L<CPANPLUS::Backend::RV>
89
90=item L<CPANPLUS::Config>
91
92=item L<CPANPLUS::Config::HomeEnv>
93
94=item L<CPANPLUS::Configure>
95
9150e781 96=item C<CPANPLUS::Configure::Setup>
3f01b192
CBW
97
98=item L<CPANPLUS::Dist>
99
100=item L<CPANPLUS::Dist::Autobundle>
101
102=item L<CPANPLUS::Dist::Base>
103
104=item L<CPANPLUS::Dist::Build>
105
106=item L<CPANPLUS::Dist::Build::Constants>
107
108=item L<CPANPLUS::Dist::MM>
109
110=item L<CPANPLUS::Dist::Sample>
111
112=item L<CPANPLUS::Error>
113
114=item L<CPANPLUS::Internals>
115
9150e781 116=item C<CPANPLUS::Internals::Constants>
3f01b192 117
9150e781 118=item C<CPANPLUS::Internals::Constants::Report>
3f01b192
CBW
119
120=item L<CPANPLUS::Internals::Extract>
121
122=item L<CPANPLUS::Internals::Fetch>
123
124=item L<CPANPLUS::Internals::Report>
125
126=item L<CPANPLUS::Internals::Search>
127
128=item L<CPANPLUS::Internals::Source>
129
130=item L<CPANPLUS::Internals::Source::Memory>
131
132=item L<CPANPLUS::Internals::Source::SQLite>
133
9150e781 134=item C<CPANPLUS::Internals::Source::SQLite::Tie>
3f01b192
CBW
135
136=item L<CPANPLUS::Internals::Utils>
137
9150e781 138=item C<CPANPLUS::Internals::Utils::Autoflush>
3f01b192
CBW
139
140=item L<CPANPLUS::Module>
141
142=item L<CPANPLUS::Module::Author>
143
144=item L<CPANPLUS::Module::Author::Fake>
145
146=item L<CPANPLUS::Module::Checksums>
147
148=item L<CPANPLUS::Module::Fake>
149
9150e781 150=item C<CPANPLUS::Module::Signature>
3f01b192
CBW
151
152=item L<CPANPLUS::Selfupdate>
153
154=item L<CPANPLUS::Shell>
155
156=item L<CPANPLUS::Shell::Classic>
157
158=item L<CPANPLUS::Shell::Default>
159
160=item L<CPANPLUS::Shell::Default::Plugins::CustomSource>
161
162=item L<CPANPLUS::Shell::Default::Plugins::Remote>
163
164=item L<CPANPLUS::Shell::Default::Plugins::Source>
165
166=item L<Devel::InnerPackage>
167
168=item L<Log::Message>
169
170=item L<Log::Message::Config>
171
172=item L<Log::Message::Handlers>
173
174=item L<Log::Message::Item>
175
176=item L<Log::Message::Simple>
177
178=item L<Module::Pluggable>
179
180=item L<Module::Pluggable::Object>
181
182=item L<Object::Accessor>
183
184=item L<Term::UI>
185
186=item L<Term::UI::History>
187
188=back
189
190=head3 Deprecated Utilities
191
192The following utilities will be removed from the core distribution in a
193future release as their associated modules have been deprecated. They
194will remain available with the applicable CPAN distribution.
195
196=over
197
198=item L<cpanp>
199
200Included with L<CPANPLUS>.
201
9150e781 202=item C<cpanp-run-perl>
3f01b192
CBW
203
204Included with L<CPANPLUS>.
205
206=item L<cpan2dist>
207
208Included with L<CPANPLUS>.
209
210=item L<pod2latex>
211
212The L<Pod::LaTeX> module was deprecated with 5.17.8.
213
214=back
215
ff56e4f1
KW
216=head2 Five additional characters should be escaped in patterns with C</x>
217
218When a regular expression pattern is compiled with C</x>, Perl treats 6
219characters as white space to ignore, such as SPACE and TAB. However,
220Unicode recommends 11 characters be treated thusly. In preparation to
221conforming with this in a future Perl version, in the meantime, use of
222any of the missing characters will raise a deprecation warning, unless
223turned off. The five characters are:
224U+0085 NEXT LINE,
225U+200E LEFT-TO-RIGHT MARK,
226U+200F RIGHT-TO-LEFT MARK,
227U+2028 LINE SEPARATOR,
228and
229U+2029 PARAGRAPH SEPARATOR.
230
19718730
AC
231=head1 Performance Enhancements
232
233XXX Changes which enhance performance without changing behaviour go here.
234There may well be none in a stable release.
751611d4 235
19718730 236[ List each enhancement as a =item entry ]
751611d4 237
6253ee75 238=over 4
751611d4
FC
239
240=item *
241
19718730
AC
242XXX
243
244=back
245
246=head1 Modules and Pragmata
247
248XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
249go here. If Module::CoreList is updated, generate an initial draft of the
250following sections using F<Porting/corelist-perldelta.pl>, which prints stub
251entries to STDOUT. Results can be pasted in place of the '=head2' entries
252below. A paragraph summary for important changes should then be added by hand.
253In an ideal world, dual-life modules would have a F<Changes> file that could be
254cribbed.
255
256[ Within each section, list entries as a =item entry ]
257
258=head2 New Modules and Pragmata
751611d4 259
6253ee75 260=over 4
751611d4
FC
261
262=item *
263
f3f40957
CBW
264L<Config::Perl::V> version 0.16 has been added as a dual-lifed module.
265It provides structured data retrieval of C<perl -V> output including
266information only known to the C<perl> binary and not available via L<Config>.
751611d4 267
19718730 268=back
86148eee 269
19718730
AC
270=head2 Updated Modules and Pragmata
271
272=over 4
7a7a10c7 273
e14ac59b 274=item *
7a7a10c7 275
a820780c
DG
276L<Benchmark> has been upgraded from version 1.13 to 1.14.
277
278The "too few iterations" message is now a warning on STDERR
279instead of being output on STDOUT.
280
281=item *
282
8cdf5bac
JK
283L<Data::Dumper> has been upgraded from version 2.141 to 2.142.
284
285Additional tests were added in order to improve statement, branch, condition
286and subroutine coverage. On the basis of the coverage analysis, some of the
287internals of Dumper.pm were refactored. Almost all methods are now
288documented.
289
290=item *
291
46205598
DG
292L<File::Temp> has been upgraded from version 0.22 to 0.22_90
293
294Fixes various bugs involving directory removal. Defers unlinking tempfiles if
295the initial unlink fails, which fixes problems on NFS.
296
297=item *
298
e58c5aaf
TC
299L<PerlIO::scalar> has been upgraded from version 0.15 to 0.16.
300
301The buffer scalar supplied may now only contain code pounts 0xFF or
302lower. [perl #109828]
7a7a10c7 303
19718730
AC
304=back
305
306=head2 Removed Modules and Pragmata
c387386a 307
19718730 308=over 4
32209f41 309
e14ac59b 310=item *
5faa50e9 311
19718730 312XXX
b7c7d786 313
6253ee75 314=back
b7c7d786 315
19718730 316=head1 Documentation
11e375e0 317
19718730
AC
318XXX Changes to files in F<pod/> go here. Consider grouping entries by
319file and be sure to link to the appropriate page, e.g. L<perlfunc>.
e498bd59 320
19718730
AC
321=head2 New Documentation
322
323XXX Changes which create B<new> files in F<pod/> go here.
e498bd59 324
19718730
AC
325=head3 L<XXX>
326
327XXX Description of the purpose of the new file here
328
329=head2 Changes to Existing Documentation
330
331XXX Changes which significantly change existing files in F<pod/> go here.
332However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
333section.
334
b9214e65 335=head3 L<perlsec>
19718730
AC
336
337=over 4
dd4b1c75
AC
338
339=item *
340
b9214e65 341A syntax error was fixed in one of illustrative examples.
cb077ed2 342
5d8c8c8a 343=back
5f877a7f 344
e14ac59b
RS
345=head1 Diagnostics
346
347The following additions or changes have been made to diagnostic output,
348including warnings and fatal error messages. For the complete list of
349diagnostic messages, see L<perldiag>.
1ea91bbe 350
19718730
AC
351XXX New or changed warnings emitted by the core's C<C> code go here. Also
352include any changes in L<perldiag> that reconcile it to the C<C> code.
353
6253ee75
DR
354=head2 New Diagnostics
355
19718730
AC
356XXX Newly added diagnostic messages go under here, separated into New Errors
357and New Warnings
358
359=head3 New Errors
11e375e0 360
e14ac59b 361=over 4
11e375e0
FC
362
363=item *
364
19718730
AC
365XXX L<message|perldiag/"message">
366
367=back
368
369=head3 New Warnings
370
371=over 4
5e0a247b
KW
372
373=item *
374
d2d1e842 375Strings with code points over 0xFF may not be mapped into in-memory file handles
19718730
AC
376
377=back
378
379=head2 Changes to Existing Diagnostics
380
381XXX Changes (i.e. rewording) of diagnostic messages go here
382
383=over 4
e14ac59b 384
6253ee75 385=item *
8b877d20 386
b9214e65
CBW
387The warnings for \b{ and \B{ were added in the 5.17 series; they are a
388deprecation warning which should be turned off by that category. One
389should not have to turn off regular regexp warnings as well to get rid
390of these.
19718730
AC
391
392=back
393
394=head1 Utility Changes
395
396XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
397Most of these are built within the directories F<utils> and F<x2p>.
398
399[ List utility changes as a =head3 entry for each utility and =item
400entries for each change
401Use L<XXX> with program names to get proper documentation linking. ]
402
5bf072ac 403=head3 L<corelist>
19718730
AC
404
405=over 4
e078d89d
FC
406
407=item *
408
5bf072ac
CBW
409Added C<--feature> switch which lists the first version bundle of each
410named feature given.
e078d89d 411
6253ee75 412=back
e078d89d 413
19718730
AC
414=head1 Configuration and Compilation
415
416XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
417go here. Any other changes to the Perl build process should be listed here.
418However, any platform-specific changes should be listed in the
419L</Platform Support> section, instead.
420
421[ List changes as a =item entry ].
e078d89d 422
6253ee75 423=over 4
e078d89d 424
b7c7d786
FC
425=item *
426
d2d1e842
CBW
427Added C<useversionedarchname> option to Configure
428
429When set, it includes 'api_versionstring' in 'archname'. E.g.
430x86_64-linux-5.13.6-thread-multi. It is unset by default.
431
432This feature was requested by Tim Bunce, who observed that
433INSTALL_BASE creates a library structure that does not
434differentiate by perl version. Instead, it places architecture
435specific files in "$install_base/lib/perl5/$archname". This makes
436it difficult to use a common INSTALL_BASE library path with
437multiple versions of perl.
438
439By setting -Duseversionedarchname, the $archname will be
440distinct for architecture *and* API version, allowing mixed use of
441INSTALL_BASE.
442
443=item *
444
b9214e65
CBW
445Configure will honour the external C<MAILDOMAIN> environment variable, if set.
446
447=item *
448
8e8f9da4 449Both C<META.yml> and C<META.json> files are now included in the distribution.
19718730
AC
450
451=back
452
453=head1 Testing
454
455XXX Any significant changes to the testing of a freshly built perl should be
456listed here. Changes which create B<new> files in F<t/> go here as do any
457large changes to the testing harness (e.g. when parallel testing was added).
458Changes to existing files in F<t/> aren't worth summarizing, although the bugs
459that they represent may be covered elsewhere.
460
461[ List each test improvement as a =item entry ]
462
463=over 4
e14ac59b 464
fdea6f98
FC
465=item *
466
b9214e65
CBW
467Enable perl core tests to pass when locale support is not available.
468
469use L<locale> - this will now die if $Config{d_setlocale} is not true.
470All tests that use L<locale> will skip if $Config{d_setlocale} is not true.
471This enables us to pass tests on Android which uses ICU instead of locales.
fdea6f98 472
6253ee75 473=back
7cf3104f 474
6253ee75 475=head1 Platform Support
7cf3104f 476
19718730
AC
477XXX Any changes to platform support should be listed in the sections below.
478
479[ Within the sections, list each platform as a =item entry with specific
480changes as paragraphs below it. ]
481
482=head2 New Platforms
483
484XXX List any platforms that this version of perl compiles on, that previous
485versions did not. These will either be enabled by new files in the F<hints/>
486directories, or new subdirectories and F<README> files at the top level of the
487source tree.
a0e45bac 488
6253ee75 489=over 4
139353f8 490
19718730 491=item XXX-some-platform
139353f8 492
19718730 493XXX
ba535ffe 494
6253ee75 495=back
ba535ffe 496
19718730
AC
497=head2 Discontinued Platforms
498
499XXX List any platforms that this version of perl no longer compiles on.
52c09c59 500
6253ee75 501=over 4
12b847a2 502
19718730
AC
503=item XXX-some-platform
504
505XXX
12b847a2 506
19718730
AC
507=back
508
509=head2 Platform-Specific Notes
510
511XXX List any changes for specific platforms. This could include configuration
512and compilation changes or changes in portability/compatibility. However,
513changes within modules for platforms should generally be listed in the
514L</Modules and Pragmata> section.
515
516=over 4
6e50262c 517
480c6724 518=item VMS
6e50262c 519
480c6724
CB
520The character set for Extended Filename Syntax (EFS) is now enabled by default on
521VMS. Among other things, this provides better handling of dots in directory names,
522multiple dots in filenames,and spaces in filenames. To obtain the old behavior,
523set the logical name C<DECC$EFS_CHARSET> to C<DISABLE>.
785fb813 524
0e55f0d7 525=back
785fb813 526
0e55f0d7 527=head1 Internal Changes
f5778209 528
19718730
AC
529XXX Changes which affect the interface available to C<XS> code go here. Other
530significant internal changes for future core maintainers should be noted as
531well.
532
533[ List each change as a =item entry ]
534
6253ee75 535=over 4
f5778209 536
216cf7fc
DR
537=item *
538
12719193
KW
539Synonyms for the misleadingly named C<av_len()> has been created:
540C<av_top_index()> and C<av_tindex>. All three of these return the
541number of the highest index in the array, not the number of elements it
542contains. (The name C<av_top> which was introduced in Perl v.5.17.8 has
543been removed.)
544
19718730 545XXX
216cf7fc 546
6253ee75 547=back
216cf7fc 548
6253ee75 549=head1 Selected Bug Fixes
216cf7fc 550
19718730
AC
551XXX Important bug fixes in the core language are summarized here. Bug fixes in
552files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
216cf7fc 553
19718730 554[ List each fix as a =item entry ]
216cf7fc 555
19718730 556=over 4
216cf7fc 557
d76c0f4b
RS
558=item *
559
58cbf594
TC
560-DPERL_GLOBAL_STRUCT builds now free the global struct B<after>
561they've finished using it.
d76c0f4b 562
b9214e65
CBW
563=item *
564
565A trailing '/' on a path in @INC will no longer have an additional '/' appended.
566
6253ee75 567=back
6c042f06 568
6253ee75 569=head1 Known Problems
6c042f06 570
19718730
AC
571XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
572tests that had to be C<TODO>ed for the release would be noted here. Unfixed
573platform specific bugs also go here.
3cf48cac 574
19718730 575[ List each fix as a =item entry ]
3cf48cac 576
19718730 577=over 4
05bee12a 578
100e3bc8
AC
579=item *
580
19718730 581XXX
100e3bc8 582
6253ee75 583=back
f5b73711 584
19718730 585=head1 Obituary
f5b73711 586
19718730
AC
587XXX If any significant core contributor has died, we've added a short obituary
588here.
0e55f0d7 589
19718730 590=head1 Acknowledgements
f5b73711 591
19718730 592XXX Generate this with:
f5b73711 593
19718730 594 perl Porting/acknowledgements.pl v5.17.8..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
600http://rt.perl.org/perlbug/ . There may also be information at
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