This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for 6ca940a96, ed51a345f
[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
00c5962f
TC
122L<B> has been upgraded from 1.45 to 1.46.
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
d5dcec3a
Z
131L<Carp> has been upgraded from version 1.31 to 1.32.
132
6ffbec2c
Z
133=over 4
134
135=item *
136
137In stack traces, subroutine arguments that are strings are now quoted
138in a consistent manner, regardless of what characters they contain and
139how they're internally represented.
140
141=item *
142
bf4588d0 143C<Carp> now won't vivify the C<overload::StrVal> glob or subroutine or the
bd098b9a 144C<overload> stash.
6ffbec2c
Z
145
146=item *
147
148C<Carp> now avoids some unwanted Unicode warnings on older Perls. This
149doesn't affect behaviour with current Perl.
150
151=item *
152
bf4588d0
Z
153C<Carp::Heavy> detects version mismatch with C<Carp>, to give a good
154error message if a current (stub) C<Carp::Heavy> gets loaded by an old
155C<Carp> that expects C<Carp::Heavy> to provide subroutines.
d5dcec3a 156
6ffbec2c
Z
157=back
158
610ee5e3
TC
159L<File::Glob> has been upgraded from version 1.20 to 1.21.
160
161C<glob()> now warns in the context of C<use warnings "syscalls";> if
162the supplied pattern has an internal NUL (C<"\0">) character.
163
d5dcec3a
Z
164=item *
165
a8479f0e
TC
166L<Math::BigInt> has been upgraded from version 1.9992 to 1.9993.
167
168Cleaned up the L<Math::BigInt> and L<Math::BigFloat> documentation to
169be more consistent with other perl documentation. [perl #86686]
170
171Added a bint() method for rounding towards zero. [perl #85296]
172
173=item *
174
37287258
SH
175L<Module::CoreList> has been upgraded from version 2.97 to 2.98.
176
177The list of Perl versions covered has been updated.
1fdd5e53 178
68cdd4b5
SH
179=item *
180
181L<Module::Metadata> has been upgraded from version 1.000014 to 1.000016.
182
183The module's DESCRIPTION has been re-worded regarding safety/security to
184satisfy CVE-2013-1437.
185
93f72154
SH
186=item *
187
188L<Perl::OSType> has been upgraded from 1.003 to 1.004.
189
190The Unix OSType 'bitrig' has been added.
191
583aa5c2
RS
192=back
193
ba03bc34 194=head2 Removed Modules and Pragmata
a3fb66a4
SH
195
196=over 4
197
198=item *
199
ba03bc34 200XXX
a3fb66a4
SH
201
202=back
203
ba03bc34 204=head1 Documentation
8fecfff0 205
ba03bc34
SH
206XXX Changes to files in F<pod/> go here. Consider grouping entries by
207file and be sure to link to the appropriate page, e.g. L<perlfunc>.
8fecfff0 208
ba03bc34 209=head2 New Documentation
8fecfff0 210
ba03bc34 211XXX Changes which create B<new> files in F<pod/> go here.
195e3ea0 212
ba03bc34 213=head3 L<XXX>
195e3ea0 214
ba03bc34 215XXX Description of the purpose of the new file here
195e3ea0 216
ba03bc34 217=head2 Changes to Existing Documentation
195e3ea0 218
ba03bc34
SH
219XXX Changes which significantly change existing files in F<pod/> go here.
220However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics>
221section.
195e3ea0 222
ba03bc34 223=head3 L<XXX>
a3fb66a4
SH
224
225=over 4
226
227=item *
228
ba03bc34 229XXX Description of the change here
a3fb66a4
SH
230
231=back
232
c0ca71c9
AP
233=head1 Diagnostics
234
235The following additions or changes have been made to diagnostic output,
236including warnings and fatal error messages. For the complete list of
237diagnostic messages, see L<perldiag>.
238
ba03bc34
SH
239XXX New or changed warnings emitted by the core's C<C> code go here. Also
240include any changes in L<perldiag> that reconcile it to the C<C> code.
241
c0ca71c9
AP
242=head2 New Diagnostics
243
ba03bc34
SH
244XXX Newly added diagnostic messages go under here, separated into New Errors
245and New Warnings
246
12dcbffb 247=head3 New Errors
583aa5c2 248
38663f11 249=over 4
583aa5c2 250
b8a02ff1 251=item *
583aa5c2 252
ba03bc34 253XXX L<message|perldiag/"message">
583aa5c2 254
b8a02ff1 255=back
583aa5c2 256
12dcbffb 257=head3 New Warnings
96d496e4 258
38663f11 259=over 4
b8a02ff1
DG
260
261=item *
262
610ee5e3
TC
263L<Invalid \0 character in %s for %s: %s\0%s|perldiag/"Invalid \0 character in %s for %s: %s\0%s">
264
265(W syscalls) Embedded \0 characters in pathnames or other syscall
266arguments create a warning since 5.20. The parts after the \0 were
267formerly ignored by syscalls.
487a71ff 268
12dcbffb 269=back
1310e590 270
ba03bc34
SH
271=head2 Changes to Existing Diagnostics
272
273XXX Changes (i.e. rewording) of diagnostic messages go here
e727f86a 274
12dcbffb 275=over 4
e727f86a 276
81ca6d44
FC
277=item *
278
ba03bc34 279XXX Describe change here
e38fc308 280
ba03bc34 281=back
a34da6c4 282
ba03bc34 283=head1 Utility Changes
a34da6c4 284
ba03bc34
SH
285XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
286Most of these are built within the directories F<utils> and F<x2p>.
558673e6 287
ba03bc34
SH
288[ List utility changes as a =head3 entry for each utility and =item
289entries for each change
290Use L<XXX> with program names to get proper documentation linking. ]
558673e6 291
b2d74da6 292=head3 L<find2perl>
47a7c93d 293
12dcbffb 294=over 4
b5a80c26 295
7f1d4316
FC
296=item *
297
f1c106f5 298L<find2perl> now handles C<?> wildcards correctly. [perl #113054]
7f1d4316 299
ba03bc34 300=back
ef947715 301
ba03bc34 302=head1 Configuration and Compilation
ef947715 303
ba03bc34
SH
304XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
305go here. Any other changes to the Perl build process should be listed here.
306However, any platform-specific changes should be listed in the
307L</Platform Support> section, instead.
02bef66e 308
ba03bc34 309[ List changes as a =item entry ].
d30fb844 310
12dcbffb 311=over 4
21c01741 312
467582e8
FC
313=item *
314
4d106cc5
NC
315The F<Makefile.PL> for C<SDBM_File> now generates a better F<Makefile>,
316which avoids a race condition during parallel makes, which could cause the
317build to fail. This is the last known parallel make problem (on *nix
318platforms), and therefore we believe that a parallel make should now always
319be error free.
320
321=for comment
322
323Strictly only for a build where build files such as F<Makefile.SH> have not
324been updated by C<git> in an already configured and built tree.
467582e8 325
ba03bc34 326=back
64da853d 327
ba03bc34 328=head1 Testing
8847717e 329
ba03bc34
SH
330XXX Any significant changes to the testing of a freshly built perl should be
331listed here. Changes which create B<new> files in F<t/> go here as do any
332large changes to the testing harness (e.g. when parallel testing was added).
333Changes to existing files in F<t/> aren't worth summarizing, although the bugs
334that they represent may be covered elsewhere.
8847717e 335
ba03bc34 336[ List each test improvement as a =item entry ]
f1b856da 337
ba03bc34 338=over 4
f1b856da 339
eaed284b
FC
340=item *
341
ba03bc34 342XXX
eaed284b 343
ba03bc34 344=back
0335212c 345
ba03bc34 346=head1 Platform Support
0335212c 347
ba03bc34 348XXX Any changes to platform support should be listed in the sections below.
c3e455cf 349
ba03bc34
SH
350[ Within the sections, list each platform as a =item entry with specific
351changes as paragraphs below it. ]
c3e455cf 352
ba03bc34 353=head2 New Platforms
019705bc 354
ba03bc34
SH
355XXX List any platforms that this version of perl compiles on, that previous
356versions did not. These will either be enabled by new files in the F<hints/>
357directories, or new subdirectories and F<README> files at the top level of the
358source tree.
019705bc 359
ba03bc34 360=over 4
25921d77 361
44d412d1 362=item Bitrig
25921d77 363
44d412d1 364Compile support has been added for Bitrig, a fork of OpenBSD
28ea507e 365
ba03bc34 366=back
28ea507e 367
ba03bc34 368=head2 Discontinued Platforms
28ea507e 369
ba03bc34 370XXX List any platforms that this version of perl no longer compiles on.
28ea507e 371
ba03bc34 372=over 4
074d6753 373
ba03bc34 374=item XXX-some-platform
074d6753 375
ba03bc34 376XXX
4e5b563d 377
ba03bc34 378=back
4e5b563d 379
ba03bc34 380=head2 Platform-Specific Notes
ee818f56 381
ba03bc34
SH
382XXX List any changes for specific platforms. This could include configuration
383and compilation changes or changes in portability/compatibility. However,
384changes within modules for platforms should generally be listed in the
385L</Modules and Pragmata> section.
ee818f56 386
ba03bc34 387=over 4
c054cc81 388
ba03bc34 389=item XXX-some-platform
c054cc81 390
ba03bc34 391XXX
efcbb8b2 392
ba03bc34 393=back
efcbb8b2 394
ba03bc34 395=head1 Internal Changes
36813eeb 396
ba03bc34
SH
397XXX Changes which affect the interface available to C<XS> code go here. Other
398significant internal changes for future core maintainers should be noted as
399well.
36813eeb 400
ba03bc34 401[ List each change as a =item entry ]
52937067 402
ba03bc34 403=over 4
52937067 404
6760cac5
FC
405=item *
406
ba03bc34 407XXX
671f9ff7 408
ba03bc34 409=back
671f9ff7 410
ba03bc34 411=head1 Selected Bug Fixes
912a9a8f 412
ba03bc34
SH
413XXX Important bug fixes in the core language are summarized here. Bug fixes in
414files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
912a9a8f 415
ba03bc34 416[ List each fix as a =item entry ]
0d25b9d4 417
ba03bc34 418=over 4
0d25b9d4 419
a82207ba
FC
420=item *
421
3d05c417
TC
422The value of C<$^E> is now saved across signal handlers on
423Win32. [perl #85104]
18e2e6cd 424
ba03bc34 425=back
18e2e6cd 426
ba03bc34 427=head1 Known Problems
a82207ba 428
ba03bc34
SH
429XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any
430tests that had to be C<TODO>ed for the release would be noted here. Unfixed
431platform specific bugs also go here.
31d5dc65 432
ba03bc34 433[ List each fix as a =item entry ]
31d5dc65 434
ba03bc34 435=over 4
31d5dc65 436
74dac2b5
FC
437=item *
438
ba03bc34 439XXX
74dac2b5 440
ba03bc34 441=back
8fecfff0 442
ba03bc34 443=head1 Obituary
8fecfff0 444
ba03bc34
SH
445XXX If any significant core contributor has died, we've added a short obituary
446here.
d7bfa554 447
583aa5c2 448=head1 Acknowledgements
a75569c0 449
ba03bc34
SH
450XXX Generate this with:
451
452 perl Porting/acknowledgements.pl v5.19.3..HEAD
f5b73711 453
44691e6f
AB
454=head1 Reporting Bugs
455
e08634c5
SH
456If you find what you think is a bug, you might check the articles recently
457posted to the comp.lang.perl.misc newsgroup and the perl bug database at
458http://rt.perl.org/perlbug/ . There may also be information at
459http://www.perl.org/ , the Perl Home Page.
44691e6f 460
e08634c5
SH
461If you believe you have an unreported bug, please run the L<perlbug> program
462included with your release. Be sure to trim your bug down to a tiny but
463sufficient test case. Your bug report, along with the output of C<perl -V>,
464will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
465
466If the bug you are reporting has security implications, which make it
e08634c5
SH
467inappropriate to send to a publicly archived mailing list, then please send it
468to perl5-security-report@perl.org. This points to a closed subscription
469unarchived mailing list, which includes all the core committers, who will be
470able to help assess the impact of issues, figure out a resolution, and help
f9001595 471co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
472platforms on which Perl is supported. Please only use this address for
473security issues in the Perl core, not for modules independently distributed on
474CPAN.
44691e6f
AB
475
476=head1 SEE ALSO
477
e08634c5
SH
478The F<Changes> file for an explanation of how to view exhaustive details on
479what changed.
44691e6f
AB
480
481The F<INSTALL> file for how to build Perl.
482
483The F<README> file for general stuff.
484
485The F<Artistic> and F<Copying> files for copyright information.
486
487=cut