This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for #79908/137da2b
[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
1448059e
TC
145L<Carp> has been upgraded from 1.30 to 1.31
146
147L<Carp> now handles objects with string overloads. It also allows objects
148to specify how they appear in the stack dump with a C<CARP_TRACE> method,
149and also allows the user to specify their own formatter for objects without
150C<CARP_TRACE> as well as other references. [perl #92446]
151
9a743a6d
SH
152=item *
153
ef379d05
SH
154L<Compress::Raw::Bzip2> has been upgraded from 2.061 to 2.062.
155
156=item *
157
158L<Compress::Raw::Zlib> has been upgraded from 2.061 to 2.062.
159
160=item *
161
89e01640
SH
162L<Config::Perl::V> has been upgraded from version 0.18 to 0.19.
163
164=item *
165
cffd634c
TC
166L<Data::Dumper> has been upgraded from version 2.147 to 2.148.
167
168The compatbility of the XS implementation with the pure perl version
169under C<Useqq> has been improved. [perl #118933]
42bff0d9 170
2cf99697
TC
171=item *
172
8b0411a9
TC
173L<Devel::Peek> has been upgraded from version 1.12 to 1.13.
174
175The C<SvREFCNT_inc()> and C<SvREFCNT_dec()> functions have been
176removed and C<SvREFCNT()> will now work on non-scalars. [perl #117793]
177
178=item *
179
9a743a6d
SH
180L<Exporter> has been upgraded from version 5.68 to 5.69.
181
182L<Exporter> would ignore custom C<$SIG{__WARN__}> handlers in
183C<Exporter::Heavy>. [perl #39739]
184
185=item *
186
ef379d05
SH
187The IO-Compress module collection has been upgraded from 2.061 to 2.062.
188
189=item *
190
c7e51fe7
SH
191L<IPC::Cmd> has been upgraded from version 0.82 to 0.84.
192
193C<run_forked> has various fixes/improvements, L<Socket> is only used where
194needed and a regression introduced in 0.78 has been fixed.
195
196=item *
197
07513bb4 198The libnet module collection has been upgraded from version 1.22 to 1.23.
8723f121
SH
199
200=item *
201
6a9ebaf3 202L<List::Util> has been upgraded from version 1.27 to 1.30
2dc8d725 203
6a9ebaf3
SH
204L<List::Util> now includes C<pairgrep>, C<pairmap>, C<pairs>, C<pairkeys>,
205C<pairvalues> and C<pairfirst> functions that operate on even-sized lists of
206pairs.
2dc8d725
CBW
207
208=item *
209
4725e868
SH
210L<parent> has been upgraded from version 0.225 to 0.226.
211
212=item *
213
669d990b
SH
214L<Socket> has been upgraded from version 2.010 to 2.011.
215
216Handle FreeBSD (or other platforms) returning shorter AF_UNIX sockaddr
217structures due to embedded sun_len. [cpan #86613]
218
219=item *
220
2cf99697
TC
221L<Storable> has been upgraded from version 2.45 to 2.46.
222
223Avoid creating temporary objects for STORABLE_attach when they aren't
224required. [perl #118907]
225
21d55435
SH
226=item *
227
228L<Time::Piece> has been upgraded from version 1.21 to 1.22.
229
c0ca71c9 230=back
42bff0d9 231
12dcbffb 232=head2 Removed Modules and Pragmata
dbd04185 233
38663f11 234=over 4
583aa5c2 235
1fdd5e53
KW
236=item *
237
12dcbffb 238XXX
42bff0d9 239
38663f11 240=back
42bff0d9 241
12dcbffb 242=head1 Documentation
989e4501 243
12dcbffb
AP
244XXX Changes to files in F<pod/> go here. Consider grouping entries by
245file and be sure to link to the appropriate page, e.g. L<perlfunc>.
989e4501 246
12dcbffb 247=head2 New Documentation
989e4501 248
12dcbffb 249XXX Changes which create B<new> files in F<pod/> go here.
42bff0d9 250
12dcbffb 251=head3 L<XXX>
42bff0d9 252
12dcbffb 253XXX Description of the purpose of the new file here
42bff0d9 254
12dcbffb 255=head2 Changes to Existing Documentation
42bff0d9 256
12dcbffb
AP
257XXX Changes which significantly change existing files in F<pod/> go here.
258However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
259section.
42bff0d9 260
3031ec7a 261=head3 L<perlopentut>
42bff0d9 262
38663f11 263=over 4
42bff0d9
DG
264
265=item *
266
3031ec7a
RS
267The C<open> tutorial has been completely rewriten by Tom Christiansen, and now
268focuses on covering only the basics, rather than providing a comprehensive
269reference to all things openable. This rewrite came as the result of a
270vigorous discussion on perl5-porters kicked off by a set of improvements
271written by Alexander Hartmaier to the existing C<perlopentut>. A "more than
272you ever wanted to know about C<open>" document may follow in subsequent
273versions of perl.
1fdd5e53 274
583aa5c2
RS
275=back
276
c0ca71c9
AP
277=head1 Diagnostics
278
279The following additions or changes have been made to diagnostic output,
280including warnings and fatal error messages. For the complete list of
281diagnostic messages, see L<perldiag>.
282
12dcbffb
AP
283XXX New or changed warnings emitted by the core's C<C> code go here. Also
284include any changes in L<perldiag> that reconcile it to the C<C> code.
285
c0ca71c9
AP
286=head2 New Diagnostics
287
12dcbffb
AP
288XXX Newly added diagnostic messages go under here, separated into New Errors
289and New Warnings
290
291=head3 New Errors
583aa5c2 292
38663f11 293=over 4
583aa5c2 294
b8a02ff1 295=item *
583aa5c2 296
12dcbffb 297XXX L<message|perldiag/"message">
583aa5c2 298
b8a02ff1 299=back
583aa5c2 300
12dcbffb 301=head3 New Warnings
96d496e4 302
38663f11 303=over 4
b8a02ff1
DG
304
305=item *
306
12dcbffb 307XXX L<message|perldiag/"message">
96d496e4 308
12dcbffb 309=back
1310e590 310
12dcbffb 311=head2 Changes to Existing Diagnostics
e727f86a 312
12dcbffb 313XXX Changes (i.e. rewording) of diagnostic messages go here
e727f86a 314
12dcbffb 315=over 4
e727f86a 316
81ca6d44
FC
317=item *
318
12dcbffb 319XXX Describe change here
81ca6d44 320
96d496e4
RS
321=back
322
12dcbffb 323=head1 Utility Changes
583aa5c2 324
12dcbffb
AP
325XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
326Most of these are built within the directories F<utils> and F<x2p>.
71e6aba6 327
12dcbffb
AP
328[ List utility changes as a =head3 entry for each utility and =item
329entries for each change
330Use L<XXX> with program names to get proper documentation linking. ]
d5f315e8 331
12dcbffb 332=head3 L<XXX>
e38fc308
NC
333
334=over 4
335
336=item *
337
12dcbffb 338XXX
e38fc308
NC
339
340=back
341
12dcbffb 342=head1 Configuration and Compilation
2426c394 343
12dcbffb
AP
344XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
345go here. Any other changes to the Perl build process should be listed here.
346However, any platform-specific changes should be listed in the
347L</Platform Support> section, instead.
4724da03 348
12dcbffb 349[ List changes as a =item entry ].
583aa5c2 350
38663f11 351=over 4
a34da6c4 352
12dcbffb 353=item *
a34da6c4 354
12dcbffb 355XXX
a34da6c4 356
583aa5c2
RS
357=back
358
12dcbffb 359=head1 Testing
583aa5c2 360
12dcbffb
AP
361XXX Any significant changes to the testing of a freshly built perl should be
362listed here. Changes which create B<new> files in F<t/> go here as do any
363large changes to the testing harness (e.g. when parallel testing was added).
364Changes to existing files in F<t/> aren't worth summarizing, although the bugs
365that they represent may be covered elsewhere.
1de7c8e6 366
12dcbffb 367[ List each test improvement as a =item entry ]
9c800862 368
12dcbffb 369=over 4
aaf54772 370
b7bbd8b6
FC
371=item *
372
12dcbffb 373XXX
b7bbd8b6 374
583aa5c2
RS
375=back
376
12dcbffb 377=head1 Platform Support
d7bfa554 378
12dcbffb 379XXX Any changes to platform support should be listed in the sections below.
81d3ed5a 380
12dcbffb
AP
381[ Within the sections, list each platform as a =item entry with specific
382changes as paragraphs below it. ]
81d3ed5a 383
12dcbffb 384=head2 New Platforms
0b023496 385
12dcbffb
AP
386XXX List any platforms that this version of perl compiles on, that previous
387versions did not. These will either be enabled by new files in the F<hints/>
388directories, or new subdirectories and F<README> files at the top level of the
389source tree.
0b023496 390
12dcbffb 391=over 4
e11f653d 392
12dcbffb 393=item XXX-some-platform
5e0164b2 394
12dcbffb 395XXX
5e0164b2 396
12dcbffb 397=back
e11f653d 398
12dcbffb 399=head2 Discontinued Platforms
8be8cdec 400
12dcbffb 401XXX List any platforms that this version of perl no longer compiles on.
8be8cdec 402
12dcbffb 403=over 4
07a522a5 404
12dcbffb 405=item XXX-some-platform
07a522a5 406
12dcbffb 407XXX
71b4007c 408
12dcbffb 409=back
71b4007c 410
12dcbffb 411=head2 Platform-Specific Notes
f6b1d2f5 412
12dcbffb
AP
413XXX List any changes for specific platforms. This could include configuration
414and compilation changes or changes in portability/compatibility. However,
415changes within modules for platforms should generally be listed in the
416L</Modules and Pragmata> section.
f6b1d2f5 417
12dcbffb 418=over 4
7e4f209b 419
12dcbffb 420=item XXX-some-platform
7e4f209b 421
12dcbffb 422XXX
558673e6 423
12dcbffb 424=back
558673e6 425
12dcbffb 426=head1 Internal Changes
47a7c93d 427
12dcbffb
AP
428XXX Changes which affect the interface available to C<XS> code go here. Other
429significant internal changes for future core maintainers should be noted as
430well.
47a7c93d 431
12dcbffb 432[ List each change as a =item entry ]
b5a80c26 433
12dcbffb 434=over 4
b5a80c26 435
7f1d4316
FC
436=item *
437
6e6c0044
FC
438C<sv_pos_b2u_flags> has been added to the API. It is similar to
439C<sv_pos_b2u>, but supports long strings on 64-bit platforms.
7f1d4316 440
12dcbffb 441=back
02bef66e 442
12dcbffb 443=head1 Selected Bug Fixes
d30fb844 444
12dcbffb
AP
445XXX Important bug fixes in the core language are summarized here. Bug fixes in
446files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
d30fb844 447
12dcbffb 448[ List each fix as a =item entry ]
21c01741 449
12dcbffb 450=over 4
21c01741 451
467582e8
FC
452=item *
453
5c24ac0b
FC
454Autovivifying a subroutine stub via C<\&$glob> started causing crashes in
455Perl 5.18.0 if the $glob was merely a copy of a real glob, i.e., a scalar
456that had had a glob assigned to it. This has been fixed [perl #119051].
467582e8 457
64da853d
FC
458=item *
459
460On 64-bit platforms C<pos> can now be set to a value higher than 2**31-1
461[perl #72766].
462
8847717e
FC
463=item *
464
465Perl used to leak an implementation detail when it came to referencing the
466return values of certain operators. C<for ($a+$b) { warn \$_; warn \$_ }>
467used to display two different memory addresses, because the C<\> operator
468was copying the variable. Under threaded builds, it would also happen for
469constants (C<for(1) { ... }>). This has been fixed [perl #21979, #78194,
470#89188, #109746, #114838, #115388].
471
f1b856da
FC
472=item *
473
474The range operator C<..> was returning the same modifiable scalars with
475each call, unless it was the only thing in a C<foreach> loop header. This
476meant that changes to values within the list returned would be visible the
477next time the operator was executed [perl #3105].
478
eaed284b
FC
479=item *
480
481Constant folding and subroutine inlining no longer cause operations that
482would normally return new modifiable scalars to return read-only values
483instead.
484
0335212c
FC
485=item *
486
487Closures of the form C<sub () { $some_variable }> are no longer inlined,
488causing changes to the variable to be ignored by callers of the subroutine
489[perl #79908].
490
38663f11 491=back
d7bfa554 492
38663f11 493=head1 Known Problems
6810f0ad 494
12dcbffb
AP
495XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
496tests that had to be C<TODO>ed for the release would be noted here. Unfixed
497platform specific bugs also go here.
498
499[ List each fix as a =item entry ]
500
38663f11 501=over 4
14fd9356
FC
502
503=item *
504
12dcbffb 505XXX
0e417e4d 506
38663f11 507=back
583aa5c2 508
12dcbffb
AP
509=head1 Obituary
510
511XXX If any significant core contributor has died, we've added a short obituary
512here.
513
583aa5c2 514=head1 Acknowledgements
a75569c0 515
12dcbffb
AP
516XXX Generate this with:
517
518 perl Porting/acknowledgements.pl v5.19.2..HEAD
f5b73711 519
44691e6f
AB
520=head1 Reporting Bugs
521
e08634c5
SH
522If you find what you think is a bug, you might check the articles recently
523posted to the comp.lang.perl.misc newsgroup and the perl bug database at
524http://rt.perl.org/perlbug/ . There may also be information at
525http://www.perl.org/ , the Perl Home Page.
44691e6f 526
e08634c5
SH
527If you believe you have an unreported bug, please run the L<perlbug> program
528included with your release. Be sure to trim your bug down to a tiny but
529sufficient test case. Your bug report, along with the output of C<perl -V>,
530will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
531
532If the bug you are reporting has security implications, which make it
e08634c5
SH
533inappropriate to send to a publicly archived mailing list, then please send it
534to perl5-security-report@perl.org. This points to a closed subscription
535unarchived mailing list, which includes all the core committers, who will be
536able to help assess the impact of issues, figure out a resolution, and help
f9001595 537co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
538platforms on which Perl is supported. Please only use this address for
539security issues in the Perl core, not for modules independently distributed on
540CPAN.
44691e6f
AB
541
542=head1 SEE ALSO
543
e08634c5
SH
544The F<Changes> file for an explanation of how to view exhaustive details on
545what changed.
44691e6f
AB
546
547The F<INSTALL> file for how to build Perl.
548
549The F<README> file for general stuff.
550
551The F<Artistic> and F<Copying> files for copyright information.
552
553=cut