This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Inline av_top_index()
[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
46205598
DG
283L<File::Temp> has been upgraded from version 0.22 to 0.22_90
284
285Fixes various bugs involving directory removal. Defers unlinking tempfiles if
286the initial unlink fails, which fixes problems on NFS.
287
288=item *
289
e58c5aaf
TC
290L<PerlIO::scalar> has been upgraded from version 0.15 to 0.16.
291
292The buffer scalar supplied may now only contain code pounts 0xFF or
293lower. [perl #109828]
7a7a10c7 294
19718730
AC
295=back
296
297=head2 Removed Modules and Pragmata
c387386a 298
19718730 299=over 4
32209f41 300
e14ac59b 301=item *
5faa50e9 302
19718730 303XXX
b7c7d786 304
6253ee75 305=back
b7c7d786 306
19718730 307=head1 Documentation
11e375e0 308
19718730
AC
309XXX Changes to files in F<pod/> go here. Consider grouping entries by
310file and be sure to link to the appropriate page, e.g. L<perlfunc>.
e498bd59 311
19718730
AC
312=head2 New Documentation
313
314XXX Changes which create B<new> files in F<pod/> go here.
e498bd59 315
19718730
AC
316=head3 L<XXX>
317
318XXX Description of the purpose of the new file here
319
320=head2 Changes to Existing Documentation
321
322XXX Changes which significantly change existing files in F<pod/> go here.
323However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
324section.
325
326=head3 L<XXX>
327
328=over 4
dd4b1c75
AC
329
330=item *
331
19718730 332XXX Description of the change here
cb077ed2 333
5d8c8c8a 334=back
5f877a7f 335
e14ac59b
RS
336=head1 Diagnostics
337
338The following additions or changes have been made to diagnostic output,
339including warnings and fatal error messages. For the complete list of
340diagnostic messages, see L<perldiag>.
1ea91bbe 341
19718730
AC
342XXX New or changed warnings emitted by the core's C<C> code go here. Also
343include any changes in L<perldiag> that reconcile it to the C<C> code.
344
6253ee75
DR
345=head2 New Diagnostics
346
19718730
AC
347XXX Newly added diagnostic messages go under here, separated into New Errors
348and New Warnings
349
350=head3 New Errors
11e375e0 351
e14ac59b 352=over 4
11e375e0
FC
353
354=item *
355
19718730
AC
356XXX L<message|perldiag/"message">
357
358=back
359
360=head3 New Warnings
361
362=over 4
5e0a247b
KW
363
364=item *
365
19718730
AC
366XXX L<message|perldiag/"message">
367
368=back
369
370=head2 Changes to Existing Diagnostics
371
372XXX Changes (i.e. rewording) of diagnostic messages go here
373
374=over 4
e14ac59b 375
6253ee75 376=item *
8b877d20 377
19718730
AC
378XXX Describe change here
379
380=back
381
382=head1 Utility Changes
383
384XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
385Most of these are built within the directories F<utils> and F<x2p>.
386
387[ List utility changes as a =head3 entry for each utility and =item
388entries for each change
389Use L<XXX> with program names to get proper documentation linking. ]
390
391=head3 L<XXX>
392
393=over 4
e078d89d
FC
394
395=item *
396
19718730 397XXX
e078d89d 398
6253ee75 399=back
e078d89d 400
19718730
AC
401=head1 Configuration and Compilation
402
403XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
404go here. Any other changes to the Perl build process should be listed here.
405However, any platform-specific changes should be listed in the
406L</Platform Support> section, instead.
407
408[ List changes as a =item entry ].
e078d89d 409
6253ee75 410=over 4
e078d89d 411
b7c7d786
FC
412=item *
413
19718730
AC
414XXX
415
416=back
417
418=head1 Testing
419
420XXX Any significant changes to the testing of a freshly built perl should be
421listed here. Changes which create B<new> files in F<t/> go here as do any
422large changes to the testing harness (e.g. when parallel testing was added).
423Changes to existing files in F<t/> aren't worth summarizing, although the bugs
424that they represent may be covered elsewhere.
425
426[ List each test improvement as a =item entry ]
427
428=over 4
e14ac59b 429
fdea6f98
FC
430=item *
431
19718730 432XXX
fdea6f98 433
6253ee75 434=back
7cf3104f 435
6253ee75 436=head1 Platform Support
7cf3104f 437
19718730
AC
438XXX Any changes to platform support should be listed in the sections below.
439
440[ Within the sections, list each platform as a =item entry with specific
441changes as paragraphs below it. ]
442
443=head2 New Platforms
444
445XXX List any platforms that this version of perl compiles on, that previous
446versions did not. These will either be enabled by new files in the F<hints/>
447directories, or new subdirectories and F<README> files at the top level of the
448source tree.
a0e45bac 449
6253ee75 450=over 4
139353f8 451
19718730 452=item XXX-some-platform
139353f8 453
19718730 454XXX
ba535ffe 455
6253ee75 456=back
ba535ffe 457
19718730
AC
458=head2 Discontinued Platforms
459
460XXX List any platforms that this version of perl no longer compiles on.
52c09c59 461
6253ee75 462=over 4
12b847a2 463
19718730
AC
464=item XXX-some-platform
465
466XXX
12b847a2 467
19718730
AC
468=back
469
470=head2 Platform-Specific Notes
471
472XXX List any changes for specific platforms. This could include configuration
473and compilation changes or changes in portability/compatibility. However,
474changes within modules for platforms should generally be listed in the
475L</Modules and Pragmata> section.
476
477=over 4
6e50262c 478
19718730 479=item XXX-some-platform
6e50262c 480
19718730 481XXX
785fb813 482
0e55f0d7 483=back
785fb813 484
0e55f0d7 485=head1 Internal Changes
f5778209 486
19718730
AC
487XXX Changes which affect the interface available to C<XS> code go here. Other
488significant internal changes for future core maintainers should be noted as
489well.
490
491[ List each change as a =item entry ]
492
6253ee75 493=over 4
f5778209 494
216cf7fc
DR
495=item *
496
19718730 497XXX
216cf7fc 498
6253ee75 499=back
216cf7fc 500
6253ee75 501=head1 Selected Bug Fixes
216cf7fc 502
19718730
AC
503XXX Important bug fixes in the core language are summarized here. Bug fixes in
504files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
216cf7fc 505
19718730 506[ List each fix as a =item entry ]
216cf7fc 507
19718730 508=over 4
216cf7fc 509
d76c0f4b
RS
510=item *
511
58cbf594
TC
512-DPERL_GLOBAL_STRUCT builds now free the global struct B<after>
513they've finished using it.
d76c0f4b 514
6253ee75 515=back
6c042f06 516
6253ee75 517=head1 Known Problems
6c042f06 518
19718730
AC
519XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
520tests that had to be C<TODO>ed for the release would be noted here. Unfixed
521platform specific bugs also go here.
3cf48cac 522
19718730 523[ List each fix as a =item entry ]
3cf48cac 524
19718730 525=over 4
05bee12a 526
100e3bc8
AC
527=item *
528
19718730 529XXX
100e3bc8 530
6253ee75 531=back
f5b73711 532
19718730 533=head1 Obituary
f5b73711 534
19718730
AC
535XXX If any significant core contributor has died, we've added a short obituary
536here.
0e55f0d7 537
19718730 538=head1 Acknowledgements
f5b73711 539
19718730 540XXX Generate this with:
f5b73711 541
19718730 542 perl Porting/acknowledgements.pl v5.17.8..HEAD
f5b73711 543
44691e6f
AB
544=head1 Reporting Bugs
545
e08634c5
SH
546If you find what you think is a bug, you might check the articles recently
547posted to the comp.lang.perl.misc newsgroup and the perl bug database at
548http://rt.perl.org/perlbug/ . There may also be information at
549http://www.perl.org/ , the Perl Home Page.
44691e6f 550
e08634c5
SH
551If you believe you have an unreported bug, please run the L<perlbug> program
552included with your release. Be sure to trim your bug down to a tiny but
553sufficient test case. Your bug report, along with the output of C<perl -V>,
554will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
555
556If the bug you are reporting has security implications, which make it
e08634c5
SH
557inappropriate to send to a publicly archived mailing list, then please send it
558to perl5-security-report@perl.org. This points to a closed subscription
559unarchived mailing list, which includes all the core committers, who will be
560able to help assess the impact of issues, figure out a resolution, and help
f9001595 561co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
562platforms on which Perl is supported. Please only use this address for
563security issues in the Perl core, not for modules independently distributed on
564CPAN.
44691e6f
AB
565
566=head1 SEE ALSO
567
e08634c5
SH
568The F<Changes> file for an explanation of how to view exhaustive details on
569what changed.
44691e6f
AB
570
571The F<INSTALL> file for how to build Perl.
572
573The F<README> file for general stuff.
574
575The F<Artistic> and F<Copying> files for copyright information.
576
577=cut