This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perly.y: Don’t call op_lvalue on refgen kid
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
b5d4d3b9
MM
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.21.8
c68523cb 9
238894db 10=head1 DESCRIPTION
c68523cb 11
b5d4d3b9 12This document describes differences between the 5.21.7 release and the 5.21.8
238894db 13release.
c68523cb 14
b5d4d3b9
MM
15If you are upgrading from an earlier release such as 5.21.6, first read
16L<perl5217delta>, which describes differences between 5.21.6 and 5.21.7.
2ec11c70 17
b5d4d3b9 18=head1 Notice
2ec11c70 19
b5d4d3b9 20XXX Any important notices here
67f2cc75 21
b5d4d3b9 22=head1 Core Enhancements
67f2cc75 23
b5d4d3b9
MM
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.
67f2cc75 27
b5d4d3b9 28[ List each enhancement as a =head2 entry ]
295f7815 29
ea5519d6
AB
30=head2 The warnings pragma now supports warnings outside of "all"
31
32Ever since perl v5.6.0 we've had no way of adding new warnings without
33retroactively adding them to all existing programs that used C<-w>,
34C<-W> or C<use warnings>.
35
36This caused us to not add new useful warnings out of fear that they
37might unduly burden users who just wanted to upgrade perl and didn't
38want to deal with a bunch of warnings from their existing code.
39
40We now support a way to have our cake and eat it too, and can add new
41warnings to the core going forward through other top-level warning
42categories. See L<the warnings documentation|warnings/Top-level
43warning categories & associated confusion> for details.
44
25941dca
MH
45=head2 Non-Capturing Regular Expression Flag
46
47Regular expressions now support a C</n> flag that disables capturing
48and filling in C<$1>, C<$2>, etc... inside of groups:
49
50 "hello" =~ /(hi|hello)/n; # $1 is not set
51
52This is equivalent to putting C<?:> at the beginning of every capturing group.
53
54See L<perlre/"n"> for more information.
55
b5d4d3b9 56=head1 Security
3f22ed99 57
b5d4d3b9
MM
58XXX Any security-related notices go here. In particular, any security
59vulnerabilities closed should be noted here rather than in the
60L</Selected Bug Fixes> section.
3f22ed99 61
b5d4d3b9 62[ List each security issue as a =head2 entry ]
aafa61ee 63
b5d4d3b9 64=head1 Incompatible Changes
ef8784b7 65
b5d4d3b9 66XXX For a release on a stable branch, this section aspires to be:
ef8784b7 67
b5d4d3b9
MM
68 There are no changes intentionally incompatible with 5.XXX.XXX
69 If any exist, they are bugs, and we request that you submit a
70 report. See L</Reporting Bugs> below.
0a7766ab 71
b5d4d3b9 72[ List each incompatible change as a =head2 entry ]
0a7766ab 73
4dc623f0 74=head1 Deprecations
5b306eef 75
b5d4d3b9 76XXX Any deprecated features, syntax, modules etc. should be listed here.
c0659f73 77
b5d4d3b9 78=head2 Module removals
c0659f73 79
b5d4d3b9 80XXX Remove this section if inapplicable.
6ed80d55 81
b5d4d3b9
MM
82The following modules will be removed from the core distribution in a
83future release, and will at that time need to be installed from CPAN.
84Distributions on CPAN which require these modules will need to list them as
85prerequisites.
6ed80d55 86
b5d4d3b9
MM
87The core versions of these modules will now issue C<"deprecated">-category
88warnings to alert you to this fact. To silence these deprecation warnings,
89install the modules in question from CPAN.
6ed80d55 90
b5d4d3b9
MM
91Note that these are (with rare exceptions) fine modules that you are encouraged
92to continue to use. Their disinclusion from core primarily hinges on their
93necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
94not usually on concerns over their design.
6ed80d55 95
b5d4d3b9 96=over
bb6a367a 97
b5d4d3b9 98=item XXX
6ed80d55 99
b5d4d3b9
MM
100XXX Note that deprecated modules should be listed here even if they are listed
101as an updated module in the L</Modules and Pragmata> section.
f348c3d8 102
b5d4d3b9 103=back
7635ad4d 104
b5d4d3b9 105[ List each other deprecation as a =head2 entry ]
7635ad4d 106
b5d4d3b9 107=head1 Performance Enhancements
7635ad4d 108
b5d4d3b9
MM
109XXX Changes which enhance performance without changing behaviour go here.
110There may well be none in a stable release.
60dde9d3 111
b5d4d3b9 112[ List each enhancement as a =item entry ]
60dde9d3 113
b5d4d3b9 114=over 4
f348c3d8 115
6ed80d55 116=item *
f348c3d8 117
b5d4d3b9 118XXX
cd3802ac 119
b5d4d3b9 120=back
cd3802ac 121
b5d4d3b9 122=head1 Modules and Pragmata
d6c13051 123
b5d4d3b9
MM
124XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
125go here. If Module::CoreList is updated, generate an initial draft of the
126following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
127for important changes should then be added by hand. In an ideal world,
128dual-life modules would have a F<Changes> file that could be cribbed.
02a0bddf 129
b5d4d3b9 130[ Within each section, list entries as a =item entry ]
128f4e12 131
b5d4d3b9 132=head2 New Modules and Pragmata
cd3802ac 133
b5d4d3b9 134=over 4
60dde9d3
MM
135
136=item *
137
b5d4d3b9 138XXX
3aba4f3d 139
b5d4d3b9 140=back
af292847 141
b5d4d3b9 142=head2 Updated Modules and Pragmata
190f5bb6 143
b5d4d3b9 144=over 4
b045b8b5
TC
145
146=item *
147
b5d4d3b9 148L<XXX> has been upgraded from version A.xx to B.yy.
190f5bb6 149
a462fa00
DD
150=item *
151
152L<B> has been upgraded from version 1.54 to 1.55.
153
154A bug where, after an ithread creation or psuedofork, special/immortal SVs in
155the child ithread/psuedoprocess did not have the correct class of
156C<B::SPECIAL>, has been fixed.
157
b5d4d3b9 158=back
ba31029d 159
b5d4d3b9 160=head2 Removed Modules and Pragmata
b045b8b5 161
b5d4d3b9 162=over 4
aa67537d 163
4c7a0d98
DD
164=item *
165
b5d4d3b9 166XXX
4c7a0d98 167
b5d4d3b9 168=back
4c7a0d98 169
b5d4d3b9 170=head1 Documentation
f4eedc6b 171
b5d4d3b9
MM
172XXX Changes to files in F<pod/> go here. Consider grouping entries by
173file and be sure to link to the appropriate page, e.g. L<perlfunc>.
f4eedc6b 174
b5d4d3b9 175=head2 New Documentation
6ed80d55 176
b5d4d3b9 177XXX Changes which create B<new> files in F<pod/> go here.
f348c3d8 178
b5d4d3b9 179=head3 L<XXX>
f348c3d8 180
b5d4d3b9 181XXX Description of the purpose of the new file here
f348c3d8 182
b5d4d3b9 183=head2 Changes to Existing Documentation
f348c3d8 184
b5d4d3b9
MM
185XXX Changes which significantly change existing files in F<pod/> go here.
186However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
187section.
f348c3d8 188
b5d4d3b9 189=head3 L<XXX>
f348c3d8 190
b5d4d3b9 191=over 4
6ed80d55 192
60dde9d3 193=item *
f348c3d8 194
b5d4d3b9 195XXX Description of the change here
4dc623f0 196
b5d4d3b9 197=back
84d03adf 198
b5d4d3b9 199=head1 Diagnostics
ff433f2d 200
b5d4d3b9
MM
201The following additions or changes have been made to diagnostic output,
202including warnings and fatal error messages. For the complete list of
203diagnostic messages, see L<perldiag>.
4cd408ba 204
b5d4d3b9
MM
205XXX New or changed warnings emitted by the core's C<C> code go here. Also
206include any changes in L<perldiag> that reconcile it to the C<C> code.
6ed80d55 207
b5d4d3b9 208=head2 New Diagnostics
6ed80d55 209
b5d4d3b9
MM
210XXX Newly added diagnostic messages go under here, separated into New Errors
211and New Warnings
6ed80d55 212
b5d4d3b9 213=head3 New Errors
f348c3d8 214
b5d4d3b9 215=over 4
ab0b796c 216
60dde9d3 217=item *
8c6180a9 218
b5d4d3b9 219XXX L<message|perldiag/"message">
8c6180a9 220
b5d4d3b9 221=back
0561e60b 222
b5d4d3b9 223=head3 New Warnings
dd200dff 224
b5d4d3b9 225=over 4
dd200dff 226
73e793fc
FC
227=item *
228
b5d4d3b9 229XXX L<message|perldiag/"message">
73e793fc 230
613abc6d
KW
231=item *
232
233L<Wide character (U+%X) in %s|perldiag/"Wide character (U+%X) in %s">
234
b5d4d3b9 235=back
8c6180a9 236
b5d4d3b9 237=head2 Changes to Existing Diagnostics
0561e60b 238
b5d4d3b9 239XXX Changes (i.e. rewording) of diagnostic messages go here
4a328228 240
b5d4d3b9 241=over 4
4cd408ba 242
1861205d
FC
243=item *
244
b5d4d3b9 245XXX Describe change here
1861205d 246
780fcc9f
KW
247The message
248L<Locale '%s' may not work well.%s|perldiag/"Locale '%s' may not work well.%s">
249is no longer raised unless the problemtatic locale is actually used in
250the Perl program. Previously it was raised if it merely was the
251underlying locale. All Perl programs have an underlying locale at all
252times, but something like a C<S<use locale>> is needed for that locale
253to actually have some effect. This message will not be raised when
254the underlying locale is hidden.
255
b5d4d3b9 256=back
40a81b59 257
b5d4d3b9 258=head1 Utility Changes
2a395b86 259
b5d4d3b9
MM
260XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
261Most of these are built within the directory F<utils>.
2a395b86 262
b5d4d3b9
MM
263[ List utility changes as a =head2 entry for each utility and =item
264entries for each change
265Use L<XXX> with program names to get proper documentation linking. ]
12d22d1f 266
b5d4d3b9 267=head2 L<XXX>
2a395b86 268
b5d4d3b9 269=over 4
2a395b86
PM
270
271=item *
272
b5d4d3b9 273XXX
bb8c7e27 274
b5d4d3b9 275=back
bb8c7e27 276
b5d4d3b9 277=head1 Configuration and Compilation
bb8c7e27 278
b5d4d3b9
MM
279XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
280go here. Any other changes to the Perl build process should be listed here.
281However, any platform-specific changes should be listed in the
282L</Platform Support> section, instead.
aa292ef2 283
b5d4d3b9 284[ List changes as a =item entry ].
83b69bfd 285
b5d4d3b9 286=over 4
83b69bfd
DD
287
288=item *
289
b5d4d3b9 290XXX
13adb056 291
b5d4d3b9 292=back
391823f2 293
b5d4d3b9 294=head1 Testing
6ff8f256 295
b5d4d3b9
MM
296XXX Any significant changes to the testing of a freshly built perl should be
297listed here. Changes which create B<new> files in F<t/> go here as do any
298large changes to the testing harness (e.g. when parallel testing was added).
299Changes to existing files in F<t/> aren't worth summarizing, although the bugs
300that they represent may be covered elsewhere.
80cc3290 301
b5d4d3b9 302[ List each test improvement as a =item entry ]
60dde9d3 303
b5d4d3b9 304=over 4
db98db4e 305
8818afe8
TC
306=item *
307
b5d4d3b9 308XXX
9d22ccf6 309
b5d4d3b9 310=back
480961b6 311
b5d4d3b9 312=head1 Platform Support
480961b6 313
b5d4d3b9 314XXX Any changes to platform support should be listed in the sections below.
94c9bf90 315
b5d4d3b9
MM
316[ Within the sections, list each platform as a =item entry with specific
317changes as paragraphs below it. ]
94c9bf90 318
b5d4d3b9 319=head2 New Platforms
8af808bf 320
b5d4d3b9
MM
321XXX List any platforms that this version of perl compiles on, that previous
322versions did not. These will either be enabled by new files in the F<hints/>
323directories, or new subdirectories and F<README> files at the top level of the
324source tree.
8af808bf 325
b5d4d3b9 326=over 4
fdcaecb7 327
b5d4d3b9 328=item XXX-some-platform
fdcaecb7 329
b5d4d3b9 330XXX
2af7c6b6 331
4dc623f0 332=back
2af7c6b6 333
b5d4d3b9 334=head2 Discontinued Platforms
60dde9d3 335
b5d4d3b9 336XXX List any platforms that this version of perl no longer compiles on.
c0b32823 337
4dc623f0 338=over 4
b1a4e8b3 339
b5d4d3b9 340=item XXX-some-platform
b1a4e8b3 341
b5d4d3b9 342XXX
9e26817d 343
4dc623f0 344=back
9e26817d 345
4dc623f0 346=head2 Platform-Specific Notes
70cee83f 347
b5d4d3b9
MM
348XXX List any changes for specific platforms. This could include configuration
349and compilation changes or changes in portability/compatibility. However,
350changes within modules for platforms should generally be listed in the
351L</Modules and Pragmata> section.
70cee83f 352
b5d4d3b9 353=over 4
e5fbfbc1 354
b4045391 355=item Win32
e5fbfbc1 356
b4045391
DD
357=over 4
358
359=item *
360
361Previously, on Visual C++ for Win64 built Perls only, when compiling every Perl
362XS module (including CPAN ones) and Perl aware .c file with a 64 bit Visual C++,
363would uncondtionally have around a dozen warnings from hv_func.h. These
364warnings have been silenced. GCC all bitness and Visual C++ for Win32 were
365not affected.
366
367=back
353075a0 368
4dc623f0 369=back
353075a0 370
4dc623f0 371=head1 Internal Changes
9f122eef 372
b5d4d3b9
MM
373XXX Changes which affect the interface available to C<XS> code go here. Other
374significant internal changes for future core maintainers should be noted as
375well.
bd2aa467 376
b5d4d3b9 377[ List each change as a =item entry ]
2ec11c70 378
b5d4d3b9 379=over 4
2ec11c70
DM
380
381=item *
382
2683609f
YO
383Added Perl_sv_get_backrefs() to determine if an SV is a weak-referent.
384
385Function either returns an SV * of type AV, which contains the set of
386weakreferences which reference the passed in SV, or a simple RV * which
387is the only weakref to this item.
388
389=item *
390
b5d4d3b9 391XXX
2ec11c70 392
4dc623f0 393=back
c7f058f0 394
4dc623f0 395=head1 Selected Bug Fixes
0ef4323a 396
b5d4d3b9
MM
397XXX Important bug fixes in the core language are summarized here. Bug fixes in
398files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
279aef25 399
b5d4d3b9 400[ List each fix as a =item entry ]
00ba25b8 401
b5d4d3b9 402=over 4
00ba25b8 403
567291b6
FC
404=item *
405
b5d4d3b9 406XXX
fcfb7b86 407
b5d4d3b9 408=back
fcfb7b86 409
b5d4d3b9 410=head1 Known Problems
8bb83ec2 411
b5d4d3b9
MM
412XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
413tests that had to be C<TODO>ed for the release would be noted here. Unfixed
414platform specific bugs also go here.
8bb83ec2 415
b5d4d3b9 416[ List each fix as a =item entry ]
1318b6d7 417
b5d4d3b9 418=over 4
1318b6d7 419
6f67fbfe
FC
420=item *
421
b5d4d3b9 422XXX
070733df 423
b5d4d3b9 424=back
219f8441 425
b5d4d3b9 426=head1 Errata From Previous Releases
219f8441 427
b5d4d3b9 428=over 4
5747f88b 429
61a8c397
FC
430=item *
431
b5d4d3b9
MM
432XXX Add anything here that we forgot to add, or were mistaken about, in
433the perldelta of a previous release.
61a8c397 434
86372193 435=back
bb8c7e27 436
b5d4d3b9 437=head1 Obituary
3a085d00 438
b5d4d3b9
MM
439XXX If any significant core contributor has died, we've added a short obituary
440here.
01d42a22 441
b5d4d3b9 442=head1 Acknowledgements
01d42a22 443
b5d4d3b9 444XXX Generate this with:
01d42a22 445
b5d4d3b9 446 perl Porting/acknowledgements.pl v5.21.7..HEAD
f5b73711 447
44691e6f
AB
448=head1 Reporting Bugs
449
e08634c5
SH
450If you find what you think is a bug, you might check the articles recently
451posted to the comp.lang.perl.misc newsgroup and the perl bug database at
238894db 452https://rt.perl.org/ . There may also be information at
7ef8b31d 453http://www.perl.org/ , the Perl Home Page.
44691e6f 454
e08634c5
SH
455If you believe you have an unreported bug, please run the L<perlbug> program
456included with your release. Be sure to trim your bug down to a tiny but
457sufficient test case. Your bug report, along with the output of C<perl -V>,
458will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
459
460If the bug you are reporting has security implications, which make it
e08634c5
SH
461inappropriate to send to a publicly archived mailing list, then please send it
462to perl5-security-report@perl.org. This points to a closed subscription
463unarchived mailing list, which includes all the core committers, who will be
464able to help assess the impact of issues, figure out a resolution, and help
f9001595 465co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
466platforms on which Perl is supported. Please only use this address for
467security issues in the Perl core, not for modules independently distributed on
468CPAN.
44691e6f
AB
469
470=head1 SEE ALSO
471
e08634c5
SH
472The F<Changes> file for an explanation of how to view exhaustive details on
473what changed.
44691e6f
AB
474
475The F<INSTALL> file for how to build Perl.
476
477The F<README> file for general stuff.
478
479The F<Artistic> and F<Copying> files for copyright information.
480
481=cut