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