This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Add missing =item * in perldelta (now perl5217delta) from commit 070733dfda
[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
595f54ae
SH
152L<attributes> has been upgraded from version 0.24 to 0.25.
153
154Minor internal change only.
155
156=item *
157
a462fa00
DD
158L<B> has been upgraded from version 1.54 to 1.55.
159
160A bug where, after an ithread creation or psuedofork, special/immortal SVs in
161the child ithread/psuedoprocess did not have the correct class of
162C<B::SPECIAL>, has been fixed.
163
b5d4d3b9 164=back
ba31029d 165
b5d4d3b9 166=head2 Removed Modules and Pragmata
b045b8b5 167
b5d4d3b9 168=over 4
aa67537d 169
4c7a0d98
DD
170=item *
171
b5d4d3b9 172XXX
4c7a0d98 173
b5d4d3b9 174=back
4c7a0d98 175
b5d4d3b9 176=head1 Documentation
f4eedc6b 177
b5d4d3b9
MM
178XXX Changes to files in F<pod/> go here. Consider grouping entries by
179file and be sure to link to the appropriate page, e.g. L<perlfunc>.
f4eedc6b 180
b5d4d3b9 181=head2 New Documentation
6ed80d55 182
b5d4d3b9 183XXX Changes which create B<new> files in F<pod/> go here.
f348c3d8 184
b5d4d3b9 185=head3 L<XXX>
f348c3d8 186
b5d4d3b9 187XXX Description of the purpose of the new file here
f348c3d8 188
b5d4d3b9 189=head2 Changes to Existing Documentation
f348c3d8 190
b5d4d3b9
MM
191XXX Changes which significantly change existing files in F<pod/> go here.
192However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
193section.
f348c3d8 194
b5d4d3b9 195=head3 L<XXX>
f348c3d8 196
b5d4d3b9 197=over 4
6ed80d55 198
60dde9d3 199=item *
f348c3d8 200
b5d4d3b9 201XXX Description of the change here
4dc623f0 202
b5d4d3b9 203=back
84d03adf 204
b5d4d3b9 205=head1 Diagnostics
ff433f2d 206
b5d4d3b9
MM
207The following additions or changes have been made to diagnostic output,
208including warnings and fatal error messages. For the complete list of
209diagnostic messages, see L<perldiag>.
4cd408ba 210
b5d4d3b9
MM
211XXX New or changed warnings emitted by the core's C<C> code go here. Also
212include any changes in L<perldiag> that reconcile it to the C<C> code.
6ed80d55 213
b5d4d3b9 214=head2 New Diagnostics
6ed80d55 215
b5d4d3b9
MM
216XXX Newly added diagnostic messages go under here, separated into New Errors
217and New Warnings
6ed80d55 218
b5d4d3b9 219=head3 New Errors
f348c3d8 220
b5d4d3b9 221=over 4
ab0b796c 222
60dde9d3 223=item *
8c6180a9 224
b5d4d3b9 225XXX L<message|perldiag/"message">
8c6180a9 226
b5d4d3b9 227=back
0561e60b 228
b5d4d3b9 229=head3 New Warnings
dd200dff 230
b5d4d3b9 231=over 4
dd200dff 232
73e793fc
FC
233=item *
234
b5d4d3b9 235XXX L<message|perldiag/"message">
73e793fc 236
613abc6d
KW
237=item *
238
239L<Wide character (U+%X) in %s|perldiag/"Wide character (U+%X) in %s">
240
b5d4d3b9 241=back
8c6180a9 242
b5d4d3b9 243=head2 Changes to Existing Diagnostics
0561e60b 244
b5d4d3b9 245XXX Changes (i.e. rewording) of diagnostic messages go here
4a328228 246
b5d4d3b9 247=over 4
4cd408ba 248
1861205d
FC
249=item *
250
b5d4d3b9 251XXX Describe change here
1861205d 252
780fcc9f
KW
253The message
254L<Locale '%s' may not work well.%s|perldiag/"Locale '%s' may not work well.%s">
255is no longer raised unless the problemtatic locale is actually used in
256the Perl program. Previously it was raised if it merely was the
257underlying locale. All Perl programs have an underlying locale at all
258times, but something like a C<S<use locale>> is needed for that locale
259to actually have some effect. This message will not be raised when
260the underlying locale is hidden.
261
b5d4d3b9 262=back
40a81b59 263
b5d4d3b9 264=head1 Utility Changes
2a395b86 265
b5d4d3b9
MM
266XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
267Most of these are built within the directory F<utils>.
2a395b86 268
b5d4d3b9
MM
269[ List utility changes as a =head2 entry for each utility and =item
270entries for each change
271Use L<XXX> with program names to get proper documentation linking. ]
12d22d1f 272
b5d4d3b9 273=head2 L<XXX>
2a395b86 274
b5d4d3b9 275=over 4
2a395b86
PM
276
277=item *
278
b5d4d3b9 279XXX
bb8c7e27 280
b5d4d3b9 281=back
bb8c7e27 282
b5d4d3b9 283=head1 Configuration and Compilation
bb8c7e27 284
b5d4d3b9
MM
285XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
286go here. Any other changes to the Perl build process should be listed here.
287However, any platform-specific changes should be listed in the
288L</Platform Support> section, instead.
aa292ef2 289
b5d4d3b9 290[ List changes as a =item entry ].
83b69bfd 291
b5d4d3b9 292=over 4
83b69bfd
DD
293
294=item *
295
b5d4d3b9 296XXX
13adb056 297
b5d4d3b9 298=back
391823f2 299
b5d4d3b9 300=head1 Testing
6ff8f256 301
b5d4d3b9
MM
302XXX Any significant changes to the testing of a freshly built perl should be
303listed here. Changes which create B<new> files in F<t/> go here as do any
304large changes to the testing harness (e.g. when parallel testing was added).
305Changes to existing files in F<t/> aren't worth summarizing, although the bugs
306that they represent may be covered elsewhere.
80cc3290 307
b5d4d3b9 308[ List each test improvement as a =item entry ]
60dde9d3 309
b5d4d3b9 310=over 4
db98db4e 311
8818afe8
TC
312=item *
313
b5d4d3b9 314XXX
9d22ccf6 315
b5d4d3b9 316=back
480961b6 317
b5d4d3b9 318=head1 Platform Support
480961b6 319
b5d4d3b9 320XXX Any changes to platform support should be listed in the sections below.
94c9bf90 321
b5d4d3b9
MM
322[ Within the sections, list each platform as a =item entry with specific
323changes as paragraphs below it. ]
94c9bf90 324
b5d4d3b9 325=head2 New Platforms
8af808bf 326
b5d4d3b9
MM
327XXX List any platforms that this version of perl compiles on, that previous
328versions did not. These will either be enabled by new files in the F<hints/>
329directories, or new subdirectories and F<README> files at the top level of the
330source tree.
8af808bf 331
b5d4d3b9 332=over 4
fdcaecb7 333
b5d4d3b9 334=item XXX-some-platform
fdcaecb7 335
b5d4d3b9 336XXX
2af7c6b6 337
4dc623f0 338=back
2af7c6b6 339
b5d4d3b9 340=head2 Discontinued Platforms
60dde9d3 341
b5d4d3b9 342XXX List any platforms that this version of perl no longer compiles on.
c0b32823 343
4dc623f0 344=over 4
b1a4e8b3 345
b5d4d3b9 346=item XXX-some-platform
b1a4e8b3 347
b5d4d3b9 348XXX
9e26817d 349
4dc623f0 350=back
9e26817d 351
4dc623f0 352=head2 Platform-Specific Notes
70cee83f 353
b5d4d3b9
MM
354XXX List any changes for specific platforms. This could include configuration
355and compilation changes or changes in portability/compatibility. However,
356changes within modules for platforms should generally be listed in the
357L</Modules and Pragmata> section.
70cee83f 358
b5d4d3b9 359=over 4
e5fbfbc1 360
b4045391 361=item Win32
e5fbfbc1 362
b4045391
DD
363=over 4
364
365=item *
366
367Previously, on Visual C++ for Win64 built Perls only, when compiling every Perl
368XS module (including CPAN ones) and Perl aware .c file with a 64 bit Visual C++,
369would uncondtionally have around a dozen warnings from hv_func.h. These
370warnings have been silenced. GCC all bitness and Visual C++ for Win32 were
371not affected.
372
8c847e66
SH
373=item *
374
375Support for building without PerlIO has been removed from the Windows
376makefiles. Non-PerlIO builds were all but deprecated in Perl 5.18.0 and are
377already not supported by F<Configure> on POSIX systems.
378
b4045391 379=back
353075a0 380
4dc623f0 381=back
353075a0 382
4dc623f0 383=head1 Internal Changes
9f122eef 384
b5d4d3b9
MM
385XXX Changes which affect the interface available to C<XS> code go here. Other
386significant internal changes for future core maintainers should be noted as
387well.
bd2aa467 388
b5d4d3b9 389[ List each change as a =item entry ]
2ec11c70 390
b5d4d3b9 391=over 4
2ec11c70
DM
392
393=item *
394
2683609f
YO
395Added Perl_sv_get_backrefs() to determine if an SV is a weak-referent.
396
397Function either returns an SV * of type AV, which contains the set of
398weakreferences which reference the passed in SV, or a simple RV * which
399is the only weakref to this item.
400
401=item *
402
819b139d
DD
403C<gv_add_by_type> which was added to public API in 5.11.0 but undocumented and
404shows no CPAN usage has been removed from public API. Please use public API
405C<GvSVn> C<GvIOn> C<GvAVn> and C<GvHVn> for adding elements to a GV.
406
407=item *
408
409C<GvSVn> C<GvIOn> C<GvAVn> and C<GvHVn> have been made rvalues, previously they
410were lvalues. If you are assigning a SV to C<GvSVn> C<GvIOn> C<GvAVn> and
411C<GvHVn> you are leaking memory. If you want an lvalue, use C<GvSV> C<GvIO>
412C<GvAV> and C<GvHV>.
413
414=item *
415
b5d4d3b9 416XXX
2ec11c70 417
4dc623f0 418=back
c7f058f0 419
4dc623f0 420=head1 Selected Bug Fixes
0ef4323a 421
b5d4d3b9
MM
422XXX Important bug fixes in the core language are summarized here. Bug fixes in
423files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
279aef25 424
b5d4d3b9 425[ List each fix as a =item entry ]
00ba25b8 426
b5d4d3b9 427=over 4
00ba25b8 428
567291b6
FC
429=item *
430
1a4efbb7
KW
431A bug in regular expression patterns that could lead to segfaults and
432other crashes has been fixed. This occurred only in patterns compiled
433with C<"/i">, while taking into account the current POSIX locale (this usually
434means they have to be compiled within the scope of C<S<"use locale">>),
435and there must be a string of at least 128 consecutive bytes to match.
6471c6b0 436[perl #123539]
fcfb7b86 437
b5d4d3b9 438=back
fcfb7b86 439
b5d4d3b9 440=head1 Known Problems
8bb83ec2 441
b5d4d3b9
MM
442XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
443tests that had to be C<TODO>ed for the release would be noted here. Unfixed
444platform specific bugs also go here.
8bb83ec2 445
b5d4d3b9 446[ List each fix as a =item entry ]
1318b6d7 447
b5d4d3b9 448=over 4
1318b6d7 449
6f67fbfe
FC
450=item *
451
b5d4d3b9 452XXX
070733df 453
b5d4d3b9 454=back
219f8441 455
b5d4d3b9 456=head1 Errata From Previous Releases
219f8441 457
b5d4d3b9 458=over 4
5747f88b 459
61a8c397
FC
460=item *
461
b5d4d3b9
MM
462XXX Add anything here that we forgot to add, or were mistaken about, in
463the perldelta of a previous release.
61a8c397 464
86372193 465=back
bb8c7e27 466
b5d4d3b9 467=head1 Obituary
3a085d00 468
b5d4d3b9
MM
469XXX If any significant core contributor has died, we've added a short obituary
470here.
01d42a22 471
b5d4d3b9 472=head1 Acknowledgements
01d42a22 473
b5d4d3b9 474XXX Generate this with:
01d42a22 475
b5d4d3b9 476 perl Porting/acknowledgements.pl v5.21.7..HEAD
f5b73711 477
44691e6f
AB
478=head1 Reporting Bugs
479
e08634c5
SH
480If you find what you think is a bug, you might check the articles recently
481posted to the comp.lang.perl.misc newsgroup and the perl bug database at
238894db 482https://rt.perl.org/ . There may also be information at
7ef8b31d 483http://www.perl.org/ , the Perl Home Page.
44691e6f 484
e08634c5
SH
485If you believe you have an unreported bug, please run the L<perlbug> program
486included with your release. Be sure to trim your bug down to a tiny but
487sufficient test case. Your bug report, along with the output of C<perl -V>,
488will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
489
490If the bug you are reporting has security implications, which make it
e08634c5
SH
491inappropriate to send to a publicly archived mailing list, then please send it
492to perl5-security-report@perl.org. This points to a closed subscription
493unarchived mailing list, which includes all the core committers, who will be
494able to help assess the impact of issues, figure out a resolution, and help
f9001595 495co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
496platforms on which Perl is supported. Please only use this address for
497security issues in the Perl core, not for modules independently distributed on
498CPAN.
44691e6f
AB
499
500=head1 SEE ALSO
501
e08634c5
SH
502The F<Changes> file for an explanation of how to view exhaustive details on
503what changed.
44691e6f
AB
504
505The F<INSTALL> file for how to build Perl.
506
507The F<README> file for general stuff.
508
509The F<Artistic> and F<Copying> files for copyright information.
510
511=cut