This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta - Fill in descriptions of module upgrades and new tests
[perl5.git] / pod / perldelta.pod
CommitLineData
44691e6f
AB
1=encoding utf8
2
3=head1 NAME
4
ba03bc34
SH
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.4
e128ab2c 9
4eabcf70 10=head1 DESCRIPTION
6db9054f 11
ba03bc34 12This document describes differences between the 5.19.3 release and the 5.19.4
e08634c5 13release.
6db9054f 14
ba03bc34
SH
15If you are upgrading from an earlier release such as 5.19.2, first read
16L<perl5193delta>, which describes differences between 5.19.2 and 5.19.3.
a3fb66a4 17
ba03bc34 18=head1 Notice
a3fb66a4 19
ba03bc34 20XXX Any important notices here
a3fb66a4 21
ba03bc34 22=head1 Core Enhancements
a3fb66a4 23
ba03bc34
SH
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.
a3fb66a4 27
ba03bc34 28[ List each enhancement as a =head2 entry ]
a3fb66a4 29
ba03bc34 30=head1 Security
a3fb66a4 31
ba03bc34
SH
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.
4725e868 35
ba03bc34 36[ List each security issue as a =head2 entry ]
a3fb66a4 37
ba03bc34 38=head1 Incompatible Changes
a3fb66a4 39
ba03bc34 40XXX For a release on a stable branch, this section aspires to be:
a3fb66a4 41
ba03bc34
SH
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.
a3fb66a4 45
ba03bc34 46[ List each incompatible change as a =head2 entry ]
a3fb66a4 47
ba03bc34 48=head1 Deprecations
a3fb66a4 49
ba03bc34 50XXX Any deprecated features, syntax, modules etc. should be listed here.
a3fb66a4 51
ba03bc34 52=head2 Module removals
4725e868 53
ba03bc34 54XXX Remove this section if inapplicable.
669d990b 55
ba03bc34
SH
56The following modules will be removed from the core distribution in a
57future release, and will at that time need to be installed from CPAN.
58Distributions on CPAN which require these modules will need to list them as
59prerequisites.
669d990b 60
ba03bc34
SH
61The core versions of these modules will now issue C<"deprecated">-category
62warnings to alert you to this fact. To silence these deprecation warnings,
63install the modules in question from CPAN.
669d990b 64
ba03bc34
SH
65Note that these are (with rare exceptions) fine modules that you are encouraged
66to continue to use. Their disinclusion from core primarily hinges on their
67necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
68not usually on concerns over their design.
2cf99697 69
ba03bc34 70=over
2cf99697 71
ba03bc34
SH
72XXX Note that deprecated modules should be listed here even if they are listed
73as an updated module in the L</Modules and Pragmata> section.
21d55435 74
ba03bc34 75=back
0f0eae2c 76
ba03bc34 77[ List each other deprecation as a =head2 entry ]
21d55435 78
ba03bc34 79=head1 Performance Enhancements
a3fb66a4 80
ba03bc34
SH
81XXX Changes which enhance performance without changing behaviour go here.
82There may well be none in a stable release.
a3fb66a4 83
ba03bc34 84[ List each enhancement as a =item entry ]
a3fb66a4 85
ba03bc34 86=over 4
a3fb66a4 87
2c99af42
SH
88=item *
89
ba03bc34 90XXX
2c99af42 91
c0ca71c9 92=back
42bff0d9 93
ba03bc34 94=head1 Modules and Pragmata
195e3ea0 95
ba03bc34
SH
96XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
97go here. If Module::CoreList is updated, generate an initial draft of the
98following sections using F<Porting/corelist-perldelta.pl>, which prints stub
99entries to STDOUT. Results can be pasted in place of the '=head2' entries
100below. A paragraph summary for important changes should then be added by hand.
101In an ideal world, dual-life modules would have a F<Changes> file that could be
102cribbed.
195e3ea0 103
ba03bc34 104[ Within each section, list entries as a =item entry ]
195e3ea0 105
ba03bc34 106=head2 New Modules and Pragmata
195e3ea0
SH
107
108=over 4
109
110=item *
111
ba03bc34 112XXX
195e3ea0
SH
113
114=back
115
ba03bc34 116=head2 Updated Modules and Pragmata
42bff0d9 117
38663f11 118=over 4
42bff0d9
DG
119
120=item *
121
8c24c1f7 122L<B> has been upgraded from version 1.45 to 1.46.
00c5962f
TC
123
124The fix for [perl #118525] introduced a regression in the behaviour of
125C<B::CV::GV>, changing the return value from a C<B::SPECIAL> object on
126a C<NULL> C<CvGV> to C<undef>. C<B::CV::GV> again returns a
127C<B::SPECIAL> object in this case. [perl #119351]
128
129=item *
130
8c24c1f7
SH
131L<B::Concise> has been upgraded from version 0.98 to 0.99.
132
5b903226 133The handling of the C<glob> operator, broken since Perl 5.17.6, has been fixed.
8c24c1f7
SH
134
135=item *
136
d5dcec3a
Z
137L<Carp> has been upgraded from version 1.31 to 1.32.
138
6ffbec2c
Z
139=over 4
140
141=item *
142
143In stack traces, subroutine arguments that are strings are now quoted
144in a consistent manner, regardless of what characters they contain and
145how they're internally represented.
146
147=item *
148
bf4588d0 149C<Carp> now won't vivify the C<overload::StrVal> glob or subroutine or the
bd098b9a 150C<overload> stash.
6ffbec2c
Z
151
152=item *
153
154C<Carp> now avoids some unwanted Unicode warnings on older Perls. This
155doesn't affect behaviour with current Perl.
156
157=item *
158
bf4588d0
Z
159C<Carp::Heavy> detects version mismatch with C<Carp>, to give a good
160error message if a current (stub) C<Carp::Heavy> gets loaded by an old
161C<Carp> that expects C<Carp::Heavy> to provide subroutines.
d5dcec3a 162
6ffbec2c
Z
163=back
164
c963f488
SH
165=item *
166
8c24c1f7
SH
167L<Data::Dumper> has been upgraded from version 2.148 to 2.149.
168
5b903226
SH
169This upgrade is part of a larger change to make the array interface 64-bit safe
170by using SSize_t instead of I32 for array indices.
8c24c1f7
SH
171
172=item *
173
174L<Devel::Peek> has been upgraded from version 1.13 to 1.14.
175
5b903226
SH
176This upgrade is part of a larger change to preserve referential identity when
177passing C<undef> to a subroutine by using NULL rather than &PL_sv_undef for
178nonexistent array elements.
8c24c1f7
SH
179
180=item *
181
182L<DynaLoader> has been upgraded from version 1.19 to 1.20.
183
5b903226
SH
184The documentation now makes it clear, as has always been the case, that
185C<dl_unload_file> is only called automatically to unload all loaded shared
186objects if the perl interpreter was built with the C macro
187DL_UNLOAD_ALL_AT_EXIT defined.
188
189=item *
190
191L<ExtUtils::MakeMaker> has been upgraded from version 6.72 to 6.74.
192
193Numerous updates and bug fixes are incorporated. See the F<Changes> file for
194full details.
8c24c1f7
SH
195
196=item *
197
610ee5e3
TC
198L<File::Glob> has been upgraded from version 1.20 to 1.21.
199
200C<glob()> now warns in the context of C<use warnings "syscalls";> if
201the supplied pattern has an internal NUL (C<"\0">) character.
202
d5dcec3a
Z
203=item *
204
8c24c1f7
SH
205L<IPC::Open3> has been upgraded from 1.15 to 1.16.
206
5b903226
SH
207This upgrade is part of a larger change to preserve referential identity when
208passing C<undef> to a subroutine by using NULL rather than &PL_sv_undef for
209nonexistent array elements.
8c24c1f7
SH
210
211=item *
212
a8479f0e
TC
213L<Math::BigInt> has been upgraded from version 1.9992 to 1.9993.
214
215Cleaned up the L<Math::BigInt> and L<Math::BigFloat> documentation to
216be more consistent with other perl documentation. [perl #86686]
217
218Added a bint() method for rounding towards zero. [perl #85296]
219
220=item *
221
8c24c1f7
SH
222L<Math::BigInt::FastCalc> has been upgraded from version 0.30 to 0.31.
223
5b903226
SH
224This upgrade is part of a larger change to make the array interface 64-bit safe
225by using SSize_t instead of I32 for array indices.
8c24c1f7
SH
226
227=item *
228
37287258
SH
229L<Module::CoreList> has been upgraded from version 2.97 to 2.98.
230
231The list of Perl versions covered has been updated.
1fdd5e53 232
68cdd4b5
SH
233=item *
234
235L<Module::Metadata> has been upgraded from version 1.000014 to 1.000016.
236
237The module's DESCRIPTION has been re-worded regarding safety/security to
238satisfy CVE-2013-1437.
239
93f72154
SH
240=item *
241
8c24c1f7
SH
242L<mro> has been upgraded from 1.13 to 1.14.
243
5b903226
SH
244This upgrade is part of a larger change to make the array interface 64-bit safe
245by using SSize_t instead of I32 for array indices.
8c24c1f7
SH
246
247=item *
248
249L<Perl::OSType> has been upgraded from version 1.003 to 1.004.
93f72154
SH
250
251The Unix OSType 'bitrig' has been added.
252
8c24c1f7
SH
253=item *
254
255L<re> has been upgraded from version 0.25 to 0.26.
256
5b903226 257A function signature has been corrected in the XS implementation.
8c24c1f7
SH
258
259=item *
260
261L<Storable> has been upgraded from version 2.46 to 2.47.
262
5b903226
SH
263This upgrade is part of a larger change to preserve referential identity when
264passing C<undef> to a subroutine by using NULL rather than &PL_sv_undef for
265nonexistent array elements.
8c24c1f7
SH
266
267=item *
268
269L<warnings> has been upgraded from version 1.18 to 1.19.
270
5b903226
SH
271The C<syscalls> warnings category has been added to check for embedded NUL
272(C<"\0">) characters in path names and string arguments to syscalls.
8c24c1f7
SH
273
274=item *
275
276L<XS::Typemap> has been upgraded from version 0.10 to 0.11.
277
583aa5c2
RS
278=back
279
ba03bc34 280=head2 Removed Modules and Pragmata
a3fb66a4
SH
281
282=over 4
283
284=item *
285
ba03bc34 286XXX
a3fb66a4
SH
287
288=back
289
ba03bc34 290=head1 Documentation
8fecfff0 291
ba03bc34
SH
292XXX Changes to files in F<pod/> go here. Consider grouping entries by
293file and be sure to link to the appropriate page, e.g. L<perlfunc>.
8fecfff0 294
ba03bc34 295=head2 New Documentation
8fecfff0 296
ba03bc34 297XXX Changes which create B<new> files in F<pod/> go here.
195e3ea0 298
ba03bc34 299=head3 L<XXX>
195e3ea0 300
ba03bc34 301XXX Description of the purpose of the new file here
195e3ea0 302
ba03bc34 303=head2 Changes to Existing Documentation
195e3ea0 304
ba03bc34
SH
305XXX Changes which significantly change existing files in F<pod/> go here.
306However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
307section.
195e3ea0 308
ba03bc34 309=head3 L<XXX>
a3fb66a4
SH
310
311=over 4
312
313=item *
314
ba03bc34 315XXX Description of the change here
a3fb66a4
SH
316
317=back
318
c0ca71c9
AP
319=head1 Diagnostics
320
321The following additions or changes have been made to diagnostic output,
322including warnings and fatal error messages. For the complete list of
323diagnostic messages, see L<perldiag>.
324
ba03bc34
SH
325XXX New or changed warnings emitted by the core's C<C> code go here. Also
326include any changes in L<perldiag> that reconcile it to the C<C> code.
327
c0ca71c9
AP
328=head2 New Diagnostics
329
ba03bc34
SH
330XXX Newly added diagnostic messages go under here, separated into New Errors
331and New Warnings
332
12dcbffb 333=head3 New Errors
583aa5c2 334
38663f11 335=over 4
583aa5c2 336
b8a02ff1 337=item *
583aa5c2 338
ba03bc34 339XXX L<message|perldiag/"message">
583aa5c2 340
b8a02ff1 341=back
583aa5c2 342
12dcbffb 343=head3 New Warnings
96d496e4 344
38663f11 345=over 4
b8a02ff1
DG
346
347=item *
348
610ee5e3
TC
349L<Invalid \0 character in %s for %s: %s\0%s|perldiag/"Invalid \0 character in %s for %s: %s\0%s">
350
351(W syscalls) Embedded \0 characters in pathnames or other syscall
352arguments create a warning since 5.20. The parts after the \0 were
353formerly ignored by syscalls.
487a71ff 354
12dcbffb 355=back
1310e590 356
ba03bc34
SH
357=head2 Changes to Existing Diagnostics
358
359XXX Changes (i.e. rewording) of diagnostic messages go here
e727f86a 360
12dcbffb 361=over 4
e727f86a 362
81ca6d44
FC
363=item *
364
ba03bc34 365XXX Describe change here
e38fc308 366
ba03bc34 367=back
a34da6c4 368
ba03bc34 369=head1 Utility Changes
a34da6c4 370
ba03bc34
SH
371XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
372Most of these are built within the directories F<utils> and F<x2p>.
558673e6 373
ba03bc34
SH
374[ List utility changes as a =head3 entry for each utility and =item
375entries for each change
376Use L<XXX> with program names to get proper documentation linking. ]
558673e6 377
b2d74da6 378=head3 L<find2perl>
47a7c93d 379
12dcbffb 380=over 4
b5a80c26 381
7f1d4316
FC
382=item *
383
f1c106f5 384L<find2perl> now handles C<?> wildcards correctly. [perl #113054]
7f1d4316 385
ba03bc34 386=back
ef947715 387
ba03bc34 388=head1 Configuration and Compilation
ef947715 389
ba03bc34
SH
390XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
391go here. Any other changes to the Perl build process should be listed here.
392However, any platform-specific changes should be listed in the
393L</Platform Support> section, instead.
02bef66e 394
ba03bc34 395[ List changes as a =item entry ].
d30fb844 396
12dcbffb 397=over 4
21c01741 398
467582e8
FC
399=item *
400
4d106cc5
NC
401The F<Makefile.PL> for C<SDBM_File> now generates a better F<Makefile>,
402which avoids a race condition during parallel makes, which could cause the
403build to fail. This is the last known parallel make problem (on *nix
404platforms), and therefore we believe that a parallel make should now always
405be error free.
406
407=for comment
408
409Strictly only for a build where build files such as F<Makefile.SH> have not
410been updated by C<git> in an already configured and built tree.
467582e8 411
ba03bc34 412=back
64da853d 413
ba03bc34 414=head1 Testing
8847717e 415
ba03bc34
SH
416XXX Any significant changes to the testing of a freshly built perl should be
417listed here. Changes which create B<new> files in F<t/> go here as do any
418large changes to the testing harness (e.g. when parallel testing was added).
419Changes to existing files in F<t/> aren't worth summarizing, although the bugs
420that they represent may be covered elsewhere.
8847717e 421
ba03bc34 422[ List each test improvement as a =item entry ]
f1b856da 423
ba03bc34 424=over 4
f1b856da 425
eaed284b
FC
426=item *
427
5b903226
SH
428The test script F<t/bigmem/regexp.t> has been added to test that regular
429expression matches on very large strings now succeeds as expected.
8c24c1f7
SH
430
431=item *
432
5b903226
SH
433Various cases of C<die>, C<last>, C<goto> and C<exit> triggering C<DESTROY> are
434now tested by the new test script F<t/op/rt119311.t>.
8c24c1f7
SH
435
436=item *
437
5b903226
SH
438The new test script F<t/win32/signal.t> tests that C<$!> and C<$^E> are now
439preserved across signal handlers by the Win32 signal emulation code.
8c24c1f7
SH
440
441=item *
442
5b903226
SH
443The test script F<t/x2p/find2perl.t> has been added to test the F<find2perl>
444program on platforms where it is practical to do so.
eaed284b 445
ba03bc34 446=back
0335212c 447
ba03bc34 448=head1 Platform Support
0335212c 449
ba03bc34 450XXX Any changes to platform support should be listed in the sections below.
c3e455cf 451
ba03bc34
SH
452[ Within the sections, list each platform as a =item entry with specific
453changes as paragraphs below it. ]
c3e455cf 454
ba03bc34 455=head2 New Platforms
019705bc 456
ba03bc34
SH
457XXX List any platforms that this version of perl compiles on, that previous
458versions did not. These will either be enabled by new files in the F<hints/>
459directories, or new subdirectories and F<README> files at the top level of the
460source tree.
019705bc 461
ba03bc34 462=over 4
25921d77 463
44d412d1 464=item Bitrig
25921d77 465
44d412d1 466Compile support has been added for Bitrig, a fork of OpenBSD
28ea507e 467
ba03bc34 468=back
28ea507e 469
ba03bc34 470=head2 Discontinued Platforms
28ea507e 471
ba03bc34 472XXX List any platforms that this version of perl no longer compiles on.
28ea507e 473
ba03bc34 474=over 4
074d6753 475
ba03bc34 476=item XXX-some-platform
074d6753 477
ba03bc34 478XXX
4e5b563d 479
ba03bc34 480=back
4e5b563d 481
ba03bc34 482=head2 Platform-Specific Notes
ee818f56 483
ba03bc34
SH
484XXX List any changes for specific platforms. This could include configuration
485and compilation changes or changes in portability/compatibility. However,
486changes within modules for platforms should generally be listed in the
487L</Modules and Pragmata> section.
ee818f56 488
ba03bc34 489=over 4
c054cc81 490
8c24c1f7 491=item WinCE
c054cc81 492
5b903226
SH
493The building of XS modules has largely been restored. Several still cannot
494(yet) be built but it is now possible to build Perl on WinCE with only a couple
495of further patches (to L<Socket> and L<ExtUtils::MakeMaker>), hopefully to be
496incorporated soon.
efcbb8b2 497
ba03bc34 498=back
efcbb8b2 499
ba03bc34 500=head1 Internal Changes
36813eeb 501
ba03bc34
SH
502XXX Changes which affect the interface available to C<XS> code go here. Other
503significant internal changes for future core maintainers should be noted as
504well.
36813eeb 505
ba03bc34 506[ List each change as a =item entry ]
52937067 507
ba03bc34 508=over 4
52937067 509
6760cac5
FC
510=item *
511
ba03bc34 512XXX
671f9ff7 513
ba03bc34 514=back
671f9ff7 515
ba03bc34 516=head1 Selected Bug Fixes
912a9a8f 517
ba03bc34
SH
518XXX Important bug fixes in the core language are summarized here. Bug fixes in
519files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
912a9a8f 520
ba03bc34 521[ List each fix as a =item entry ]
0d25b9d4 522
ba03bc34 523=over 4
0d25b9d4 524
a82207ba
FC
525=item *
526
3d05c417
TC
527The value of C<$^E> is now saved across signal handlers on
528Win32. [perl #85104]
18e2e6cd 529
ba03bc34 530=back
18e2e6cd 531
ba03bc34 532=head1 Known Problems
a82207ba 533
ba03bc34
SH
534XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
535tests that had to be C<TODO>ed for the release would be noted here. Unfixed
536platform specific bugs also go here.
31d5dc65 537
ba03bc34 538[ List each fix as a =item entry ]
31d5dc65 539
ba03bc34 540=over 4
31d5dc65 541
74dac2b5
FC
542=item *
543
ba03bc34 544XXX
74dac2b5 545
ba03bc34 546=back
8fecfff0 547
ba03bc34 548=head1 Obituary
8fecfff0 549
ba03bc34
SH
550XXX If any significant core contributor has died, we've added a short obituary
551here.
d7bfa554 552
583aa5c2 553=head1 Acknowledgements
a75569c0 554
ba03bc34
SH
555XXX Generate this with:
556
557 perl Porting/acknowledgements.pl v5.19.3..HEAD
f5b73711 558
44691e6f
AB
559=head1 Reporting Bugs
560
e08634c5
SH
561If you find what you think is a bug, you might check the articles recently
562posted to the comp.lang.perl.misc newsgroup and the perl bug database at
563http://rt.perl.org/perlbug/ . There may also be information at
564http://www.perl.org/ , the Perl Home Page.
44691e6f 565
e08634c5
SH
566If you believe you have an unreported bug, please run the L<perlbug> program
567included with your release. Be sure to trim your bug down to a tiny but
568sufficient test case. Your bug report, along with the output of C<perl -V>,
569will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
570
571If the bug you are reporting has security implications, which make it
e08634c5
SH
572inappropriate to send to a publicly archived mailing list, then please send it
573to perl5-security-report@perl.org. This points to a closed subscription
574unarchived mailing list, which includes all the core committers, who will be
575able to help assess the impact of issues, figure out a resolution, and help
f9001595 576co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
577platforms on which Perl is supported. Please only use this address for
578security issues in the Perl core, not for modules independently distributed on
579CPAN.
44691e6f
AB
580
581=head1 SEE ALSO
582
e08634c5
SH
583The F<Changes> file for an explanation of how to view exhaustive details on
584what changed.
44691e6f
AB
585
586The F<INSTALL> file for how to build Perl.
587
588The F<README> file for general stuff.
589
590The F<Artistic> and F<Copying> files for copyright information.
591
592=cut