This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
charnames.pm: Nit in pod
[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
335=head3 L<XXX>
336
337=over 4
dd4b1c75
AC
338
339=item *
340
19718730 341XXX Description of the change here
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
19718730
AC
387XXX Describe change here
388
389=back
390
391=head1 Utility Changes
392
393XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
394Most of these are built within the directories F<utils> and F<x2p>.
395
396[ List utility changes as a =head3 entry for each utility and =item
397entries for each change
398Use L<XXX> with program names to get proper documentation linking. ]
399
5bf072ac 400=head3 L<corelist>
19718730
AC
401
402=over 4
e078d89d
FC
403
404=item *
405
5bf072ac
CBW
406Added C<--feature> switch which lists the first version bundle of each
407named feature given.
e078d89d 408
6253ee75 409=back
e078d89d 410
19718730
AC
411=head1 Configuration and Compilation
412
413XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
414go here. Any other changes to the Perl build process should be listed here.
415However, any platform-specific changes should be listed in the
416L</Platform Support> section, instead.
417
418[ List changes as a =item entry ].
e078d89d 419
6253ee75 420=over 4
e078d89d 421
b7c7d786
FC
422=item *
423
d2d1e842
CBW
424Added C<useversionedarchname> option to Configure
425
426When set, it includes 'api_versionstring' in 'archname'. E.g.
427x86_64-linux-5.13.6-thread-multi. It is unset by default.
428
429This feature was requested by Tim Bunce, who observed that
430INSTALL_BASE creates a library structure that does not
431differentiate by perl version. Instead, it places architecture
432specific files in "$install_base/lib/perl5/$archname". This makes
433it difficult to use a common INSTALL_BASE library path with
434multiple versions of perl.
435
436By setting -Duseversionedarchname, the $archname will be
437distinct for architecture *and* API version, allowing mixed use of
438INSTALL_BASE.
439
440=item *
441
8e8f9da4 442Both C<META.yml> and C<META.json> files are now included in the distribution.
19718730
AC
443
444=back
445
446=head1 Testing
447
448XXX Any significant changes to the testing of a freshly built perl should be
449listed here. Changes which create B<new> files in F<t/> go here as do any
450large changes to the testing harness (e.g. when parallel testing was added).
451Changes to existing files in F<t/> aren't worth summarizing, although the bugs
452that they represent may be covered elsewhere.
453
454[ List each test improvement as a =item entry ]
455
456=over 4
e14ac59b 457
fdea6f98
FC
458=item *
459
19718730 460XXX
fdea6f98 461
6253ee75 462=back
7cf3104f 463
6253ee75 464=head1 Platform Support
7cf3104f 465
19718730
AC
466XXX Any changes to platform support should be listed in the sections below.
467
468[ Within the sections, list each platform as a =item entry with specific
469changes as paragraphs below it. ]
470
471=head2 New Platforms
472
473XXX List any platforms that this version of perl compiles on, that previous
474versions did not. These will either be enabled by new files in the F<hints/>
475directories, or new subdirectories and F<README> files at the top level of the
476source tree.
a0e45bac 477
6253ee75 478=over 4
139353f8 479
19718730 480=item XXX-some-platform
139353f8 481
19718730 482XXX
ba535ffe 483
6253ee75 484=back
ba535ffe 485
19718730
AC
486=head2 Discontinued Platforms
487
488XXX List any platforms that this version of perl no longer compiles on.
52c09c59 489
6253ee75 490=over 4
12b847a2 491
19718730
AC
492=item XXX-some-platform
493
494XXX
12b847a2 495
19718730
AC
496=back
497
498=head2 Platform-Specific Notes
499
500XXX List any changes for specific platforms. This could include configuration
501and compilation changes or changes in portability/compatibility. However,
502changes within modules for platforms should generally be listed in the
503L</Modules and Pragmata> section.
504
505=over 4
6e50262c 506
19718730 507=item XXX-some-platform
6e50262c 508
19718730 509XXX
785fb813 510
0e55f0d7 511=back
785fb813 512
0e55f0d7 513=head1 Internal Changes
f5778209 514
19718730
AC
515XXX Changes which affect the interface available to C<XS> code go here. Other
516significant internal changes for future core maintainers should be noted as
517well.
518
519[ List each change as a =item entry ]
520
6253ee75 521=over 4
f5778209 522
216cf7fc
DR
523=item *
524
12719193
KW
525Synonyms for the misleadingly named C<av_len()> has been created:
526C<av_top_index()> and C<av_tindex>. All three of these return the
527number of the highest index in the array, not the number of elements it
528contains. (The name C<av_top> which was introduced in Perl v.5.17.8 has
529been removed.)
530
19718730 531XXX
216cf7fc 532
6253ee75 533=back
216cf7fc 534
6253ee75 535=head1 Selected Bug Fixes
216cf7fc 536
19718730
AC
537XXX Important bug fixes in the core language are summarized here. Bug fixes in
538files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
216cf7fc 539
19718730 540[ List each fix as a =item entry ]
216cf7fc 541
19718730 542=over 4
216cf7fc 543
d76c0f4b
RS
544=item *
545
58cbf594
TC
546-DPERL_GLOBAL_STRUCT builds now free the global struct B<after>
547they've finished using it.
d76c0f4b 548
6253ee75 549=back
6c042f06 550
6253ee75 551=head1 Known Problems
6c042f06 552
19718730
AC
553XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
554tests that had to be C<TODO>ed for the release would be noted here. Unfixed
555platform specific bugs also go here.
3cf48cac 556
19718730 557[ List each fix as a =item entry ]
3cf48cac 558
19718730 559=over 4
05bee12a 560
100e3bc8
AC
561=item *
562
19718730 563XXX
100e3bc8 564
6253ee75 565=back
f5b73711 566
19718730 567=head1 Obituary
f5b73711 568
19718730
AC
569XXX If any significant core contributor has died, we've added a short obituary
570here.
0e55f0d7 571
19718730 572=head1 Acknowledgements
f5b73711 573
19718730 574XXX Generate this with:
f5b73711 575
19718730 576 perl Porting/acknowledgements.pl v5.17.8..HEAD
f5b73711 577
44691e6f
AB
578=head1 Reporting Bugs
579
e08634c5
SH
580If you find what you think is a bug, you might check the articles recently
581posted to the comp.lang.perl.misc newsgroup and the perl bug database at
582http://rt.perl.org/perlbug/ . There may also be information at
583http://www.perl.org/ , the Perl Home Page.
44691e6f 584
e08634c5
SH
585If you believe you have an unreported bug, please run the L<perlbug> program
586included with your release. Be sure to trim your bug down to a tiny but
587sufficient test case. Your bug report, along with the output of C<perl -V>,
588will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
589
590If the bug you are reporting has security implications, which make it
e08634c5
SH
591inappropriate to send to a publicly archived mailing list, then please send it
592to perl5-security-report@perl.org. This points to a closed subscription
593unarchived mailing list, which includes all the core committers, who will be
594able to help assess the impact of issues, figure out a resolution, and help
f9001595 595co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
596platforms on which Perl is supported. Please only use this address for
597security issues in the Perl core, not for modules independently distributed on
598CPAN.
44691e6f
AB
599
600=head1 SEE ALSO
601
e08634c5
SH
602The F<Changes> file for an explanation of how to view exhaustive details on
603what changed.
44691e6f
AB
604
605The F<INSTALL> file for how to build Perl.
606
607The F<README> file for general stuff.
608
609The F<Artistic> and F<Copying> files for copyright information.
610
611=cut