This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[perl #117793] remove dangerous functions and improve SvREFCNT()
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
12dcbffb
AP
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.19.3
e128ab2c 9
4eabcf70 10=head1 DESCRIPTION
6db9054f 11
12dcbffb 12This document describes differences between the 5.19.2 release and the 5.19.3
e08634c5 13release.
6db9054f 14
12dcbffb
AP
15If you are upgrading from an earlier release such as 5.19.1, first read
16L<perl5192delta>, which describes differences between 5.19.1 and 5.19.2.
42bff0d9 17
12dcbffb 18=head1 Notice
42bff0d9 19
12dcbffb 20XXX Any important notices here
42bff0d9 21
12dcbffb 22=head1 Core Enhancements
c0ca71c9 23
12dcbffb
AP
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.
c0ca71c9 27
12dcbffb 28[ List each enhancement as a =head2 entry ]
c0ca71c9 29
5bb43e77
TC
30=head2 B<-F> now implies B<-a> and B<-a> implies B<-n>
31
32Previously B<-F> without B<-a> was a no-op, and B<-a> without B<-n> or
33B<-p> was a no-op, with this change, if you supply B<-F> then both
34B<-a> and B<-n> are implied and if you supply B<-a> then B<-n> is implied.
35
36You can still use B<-p> for its extra behaviour. [perl #116190]
37
12dcbffb 38=head1 Security
c0ca71c9 39
12dcbffb
AP
40XXX Any security-related notices go here. In particular, any security
41vulnerabilities closed should be noted here rather than in the
42L</Selected Bug Fixes> section.
c0ca71c9 43
12dcbffb 44[ List each security issue as a =head2 entry ]
c0ca71c9 45
12dcbffb 46=head1 Incompatible Changes
c0ca71c9 47
12dcbffb 48XXX For a release on a stable branch, this section aspires to be:
c0ca71c9 49
12dcbffb
AP
50 There are no changes intentionally incompatible with 5.XXX.XXX
51 If any exist, they are bugs, and we request that you submit a
52 report. See L</Reporting Bugs> below.
c0ca71c9 53
12dcbffb 54[ List each incompatible change as a =head2 entry ]
c0ca71c9 55
12dcbffb 56=head1 Deprecations
c0ca71c9 57
12dcbffb 58XXX Any deprecated features, syntax, modules etc. should be listed here.
c0ca71c9 59
12dcbffb 60=head2 Module removals
c0ca71c9 61
12dcbffb 62XXX Remove this section if inapplicable.
c0ca71c9 63
12dcbffb
AP
64The following modules will be removed from the core distribution in a
65future release, and will at that time need to be installed from CPAN.
66Distributions on CPAN which require these modules will need to list them as
67prerequisites.
c0ca71c9 68
12dcbffb
AP
69The core versions of these modules will now issue C<"deprecated">-category
70warnings to alert you to this fact. To silence these deprecation warnings,
71install the modules in question from CPAN.
c0ca71c9 72
12dcbffb
AP
73Note that these are (with rare exceptions) fine modules that you are encouraged
74to continue to use. Their disinclusion from core primarily hinges on their
75necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
76not usually on concerns over their design.
c0ca71c9 77
12dcbffb 78=over
c0ca71c9 79
12dcbffb
AP
80XXX Note that deprecated modules should be listed here even if they are listed
81as an updated module in the L</Modules and Pragmata> section.
c0ca71c9 82
12dcbffb 83=back
c0ca71c9 84
12dcbffb 85[ List each other deprecation as a =head2 entry ]
c0ca71c9 86
12dcbffb 87=head1 Performance Enhancements
c0ca71c9 88
12dcbffb
AP
89XXX Changes which enhance performance without changing behaviour go here.
90There may well be none in a stable release.
c0ca71c9 91
12dcbffb 92[ List each enhancement as a =item entry ]
c0ca71c9 93
12dcbffb 94=over 4
c0ca71c9
AP
95
96=item *
97
12dcbffb 98XXX
c0ca71c9 99
12dcbffb 100=back
70ba8092 101
12dcbffb 102=head1 Modules and Pragmata
42bff0d9 103
12dcbffb
AP
104XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
105go here. If Module::CoreList is updated, generate an initial draft of the
106following sections using F<Porting/corelist-perldelta.pl>, which prints stub
107entries to STDOUT. Results can be pasted in place of the '=head2' entries
108below. A paragraph summary for important changes should then be added by hand.
109In an ideal world, dual-life modules would have a F<Changes> file that could be
110cribbed.
6e4979f3 111
12dcbffb 112[ Within each section, list entries as a =item entry ]
6e4979f3 113
12dcbffb 114=head2 New Modules and Pragmata
6e4979f3 115
12dcbffb 116=over 4
42bff0d9 117
c0ca71c9 118=item *
42bff0d9 119
12dcbffb 120XXX
42bff0d9 121
12dcbffb 122=back
42bff0d9 123
12dcbffb 124=head2 Updated Modules and Pragmata
42bff0d9 125
12dcbffb 126=over 4
42bff0d9 127
c0ca71c9 128=item *
42bff0d9 129
323602af
TC
130L<B> has been upgraded from version 1.44 to 1.45.
131
132Calling the C<GV> method on C<B::CV> objects created from a lexical
133sub would return nonsense, possibly crashing perl. C<GV> now returns
134C<undef> for lexical subs. [perl #118525]
135
136Added the C<NAME_HEK> method to return the name of a lexical sub.
137
138=item *
139
9a743a6d
SH
140L<bignum> has been upgraded from version 0.35 to 0.36.
141
142L<bigrat> wasn't correctly updating an internal variable when C<use>d
143with a C<lib> option.
144
145=item *
146
89e01640
SH
147L<Config::Perl::V> has been upgraded from version 0.18 to 0.19.
148
149=item *
150
cffd634c
TC
151L<Data::Dumper> has been upgraded from version 2.147 to 2.148.
152
153The compatbility of the XS implementation with the pure perl version
154under C<Useqq> has been improved. [perl #118933]
42bff0d9 155
2cf99697
TC
156=item *
157
9a743a6d
SH
158L<Exporter> has been upgraded from version 5.68 to 5.69.
159
160L<Exporter> would ignore custom C<$SIG{__WARN__}> handlers in
161C<Exporter::Heavy>. [perl #39739]
162
163=item *
164
c7e51fe7
SH
165L<IPC::Cmd> has been upgraded from version 0.82 to 0.84.
166
167C<run_forked> has various fixes/improvements, L<Socket> is only used where
168needed and a regression introduced in 0.78 has been fixed.
169
170=item *
171
8723f121
SH
172The libnet module collection has been upgraded from version 1.22 to 1.22_02.
173
174=item *
175
6a9ebaf3 176L<List::Util> has been upgraded from version 1.27 to 1.30
2dc8d725 177
6a9ebaf3
SH
178L<List::Util> now includes C<pairgrep>, C<pairmap>, C<pairs>, C<pairkeys>,
179C<pairvalues> and C<pairfirst> functions that operate on even-sized lists of
180pairs.
2dc8d725
CBW
181
182=item *
183
4725e868
SH
184L<parent> has been upgraded from version 0.225 to 0.226.
185
186=item *
187
669d990b
SH
188L<Socket> has been upgraded from version 2.010 to 2.011.
189
190Handle FreeBSD (or other platforms) returning shorter AF_UNIX sockaddr
191structures due to embedded sun_len. [cpan #86613]
192
193=item *
194
2cf99697
TC
195L<Storable> has been upgraded from version 2.45 to 2.46.
196
197Avoid creating temporary objects for STORABLE_attach when they aren't
198required. [perl #118907]
199
c0ca71c9 200=back
42bff0d9 201
12dcbffb 202=head2 Removed Modules and Pragmata
dbd04185 203
38663f11 204=over 4
583aa5c2 205
1fdd5e53
KW
206=item *
207
12dcbffb 208XXX
42bff0d9 209
38663f11 210=back
42bff0d9 211
12dcbffb 212=head1 Documentation
989e4501 213
12dcbffb
AP
214XXX Changes to files in F<pod/> go here. Consider grouping entries by
215file and be sure to link to the appropriate page, e.g. L<perlfunc>.
989e4501 216
12dcbffb 217=head2 New Documentation
989e4501 218
12dcbffb 219XXX Changes which create B<new> files in F<pod/> go here.
42bff0d9 220
12dcbffb 221=head3 L<XXX>
42bff0d9 222
12dcbffb 223XXX Description of the purpose of the new file here
42bff0d9 224
12dcbffb 225=head2 Changes to Existing Documentation
42bff0d9 226
12dcbffb
AP
227XXX Changes which significantly change existing files in F<pod/> go here.
228However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
229section.
42bff0d9 230
3031ec7a 231=head3 L<perlopentut>
42bff0d9 232
38663f11 233=over 4
42bff0d9
DG
234
235=item *
236
3031ec7a
RS
237The C<open> tutorial has been completely rewriten by Tom Christiansen, and now
238focuses on covering only the basics, rather than providing a comprehensive
239reference to all things openable. This rewrite came as the result of a
240vigorous discussion on perl5-porters kicked off by a set of improvements
241written by Alexander Hartmaier to the existing C<perlopentut>. A "more than
242you ever wanted to know about C<open>" document may follow in subsequent
243versions of perl.
1fdd5e53 244
583aa5c2
RS
245=back
246
c0ca71c9
AP
247=head1 Diagnostics
248
249The following additions or changes have been made to diagnostic output,
250including warnings and fatal error messages. For the complete list of
251diagnostic messages, see L<perldiag>.
252
12dcbffb
AP
253XXX New or changed warnings emitted by the core's C<C> code go here. Also
254include any changes in L<perldiag> that reconcile it to the C<C> code.
255
c0ca71c9
AP
256=head2 New Diagnostics
257
12dcbffb
AP
258XXX Newly added diagnostic messages go under here, separated into New Errors
259and New Warnings
260
261=head3 New Errors
583aa5c2 262
38663f11 263=over 4
583aa5c2 264
b8a02ff1 265=item *
583aa5c2 266
12dcbffb 267XXX L<message|perldiag/"message">
583aa5c2 268
b8a02ff1 269=back
583aa5c2 270
12dcbffb 271=head3 New Warnings
96d496e4 272
38663f11 273=over 4
b8a02ff1
DG
274
275=item *
276
12dcbffb 277XXX L<message|perldiag/"message">
96d496e4 278
12dcbffb 279=back
1310e590 280
12dcbffb 281=head2 Changes to Existing Diagnostics
e727f86a 282
12dcbffb 283XXX Changes (i.e. rewording) of diagnostic messages go here
e727f86a 284
12dcbffb 285=over 4
e727f86a 286
81ca6d44
FC
287=item *
288
12dcbffb 289XXX Describe change here
81ca6d44 290
96d496e4
RS
291=back
292
12dcbffb 293=head1 Utility Changes
583aa5c2 294
12dcbffb
AP
295XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
296Most of these are built within the directories F<utils> and F<x2p>.
71e6aba6 297
12dcbffb
AP
298[ List utility changes as a =head3 entry for each utility and =item
299entries for each change
300Use L<XXX> with program names to get proper documentation linking. ]
d5f315e8 301
12dcbffb 302=head3 L<XXX>
e38fc308
NC
303
304=over 4
305
306=item *
307
12dcbffb 308XXX
e38fc308
NC
309
310=back
311
12dcbffb 312=head1 Configuration and Compilation
2426c394 313
12dcbffb
AP
314XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
315go here. Any other changes to the Perl build process should be listed here.
316However, any platform-specific changes should be listed in the
317L</Platform Support> section, instead.
4724da03 318
12dcbffb 319[ List changes as a =item entry ].
583aa5c2 320
38663f11 321=over 4
a34da6c4 322
12dcbffb 323=item *
a34da6c4 324
12dcbffb 325XXX
a34da6c4 326
583aa5c2
RS
327=back
328
12dcbffb 329=head1 Testing
583aa5c2 330
12dcbffb
AP
331XXX Any significant changes to the testing of a freshly built perl should be
332listed here. Changes which create B<new> files in F<t/> go here as do any
333large changes to the testing harness (e.g. when parallel testing was added).
334Changes to existing files in F<t/> aren't worth summarizing, although the bugs
335that they represent may be covered elsewhere.
1de7c8e6 336
12dcbffb 337[ List each test improvement as a =item entry ]
9c800862 338
12dcbffb 339=over 4
aaf54772 340
b7bbd8b6
FC
341=item *
342
12dcbffb 343XXX
b7bbd8b6 344
583aa5c2
RS
345=back
346
12dcbffb 347=head1 Platform Support
d7bfa554 348
12dcbffb 349XXX Any changes to platform support should be listed in the sections below.
81d3ed5a 350
12dcbffb
AP
351[ Within the sections, list each platform as a =item entry with specific
352changes as paragraphs below it. ]
81d3ed5a 353
12dcbffb 354=head2 New Platforms
0b023496 355
12dcbffb
AP
356XXX List any platforms that this version of perl compiles on, that previous
357versions did not. These will either be enabled by new files in the F<hints/>
358directories, or new subdirectories and F<README> files at the top level of the
359source tree.
0b023496 360
12dcbffb 361=over 4
e11f653d 362
12dcbffb 363=item XXX-some-platform
5e0164b2 364
12dcbffb 365XXX
5e0164b2 366
12dcbffb 367=back
e11f653d 368
12dcbffb 369=head2 Discontinued Platforms
8be8cdec 370
12dcbffb 371XXX List any platforms that this version of perl no longer compiles on.
8be8cdec 372
12dcbffb 373=over 4
07a522a5 374
12dcbffb 375=item XXX-some-platform
07a522a5 376
12dcbffb 377XXX
71b4007c 378
12dcbffb 379=back
71b4007c 380
12dcbffb 381=head2 Platform-Specific Notes
f6b1d2f5 382
12dcbffb
AP
383XXX List any changes for specific platforms. This could include configuration
384and compilation changes or changes in portability/compatibility. However,
385changes within modules for platforms should generally be listed in the
386L</Modules and Pragmata> section.
f6b1d2f5 387
12dcbffb 388=over 4
7e4f209b 389
12dcbffb 390=item XXX-some-platform
7e4f209b 391
12dcbffb 392XXX
558673e6 393
12dcbffb 394=back
558673e6 395
12dcbffb 396=head1 Internal Changes
47a7c93d 397
12dcbffb
AP
398XXX Changes which affect the interface available to C<XS> code go here. Other
399significant internal changes for future core maintainers should be noted as
400well.
47a7c93d 401
12dcbffb 402[ List each change as a =item entry ]
b5a80c26 403
12dcbffb 404=over 4
b5a80c26 405
7f1d4316
FC
406=item *
407
12dcbffb 408XXX
7f1d4316 409
12dcbffb 410=back
02bef66e 411
12dcbffb 412=head1 Selected Bug Fixes
d30fb844 413
12dcbffb
AP
414XXX Important bug fixes in the core language are summarized here. Bug fixes in
415files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
d30fb844 416
12dcbffb 417[ List each fix as a =item entry ]
21c01741 418
12dcbffb 419=over 4
21c01741 420
467582e8
FC
421=item *
422
5c24ac0b
FC
423Autovivifying a subroutine stub via C<\&$glob> started causing crashes in
424Perl 5.18.0 if the $glob was merely a copy of a real glob, i.e., a scalar
425that had had a glob assigned to it. This has been fixed [perl #119051].
467582e8 426
38663f11 427=back
d7bfa554 428
38663f11 429=head1 Known Problems
6810f0ad 430
12dcbffb
AP
431XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
432tests that had to be C<TODO>ed for the release would be noted here. Unfixed
433platform specific bugs also go here.
434
435[ List each fix as a =item entry ]
436
38663f11 437=over 4
14fd9356
FC
438
439=item *
440
12dcbffb 441XXX
0e417e4d 442
38663f11 443=back
583aa5c2 444
12dcbffb
AP
445=head1 Obituary
446
447XXX If any significant core contributor has died, we've added a short obituary
448here.
449
583aa5c2 450=head1 Acknowledgements
a75569c0 451
12dcbffb
AP
452XXX Generate this with:
453
454 perl Porting/acknowledgements.pl v5.19.2..HEAD
f5b73711 455
44691e6f
AB
456=head1 Reporting Bugs
457
e08634c5
SH
458If you find what you think is a bug, you might check the articles recently
459posted to the comp.lang.perl.misc newsgroup and the perl bug database at
460http://rt.perl.org/perlbug/ . There may also be information at
461http://www.perl.org/ , the Perl Home Page.
44691e6f 462
e08634c5
SH
463If you believe you have an unreported bug, please run the L<perlbug> program
464included with your release. Be sure to trim your bug down to a tiny but
465sufficient test case. Your bug report, along with the output of C<perl -V>,
466will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
467
468If the bug you are reporting has security implications, which make it
e08634c5
SH
469inappropriate to send to a publicly archived mailing list, then please send it
470to perl5-security-report@perl.org. This points to a closed subscription
471unarchived mailing list, which includes all the core committers, who will be
472able to help assess the impact of issues, figure out a resolution, and help
f9001595 473co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
474platforms on which Perl is supported. Please only use this address for
475security issues in the Perl core, not for modules independently distributed on
476CPAN.
44691e6f
AB
477
478=head1 SEE ALSO
479
e08634c5
SH
480The F<Changes> file for an explanation of how to view exhaustive details on
481what changed.
44691e6f
AB
482
483The F<INSTALL> file for how to build Perl.
484
485The F<README> file for general stuff.
486
487The F<Artistic> and F<Copying> files for copyright information.
488
489=cut