This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
ExtUtils::ParseXS: Rmv impediment to compiling under C++11
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
a09f502b
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.25.7
eabfc7bc 9
2cfe9b50 10=head1 DESCRIPTION
eabfc7bc 11
a09f502b 12This document describes differences between the 5.25.6 release and the 5.25.7
4b8803f0 13release.
f3ed8cbf 14
a09f502b
AC
15If you are upgrading from an earlier release such as 5.25.5, first read
16L<perl5256delta>, which describes differences between 5.25.5 and 5.25.6.
262514fd 17
a09f502b 18=head1 Notice
262514fd 19
a09f502b 20XXX Any important notices here
262514fd 21
a09f502b 22=head1 Core Enhancements
ce6646d7 23
a09f502b
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.
ce6646d7 27
a09f502b 28[ List each enhancement as a =head2 entry ]
96f085e1 29
894226fa
MH
30=head2 Indented Here-documents
31
32This adds a new modifier '~' to here-docs that tells the parser
33that it should look for /^\s*$DELIM\n/ as the closing delimiter.
34
35These syntaxes are all supported:
36
37 <<~EOF;
38 <<~\EOF;
39 <<~'EOF';
40 <<~"EOF";
41 <<~`EOF`;
42 <<~ 'EOF';
43 <<~ "EOF";
44 <<~ `EOF`;
45
46The '~' modifier will strip, from each line in the here-doc, the
47same whitespace that appears before the delimiter.
48
49Newlines will be copied as is, and lines that don't include the
50proper beginning whitespace will cause perl to croak.
51
52For example:
53
54 if (1) {
55 print <<~EOF;
56 Hello there
57 EOF
58 }
59
60prints "Hello there\n" with no leading whitespace.
61
a09f502b 62=head1 Security
2f8fe46a 63
a09f502b
AC
64XXX Any security-related notices go here. In particular, any security
65vulnerabilities closed should be noted here rather than in the
66L</Selected Bug Fixes> section.
ce6646d7 67
a09f502b 68[ List each security issue as a =head2 entry ]
2c4879e2 69
a09f502b 70=head1 Incompatible Changes
2c4879e2 71
a09f502b 72XXX For a release on a stable branch, this section aspires to be:
1608ed20 73
a09f502b
AC
74 There are no changes intentionally incompatible with 5.XXX.XXX
75 If any exist, they are bugs, and we request that you submit a
76 report. See L</Reporting Bugs> below.
262514fd 77
a09f502b 78[ List each incompatible change as a =head2 entry ]
1608ed20 79
a09f502b 80=head1 Deprecations
1608ed20 81
a09f502b 82XXX Any deprecated features, syntax, modules etc. should be listed here.
1608ed20 83
a09f502b 84=head2 Module removals
1608ed20 85
a09f502b 86XXX Remove this section if inapplicable.
262514fd 87
a09f502b
AC
88The following modules will be removed from the core distribution in a
89future release, and will at that time need to be installed from CPAN.
90Distributions on CPAN which require these modules will need to list them as
91prerequisites.
226eba01 92
a09f502b
AC
93The core versions of these modules will now issue C<"deprecated">-category
94warnings to alert you to this fact. To silence these deprecation warnings,
95install the modules in question from CPAN.
226eba01 96
a09f502b
AC
97Note that these are (with rare exceptions) fine modules that you are encouraged
98to continue to use. Their disinclusion from core primarily hinges on their
99necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
100not usually on concerns over their design.
1608ed20 101
a09f502b 102=over
1608ed20 103
a09f502b 104=item XXX
bd5630ab 105
a09f502b
AC
106XXX Note that deprecated modules should be listed here even if they are listed
107as an updated module in the L</Modules and Pragmata> section.
bd5630ab 108
a09f502b 109=back
1608ed20 110
a09f502b 111[ List each other deprecation as a =head2 entry ]
ce6646d7 112
a09f502b 113=head1 Performance Enhancements
ce6646d7 114
a09f502b
AC
115XXX Changes which enhance performance without changing behaviour go here.
116There may well be none in a stable release.
226eba01 117
a09f502b 118[ List each enhancement as a =item entry ]
226eba01 119
a09f502b 120=over 4
c0ea3294 121
96f085e1 122=item *
ce6646d7 123
2f4cbc09
DM
124Array and hash assignment are now faster, e.g.
125
126 (..., @a) = (...);
127 (..., %h) = (...);
128
129especially when the RHS is empty.
226eba01 130
a09f502b 131=back
226eba01 132
a09f502b 133=head1 Modules and Pragmata
226eba01 134
a09f502b
AC
135XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
136go here. If Module::CoreList is updated, generate an initial draft of the
137following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
138for important changes should then be added by hand. In an ideal world,
139dual-life modules would have a F<Changes> file that could be cribbed.
226eba01 140
a09f502b 141[ Within each section, list entries as a =item entry ]
226eba01 142
a09f502b 143=head2 New Modules and Pragmata
226eba01 144
a09f502b 145=over 4
226eba01
AC
146
147=item *
148
a09f502b 149XXX
226eba01 150
a09f502b 151=back
226eba01 152
a09f502b 153=head2 Updated Modules and Pragmata
226eba01 154
a09f502b 155=over 4
226eba01
AC
156
157=item *
158
a09f502b 159L<XXX> has been upgraded from version A.xx to B.yy.
226eba01 160
a09f502b 161=back
226eba01 162
a09f502b
AC
163=head2 Removed Modules and Pragmata
164
165=over 4
226eba01
AC
166
167=item *
168
a09f502b 169XXX
226eba01 170
a09f502b 171=back
226eba01 172
a09f502b 173=head1 Documentation
226eba01 174
a09f502b
AC
175XXX Changes to files in F<pod/> go here. Consider grouping entries by
176file and be sure to link to the appropriate page, e.g. L<perlfunc>.
226eba01 177
a09f502b 178=head2 New Documentation
226eba01 179
a09f502b 180XXX Changes which create B<new> files in F<pod/> go here.
226eba01 181
a09f502b 182=head3 L<XXX>
226eba01 183
a09f502b 184XXX Description of the purpose of the new file here
226eba01 185
a09f502b 186=head2 Changes to Existing Documentation
226eba01 187
a09f502b
AC
188XXX Changes which significantly change existing files in F<pod/> go here.
189However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
190section.
226eba01 191
a75f6a0b 192=head3 L<perlobj>
226eba01 193
a09f502b 194=over 4
226eba01
AC
195
196=item *
197
a75f6a0b 198Added a section on calling methods using their fully qualified names.
ce6646d7 199
be293293 200=back
8c3f6b0b 201
262514fd
SL
202=head1 Diagnostics
203
204The following additions or changes have been made to diagnostic output,
205including warnings and fatal error messages. For the complete list of
206diagnostic messages, see L<perldiag>.
207
a09f502b
AC
208XXX New or changed warnings emitted by the core's C<C> code go here. Also
209include any changes in L<perldiag> that reconcile it to the C<C> code.
210
262514fd
SL
211=head2 New Diagnostics
212
a09f502b
AC
213XXX Newly added diagnostic messages go under here, separated into New Errors
214and New Warnings
215
262514fd 216=head3 New Errors
96f085e1 217
efdbe372 218=over 4
bf1007bc 219
96f085e1 220=item *
bf1007bc 221
a09f502b 222XXX L<message|perldiag/"message">
0302547a 223
228bfab9 224=back
18940b1f 225
a09f502b 226=head3 New Warnings
483efd0a 227
262514fd 228=over 4
483efd0a 229
2c4879e2
SL
230=item *
231
a09f502b
AC
232XXX L<message|perldiag/"message">
233
234=back
235
236=head2 Changes to Existing Diagnostics
237
238XXX Changes (i.e. rewording) of diagnostic messages go here
239
240=over 4
2c4879e2 241
bd5630ab
AC
242=item *
243
a09f502b 244XXX Describe change here
bd5630ab 245
2c4879e2
SL
246=back
247
a09f502b
AC
248=head1 Utility Changes
249
250XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
251Most of these are built within the directory F<utils>.
252
253[ List utility changes as a =head2 entry for each utility and =item
254entries for each change
255Use L<XXX> with program names to get proper documentation linking. ]
256
257=head2 L<XXX>
866373cb 258
be293293 259=over 4
d5dece5d 260
7c26c031
FC
261=item *
262
a09f502b 263XXX
07cfdfcc 264
262514fd 265=back
2c4879e2 266
a09f502b
AC
267=head1 Configuration and Compilation
268
269XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
270go here. Any other changes to the Perl build process should be listed here.
271However, any platform-specific changes should be listed in the
272L</Platform Support> section, instead.
273
274[ List changes as a =item entry ].
2c4879e2 275
be293293 276=over 4
4b99cb86 277
c61c589c
FC
278=item *
279
a09f502b
AC
280XXX
281
282=back
283
284=head1 Testing
285
286XXX Any significant changes to the testing of a freshly built perl should be
287listed here. Changes which create B<new> files in F<t/> go here as do any
288large changes to the testing harness (e.g. when parallel testing was added).
289Changes to existing files in F<t/> aren't worth summarizing, although the bugs
290that they represent may be covered elsewhere.
7d897bd0 291
a09f502b
AC
292[ List each test improvement as a =item entry ]
293
294=over 4
a6a32e96
AC
295
296=item *
297
a09f502b 298XXX
a6a32e96 299
262514fd 300=back
046a081f 301
262514fd 302=head1 Platform Support
046a081f 303
a09f502b
AC
304XXX Any changes to platform support should be listed in the sections below.
305
306[ Within the sections, list each platform as a =item entry with specific
307changes as paragraphs below it. ]
308
262514fd 309=head2 New Platforms
190c14e6 310
a09f502b
AC
311XXX List any platforms that this version of perl compiles on, that previous
312versions did not. These will either be enabled by new files in the F<hints/>
313directories, or new subdirectories and F<README> files at the top level of the
314source tree.
315
262514fd 316=over 4
abd589f7 317
a09f502b 318=item XXX-some-platform
abd589f7 319
a09f502b 320XXX
2c4879e2 321
262514fd 322=back
2c4879e2 323
a09f502b
AC
324=head2 Discontinued Platforms
325
326XXX List any platforms that this version of perl no longer compiles on.
1608ed20 327
262514fd 328=over 4
1608ed20 329
a09f502b 330=item XXX-some-platform
1608ed20 331
a09f502b 332XXX
262514fd 333
a09f502b 334=back
2b5e7bc2 335
a09f502b 336=head2 Platform-Specific Notes
2b5e7bc2 337
a09f502b
AC
338XXX List any changes for specific platforms. This could include configuration
339and compilation changes or changes in portability/compatibility. However,
340changes within modules for platforms should generally be listed in the
341L</Modules and Pragmata> section.
f9380377 342
a09f502b 343=over 4
f9380377 344
a09f502b 345=item XXX-some-platform
bd5630ab 346
a09f502b 347XXX
bd5630ab 348
a09f502b 349=back
bd5630ab 350
a09f502b 351=head1 Internal Changes
a6a32e96 352
a09f502b
AC
353XXX Changes which affect the interface available to C<XS> code go here. Other
354significant internal changes for future core maintainers should be noted as
355well.
a6a32e96 356
a09f502b
AC
357[ List each change as a =item entry ]
358
359=over 4
a6a32e96
AC
360
361=item *
362
a09f502b 363XXX
bd5630ab 364
a09f502b 365=back
a6a32e96 366
a09f502b 367=head1 Selected Bug Fixes
a6a32e96 368
a09f502b
AC
369XXX Important bug fixes in the core language are summarized here. Bug fixes in
370files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
a6a32e96 371
a09f502b
AC
372[ List each fix as a =item entry ]
373
374=over 4
a6a32e96
AC
375
376=item *
377
2f4cbc09
DM
378List assignment in list context where the LHS contained aggregates and
379where there were not enough RHS elements, used to skip scalar lvalues.
380Previously, C<(($a,$b,@c,$d) = (1))> in list context returned C<($a)>; now
381it returns C<($a,$b,$d)>. C<(($a,$b,$c) = (1))> is unchanged: it still
382returns <($a,$b,$c)>. This can be seen in the following:
383
384 sub inc { $_++ for @_ }
385 inc(($a,$b,@c,$d) = (10))
386
387Formerly, the values of C<($a,$b,$d)> would be left as C<(11,undef,undef)>;
388now they are C<(11,1,1)>.
a6a32e96 389
262514fd
SL
390=back
391
a09f502b 392=head1 Known Problems
262514fd 393
a09f502b
AC
394XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
395tests that had to be C<TODO>ed for the release would be noted here. Unfixed
396platform specific bugs also go here.
1608ed20 397
a09f502b 398[ List each fix as a =item entry ]
1608ed20 399
a09f502b 400=over 4
262514fd 401
bd5630ab
AC
402=item *
403
a09f502b 404XXX
bd5630ab 405
a09f502b 406=back
bd5630ab 407
a09f502b 408=head1 Errata From Previous Releases
a6a32e96 409
a09f502b 410=over 4
a6a32e96
AC
411
412=item *
413
a09f502b
AC
414XXX Add anything here that we forgot to add, or were mistaken about, in
415the perldelta of a previous release.
a6a32e96 416
262514fd
SL
417=back
418
a09f502b 419=head1 Obituary
226eba01 420
a09f502b
AC
421XXX If any significant core contributor has died, we've added a short obituary
422here.
226eba01 423
a09f502b 424=head1 Acknowledgements
226eba01 425
a09f502b 426XXX Generate this with:
24528e8e 427
a09f502b 428 perl Porting/acknowledgements.pl v5.25.5..HEAD
f5b73711 429
44691e6f
AB
430=head1 Reporting Bugs
431
c0ea3294
SH
432If you find what you think is a bug, you might check the perl bug database
433at L<https://rt.perl.org/> . There may also be information at
4b8803f0 434L<http://www.perl.org/> , the Perl Home Page.
44691e6f 435
e08634c5
SH
436If you believe you have an unreported bug, please run the L<perlbug> program
437included with your release. Be sure to trim your bug down to a tiny but
438sufficient test case. Your bug report, along with the output of C<perl -V>,
439will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f 440
87c118b9
DM
441If the bug you are reporting has security implications which make it
442inappropriate to send to a publicly archived mailing list, then see
c0ea3294
SH
443L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
444for details of how to report the issue.
44691e6f
AB
445
446=head1 SEE ALSO
447
e08634c5
SH
448The F<Changes> file for an explanation of how to view exhaustive details on
449what changed.
44691e6f
AB
450
451The F<INSTALL> file for how to build Perl.
452
453The F<README> file for general stuff.
454
455The F<Artistic> and F<Copying> files for copyright information.
456
457=cut