This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
remove unused CXp_FOR_DEF and OPpITER_DEF
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
25219f3f
KE
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.27.7
89853d76 9
b5cbfe35 10=head1 DESCRIPTION
89853d76 11
25219f3f 12This document describes differences between the 5.27.6 release and the 5.27.7
b5cbfe35 13release.
89853d76 14
25219f3f
KE
15If you are upgrading from an earlier release such as 5.27.5, first read
16L<perl5276delta>, which describes differences between 5.27.5 and 5.27.6.
e6a2e5ca 17
25219f3f 18=head1 Notice
e6a2e5ca 19
25219f3f 20XXX Any important notices here
f99042c8 21
25219f3f 22=head1 Core Enhancements
f99042c8 23
25219f3f
KE
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.
2e8ea15a 27
25219f3f 28[ List each enhancement as a =head2 entry ]
2e8ea15a 29
25219f3f 30=head1 Security
e6a2e5ca 31
25219f3f
KE
32XXX Any security-related notices go here. In particular, any security
33vulnerabilities closed should be noted here rather than in the
34L</Selected Bug Fixes> section.
29d69c3c 35
25219f3f 36[ List each security issue as a =head2 entry ]
29d69c3c 37
25219f3f 38=head1 Incompatible Changes
29d69c3c 39
25219f3f 40XXX For a release on a stable branch, this section aspires to be:
29d69c3c 41
25219f3f
KE
42 There are no changes intentionally incompatible with 5.XXX.XXX
43 If any exist, they are bugs, and we request that you submit a
44 report. See L</Reporting Bugs> below.
7d65f652 45
25219f3f 46[ List each incompatible change as a =head2 entry ]
7d65f652 47
9e0909b2
Z
48=head2 Smartmatch and switch simplification
49
50The experimental smart match operator (C<~~>) and switch
51(C<given>/C<when>) constructs have been drastically simplified, in a
52way that will require most uses of them to be updated.
53
54The smart match operator no longer has its large table of matching rules.
55Instead there is just one rule: the right-hand operand must overload
56the operator. Overloaded objects now bear the entire responsibility
57for determining what kind of match to perform. The operator also no
58longer implicitly enreferences certain kinds of operand (such as arrays);
59instead the operands get regular scalar context.
60
61The C<when> construct no longer has its complicated rules about how to
62treat its argument. It now always uses the argument as a truth value;
63it never implicitly smart matches. Like the smart match operator,
64it also no longer implicitly enreferences certain kinds of argument,
65instead supplying regular scalar context.
66
67The C<given> construct also no longer implicitly enreferences certain
68kinds of arguments, instead supplying regular scalar context. In this
69case, the implicit enreferencement was undocumented anyway.
70
71It is known that these changes will break some users of L<autodie>,
72the documentation of which has long recommended some uses of these
73experimental features that are not portable across these changes.
74
25219f3f 75=head1 Deprecations
7d65f652 76
25219f3f 77XXX Any deprecated features, syntax, modules etc. should be listed here.
7d65f652 78
25219f3f 79=head2 Module removals
4c46c124 80
25219f3f 81XXX Remove this section if not applicable.
7d65f652 82
25219f3f
KE
83The following modules will be removed from the core distribution in a
84future release, and will at that time need to be installed from CPAN.
85Distributions on CPAN which require these modules will need to list them as
86prerequisites.
e2091bb6 87
25219f3f
KE
88The core versions of these modules will now issue C<"deprecated">-category
89warnings to alert you to this fact. To silence these deprecation warnings,
90install the modules in question from CPAN.
a8ba758d 91
25219f3f
KE
92Note that these are (with rare exceptions) fine modules that you are encouraged
93to continue to use. Their disinclusion from core primarily hinges on their
94necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
95not usually on concerns over their design.
cf663f87 96
25219f3f 97=over
1b510166 98
25219f3f 99=item XXX
1b510166 100
25219f3f
KE
101XXX Note that deprecated modules should be listed here even if they are listed
102as an updated module in the L</Modules and Pragmata> section.
8ed1839e 103
25219f3f 104=back
8ed1839e 105
25219f3f 106[ List each other deprecation as a =head2 entry ]
8ed1839e 107
25219f3f 108=head1 Performance Enhancements
8ed1839e 109
25219f3f
KE
110XXX Changes which enhance performance without changing behaviour go here.
111There may well be none in a stable release.
8ed1839e 112
25219f3f 113[ List each enhancement as an =item entry ]
8ed1839e 114
25219f3f 115=over 4
d912eab8 116
7d65f652
FC
117=item *
118
25219f3f 119XXX
7d65f652 120
c83a3d01 121=back
d912eab8 122
c83a3d01 123=head1 Modules and Pragmata
af94b3ac 124
25219f3f
KE
125XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
126go here. If Module::CoreList is updated, generate an initial draft of the
127following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
128for important changes should then be added by hand. In an ideal world,
129dual-life modules would have a F<Changes> file that could be cribbed.
9b78f210 130
25219f3f
KE
131The list of new and updated modules is modified automatically as part of
132preparing a Perl release, so the only reason to manually add entries here is if
133you're summarising the important changes in the module update. (Also, if the
134manually-added details don't match the automatically-generated ones, the
135release manager will have to investigate the situation carefully.)
9b78f210 136
25219f3f 137[ Within each section, list entries as an =item entry ]
1218f5ba 138
25219f3f 139=head2 New Modules and Pragmata
e6a2e5ca
SH
140
141=over 4
64b9a139
SH
142
143=item *
144
25219f3f 145XXX Remove this section if not applicable.
b2a6778b 146
25219f3f 147=back
b2a6778b 148
25219f3f 149=head2 Updated Modules and Pragmata
b2a6778b 150
25219f3f 151=over 4
b2a6778b
KE
152
153=item *
154
25219f3f 155L<XXX> has been upgraded from version A.xx to B.yy.
b2a6778b 156
25219f3f 157If there was something important to note about this change, include that here.
b2a6778b 158
25219f3f 159=back
b2a6778b 160
25219f3f 161=head2 Removed Modules and Pragmata
b2a6778b 162
25219f3f 163=over 4
b2a6778b
KE
164
165=item *
166
25219f3f 167XXX
ad3f654c 168
25219f3f 169=back
7358a033 170
25219f3f 171=head1 Documentation
64b9a139 172
25219f3f
KE
173XXX Changes to files in F<pod/> go here. Consider grouping entries by
174file and be sure to link to the appropriate page, e.g. L<perlfunc>.
e6a2e5ca 175
25219f3f 176=head2 New Documentation
b2a6778b 177
25219f3f 178XXX Changes which create B<new> files in F<pod/> go here.
b2a6778b 179
25219f3f 180=head3 L<XXX>
b2a6778b 181
25219f3f 182XXX Description of the purpose of the new file here
b2a6778b 183
25219f3f 184=head2 Changes to Existing Documentation
b2a6778b 185
25219f3f
KE
186We have attempted to update the documentation to reflect the changes
187listed in this document. If you find any we have missed, send email
188to L<perlbug@perl.org|mailto:perlbug@perl.org>.
b2a6778b 189
25219f3f
KE
190XXX Changes which significantly change existing files in F<pod/> go here.
191However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
192section.
b2a6778b 193
25219f3f 194Additionally, the following selected changes have been made:
b2a6778b 195
25219f3f 196=head3 L<XXX>
b2a6778b 197
25219f3f 198=over 4
b2a6778b
KE
199
200=item *
201
25219f3f 202XXX Description of the change here
b2a6778b 203
25219f3f 204=back
b2a6778b 205
25219f3f 206=head1 Diagnostics
b2a6778b 207
25219f3f
KE
208The following additions or changes have been made to diagnostic output,
209including warnings and fatal error messages. For the complete list of
210diagnostic messages, see L<perldiag>.
b2a6778b 211
25219f3f
KE
212XXX New or changed warnings emitted by the core's C<C> code go here. Also
213include any changes in L<perldiag> that reconcile it to the C<C> code.
b2a6778b 214
25219f3f 215=head2 New Diagnostics
b2a6778b 216
25219f3f
KE
217XXX Newly added diagnostic messages go under here, separated into New Errors
218and New Warnings
b2a6778b 219
25219f3f 220=head3 New Errors
b2a6778b 221
25219f3f 222=over 4
b2a6778b
KE
223
224=item *
225
25219f3f 226XXX L<message|perldiag/"message">
b2a6778b 227
25219f3f 228=back
b2a6778b 229
25219f3f 230=head3 New Warnings
b2a6778b 231
25219f3f 232=over 4
64b9a139
SH
233
234=item *
235
25219f3f 236XXX L<message|perldiag/"message">
64b9a139 237
e6a2e5ca 238=back
64b9a139 239
25219f3f 240=head2 Changes to Existing Diagnostics
64b9a139 241
25219f3f 242XXX Changes (i.e. rewording) of diagnostic messages go here
e6a2e5ca 243
04f89ea7
Z
244=over 4
245
64b9a139
SH
246=item *
247
25219f3f 248XXX Describe change here
2b8b74b0 249
25219f3f 250=back
e509fc38 251
25219f3f 252=head1 Utility Changes
e509fc38 253
25219f3f
KE
254XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
255Most of these are built within the directory F<utils>.
64b9a139 256
25219f3f
KE
257[ List utility changes as a =head2 entry for each utility and =item
258entries for each change
259Use L<XXX> with program names to get proper documentation linking. ]
64b9a139 260
25219f3f 261=head2 L<XXX>
64b9a139 262
25219f3f 263=over 4
64b9a139
SH
264
265=item *
266
25219f3f 267XXX
64b9a139 268
e6a2e5ca
SH
269=back
270
25219f3f 271=head1 Configuration and Compilation
64b9a139 272
25219f3f
KE
273XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
274go here. Any other changes to the Perl build process should be listed here.
275However, any platform-specific changes should be listed in the
276L</Platform Support> section, instead.
e6a2e5ca 277
25219f3f 278[ List changes as an =item entry ].
64b9a139 279
e6a2e5ca 280=over 4
64b9a139
SH
281
282=item *
283
25219f3f 284XXX
f99042c8 285
e6a2e5ca
SH
286=back
287
25219f3f 288=head1 Testing
e6a2e5ca 289
25219f3f
KE
290XXX Any significant changes to the testing of a freshly built perl should be
291listed here. Changes which create B<new> files in F<t/> go here as do any
292large changes to the testing harness (e.g. when parallel testing was added).
293Changes to existing files in F<t/> aren't worth summarizing, although the bugs
294that they represent may be covered elsewhere.
e6a2e5ca 295
25219f3f 296XXX If there were no significant test changes, say this:
64b9a139 297
25219f3f
KE
298Tests were added and changed to reflect the other additions and changes
299in this release.
64b9a139 300
25219f3f 301XXX If instead there were significant changes, say this:
e6a2e5ca 302
25219f3f
KE
303Tests were added and changed to reflect the other additions and
304changes in this release. Furthermore, these significant changes were
305made:
e6a2e5ca 306
25219f3f 307[ List each test improvement as an =item entry ]
e6a2e5ca 308
e6a2e5ca 309=over 4
64b9a139 310
25219f3f 311=item *
dea26044 312
25219f3f 313XXX
dea26044 314
25219f3f 315=back
dea26044 316
25219f3f 317=head1 Platform Support
dea26044 318
25219f3f 319XXX Any changes to platform support should be listed in the sections below.
dea26044 320
25219f3f
KE
321[ Within the sections, list each platform as an =item entry with specific
322changes as paragraphs below it. ]
dea26044 323
25219f3f 324=head2 New Platforms
dea26044 325
25219f3f
KE
326XXX List any platforms that this version of perl compiles on, that previous
327versions did not. These will either be enabled by new files in the F<hints/>
328directories, or new subdirectories and F<README> files at the top level of the
329source tree.
dea26044 330
25219f3f 331=over 4
dea26044 332
25219f3f 333=item XXX-some-platform
dea26044 334
25219f3f 335XXX
dea26044
MB
336
337=back
e6a2e5ca 338
e6a2e5ca
SH
339=head2 Discontinued Platforms
340
25219f3f
KE
341XXX List any platforms that this version of perl no longer compiles on.
342
e6a2e5ca
SH
343=over 4
344
25219f3f 345=item XXX-some-platform
e6a2e5ca 346
25219f3f 347XXX
e6a2e5ca
SH
348
349=back
350
a8ba758d
JSA
351=head2 Platform-Specific Notes
352
25219f3f
KE
353XXX List any changes for specific platforms. This could include configuration
354and compilation changes or changes in portability/compatibility. However,
355changes within modules for platforms should generally be listed in the
356L</Modules and Pragmata> section.
357
a8ba758d 358=over 4
9ef07b78 359
25219f3f 360=item XXX-some-platform
a8ba758d 361
25219f3f 362XXX
a8ba758d
JSA
363
364=back
365
e6a2e5ca
SH
366=head1 Internal Changes
367
25219f3f
KE
368XXX Changes which affect the interface available to C<XS> code go here. Other
369significant internal changes for future core maintainers should be noted as
370well.
8ed1839e 371
25219f3f 372[ List each change as an =item entry ]
8ed1839e 373
25219f3f 374=over 4
a8ba758d 375
ee5287f6
LM
376=item *
377
25219f3f 378XXX
ee5287f6 379
e6a2e5ca
SH
380=back
381
382=head1 Selected Bug Fixes
383
25219f3f
KE
384XXX Important bug fixes in the core language are summarized here. Bug fixes in
385files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
a155eb05 386
25219f3f 387[ List each fix as an =item entry ]
c2bb91f9 388
25219f3f 389=over 4
e6a2e5ca 390
4faa3060
TC
391=item *
392
25219f3f 393XXX
4faa3060 394
25219f3f 395=back
4faa3060 396
25219f3f 397=head1 Known Problems
4faa3060 398
25219f3f
KE
399XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
400tests that had to be C<TODO>ed for the release would be noted here. Unfixed
401platform specific bugs also go here.
d1ac83c4 402
25219f3f 403[ List each fix as an =item entry ]
d1ac83c4 404
25219f3f 405=over 4
c4f4b223
Z
406
407=item *
408
25219f3f 409XXX
02d43d4f 410
e6a2e5ca
SH
411=back
412
e6a2e5ca
SH
413=head1 Errata From Previous Releases
414
415=over 4
8abafd33 416
e6a2e5ca
SH
417=item *
418
25219f3f
KE
419XXX Add anything here that we forgot to add, or were mistaken about, in
420the perldelta of a previous release.
8abafd33 421
e6a2e5ca 422=back
b2e49ab9 423
25219f3f 424=head1 Obituary
060724e5 425
25219f3f
KE
426XXX If any significant core contributor or member of the CPAN community has
427died, add a short obituary here.
060724e5 428
25219f3f 429=head1 Acknowledgements
060724e5 430
25219f3f 431XXX Generate this with:
060724e5 432
25219f3f 433 perl Porting/acknowledgements.pl v5.27.6..HEAD
f5b73711 434
44691e6f
AB
435=head1 Reporting Bugs
436
b5cbfe35
S
437If you find what you think is a bug, you might check the perl bug database
438at L<https://rt.perl.org/> . There may also be information at
439L<http://www.perl.org/> , the Perl Home Page.
44691e6f 440
e08634c5
SH
441If you believe you have an unreported bug, please run the L<perlbug> program
442included with your release. Be sure to trim your bug down to a tiny but
443sufficient test case. Your bug report, along with the output of C<perl -V>,
b5cbfe35 444will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f 445
87c118b9
DM
446If the bug you are reporting has security implications which make it
447inappropriate to send to a publicly archived mailing list, then see
c0ea3294
SH
448L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION>
449for details of how to report the issue.
44691e6f 450
390ae6f9
S
451=head1 Give Thanks
452
453If you wish to thank the Perl 5 Porters for the work we had done in Perl 5,
454you can do so by running the C<perlthanks> program:
455
456 perlthanks
457
458This will send an email to the Perl 5 Porters list with your show of thanks.
459
44691e6f
AB
460=head1 SEE ALSO
461
e08634c5
SH
462The F<Changes> file for an explanation of how to view exhaustive details on
463what changed.
44691e6f
AB
464
465The F<INSTALL> file for how to build Perl.
466
467The F<README> file for general stuff.
468
469The F<Artistic> and F<Copying> files for copyright information.
470
471=cut