This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta - Consistent perl bug formatting
[perl5.git] / pod / perldelta.pod
CommitLineData
fc671210
SH
1=for todo
2
3b51c3e77db (craigb) - Reduce excessive stat calls in glob on VMS
ec71b45f
SH
4869747506f/00051dd553 (merijn) - gcc 4.9 by default does some optimizations that break perl / -fwrapv is broken prior to gcc-4.3 (#121505)
5fc6f6f37f8 (craigb) - Make perlbug encoding-agnostic in handling prepared reports.
67e6b9e3a66 (craigb) - Attempt to satisfy CRLF expectations in perlbug on Windows.
fc671210 7
44691e6f
AB
8=encoding utf8
9
10=head1 NAME
11
474475f6
AC
12[ this is a template for a new perldelta file. Any text flagged as XXX needs
13to be processed before release. ]
14
15perldelta - what is new for perl v5.19.11
e128ab2c 16
4eabcf70 17=head1 DESCRIPTION
6db9054f 18
474475f6 19This document describes differences between the 5.19.10 release and the 5.19.11
e08634c5 20release.
6db9054f 21
474475f6
AC
22If you are upgrading from an earlier release such as 5.19.9, first read
23L<perl51910delta>, which describes differences between 5.19.9 and 5.19.10.
22730142 24
474475f6 25=head1 Notice
65ebb059 26
474475f6 27XXX Any important notices here
e9251c1a 28
474475f6 29=head1 Core Enhancements
e9251c1a 30
474475f6
AC
31XXX New core language features go here. Summarize user-visible core language
32enhancements. Particularly prominent performance optimisations could go
33here, but most should go in the L</Performance Enhancements> section.
e9251c1a 34
474475f6 35[ List each enhancement as a =head2 entry ]
e9251c1a 36
474475f6 37=head1 Security
e9251c1a 38
474475f6
AC
39XXX Any security-related notices go here. In particular, any security
40vulnerabilities closed should be noted here rather than in the
41L</Selected Bug Fixes> section.
e9251c1a 42
474475f6 43[ List each security issue as a =head2 entry ]
2da736a2 44
474475f6 45=head1 Incompatible Changes
1be87df6 46
474475f6 47XXX For a release on a stable branch, this section aspires to be:
1be87df6 48
474475f6
AC
49 There are no changes intentionally incompatible with 5.XXX.XXX
50 If any exist, they are bugs, and we request that you submit a
51 report. See L</Reporting Bugs> below.
e9251c1a 52
474475f6 53[ List each incompatible change as a =head2 entry ]
e9251c1a 54
474475f6 55=head1 Deprecations
6fa4f5e3 56
474475f6 57XXX Any deprecated features, syntax, modules etc. should be listed here.
6fa4f5e3 58
474475f6 59=head2 Module removals
e9251c1a 60
474475f6 61XXX Remove this section if inapplicable.
e9251c1a 62
474475f6
AC
63The following modules will be removed from the core distribution in a
64future release, and will at that time need to be installed from CPAN.
65Distributions on CPAN which require these modules will need to list them as
66prerequisites.
e9251c1a 67
474475f6
AC
68The core versions of these modules will now issue C<"deprecated">-category
69warnings to alert you to this fact. To silence these deprecation warnings,
70install the modules in question from CPAN.
e9251c1a 71
474475f6
AC
72Note that these are (with rare exceptions) fine modules that you are encouraged
73to continue to use. Their disinclusion from core primarily hinges on their
74necessity to bootstrapping a fully functional, CPAN-capable Perl installation,
75not usually on concerns over their design.
e9251c1a 76
474475f6 77=over
e9251c1a 78
474475f6 79=item XXX
6fa4f5e3 80
474475f6
AC
81XXX Note that deprecated modules should be listed here even if they are listed
82as an updated module in the L</Modules and Pragmata> section.
83
84=back
6fa4f5e3 85
474475f6 86[ List each other deprecation as a =head2 entry ]
6fa4f5e3 87
474475f6 88=head1 Performance Enhancements
6fa4f5e3 89
474475f6
AC
90XXX Changes which enhance performance without changing behaviour go here.
91There may well be none in a stable release.
6fa4f5e3 92
474475f6 93[ List each enhancement as a =item entry ]
6fa4f5e3 94
474475f6 95=over 4
e9251c1a
AC
96
97=item *
98
474475f6 99XXX
3cd3edd2 100
ce5b6630 101=back
0d0bc230 102
ce5b6630 103=head1 Modules and Pragmata
0d0bc230 104
474475f6
AC
105XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/>
106go here. If Module::CoreList is updated, generate an initial draft of the
107following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary
108for important changes should then be added by hand. In an ideal world,
109dual-life modules would have a F<Changes> file that could be cribbed.
769e4861 110
474475f6 111[ Within each section, list entries as a =item entry ]
87776862 112
474475f6 113=head2 New Modules and Pragmata
87776862 114
474475f6 115=over 4
769e4861 116
b314f574 117=item *
769e4861 118
474475f6 119XXX
769e4861 120
474475f6
AC
121=back
122
123=head2 Updated Modules and Pragmata
b314f574 124
474475f6 125=over 4
1175bfe1
TH
126
127=item *
128
f6f3144e
SH
129L<Carp> has been upgraded from version 1.33 to 1.3301.
130
131No changes have been made to the installed code other than the version bump to
132keep in sync with the latest CPAN release.
133
134=item *
135
45a13884
SH
136L<CPAN> has been upgraded from version 2.04-TRIAL to 2.05-TRIAL.
137
138TODO
139
140=item *
141
142L<DB> has been upgraded from version 1.43 to 1.44.
f6f3144e
SH
143
144The debugger now correctly restores its input and output filehandles after
145using the pager command.
146[L<perl #121456|https://rt.perl.org/Public/Bug/Display.html?id=121456>]
147
148=item *
149
e694503c 150L<ExtUtils::Install> has been upgraded from version 1.63 to 1.65.
fc671210 151
ec71b45f
SH
152When upgrading an already-installed file, L<ExtUtils::Install> could mess up
153the permissions of files if the old versions of files were hard or symbolic
154links. This has now been fixed.
155[L<perl #72028|https://rt.perl.org/Public/Bug/Display.html?id=72028>]
156
fc671210
SH
157The MM_TEST_ROOT feature has been removed from the tests.
158
159=item *
160
161L<ExtUtils::MakeMaker> has been upgraded from version 6.92 to 6.94.
162
163A regression in MM_Unix.pm has been resolved.
164[L<#96|https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/issues/96>]
165
166=item *
167
33642846
SH
168L<Module::CoreList> has been upgraded from version 3.09 to 3.10.
169
170The list of Perl versions covered has been updated.
e486a115 171
f6f3144e
SH
172=item *
173
ec71b45f
SH
174L<PerlIO> has been upgraded from version 1.08 to 1.09.
175
176The warning about the use of the C<:utf8> layer has been made more prominent.
177
178=item *
179
f6f3144e
SH
180L<Storable> has been upgraded from version 2.48 to 2.49.
181
182Recognition of tied SVs has been tightened up.
183
7432779b
SH
184=item *
185
186L<Win32> has been upgraded from version 0.48 to 0.49.
187
188This fixes a problem when building with B<gcc> version 4.8.1 from
189L<http://www.mingw.org>.
190[L<cpan #94730|https://rt.cpan.org/Public/Bug/Display.html?id=94730>]
191
474475f6 192=back
e486a115 193
474475f6 194=head2 Removed Modules and Pragmata
e486a115 195
474475f6 196=over 4
b314f574
AC
197
198=item *
199
474475f6 200XXX
b314f574 201
474475f6 202=back
b314f574 203
474475f6 204=head1 Documentation
b314f574 205
474475f6
AC
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>.
b314f574 208
474475f6 209=head2 New Documentation
b314f574 210
474475f6 211XXX Changes which create B<new> files in F<pod/> go here.
b314f574 212
474475f6 213=head3 L<XXX>
85b1cb07 214
474475f6 215XXX Description of the purpose of the new file here
85b1cb07 216
474475f6 217=head2 Changes to Existing Documentation
85b1cb07 218
474475f6
AC
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.
56e97147 222
474475f6 223=head3 L<XXX>
b314f574 224
474475f6 225=over 4
56e97147
SH
226
227=item *
228
474475f6 229XXX Description of the change here
d07feb8f 230
474475f6 231=back
b314f574 232
474475f6 233=head1 Diagnostics
d07feb8f 234
474475f6
AC
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>.
d07feb8f 238
474475f6
AC
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.
1cb49f85 241
474475f6 242=head2 New Diagnostics
b314f574 243
474475f6
AC
244XXX Newly added diagnostic messages go under here, separated into New Errors
245and New Warnings
769e4861 246
474475f6 247=head3 New Errors
a2fd2fa0 248
474475f6 249=over 4
a2fd2fa0 250
b314f574 251=item *
a2fd2fa0 252
474475f6 253XXX L<message|perldiag/"message">
487a122b 254
474475f6 255=back
487a122b 256
474475f6 257=head3 New Warnings
487a122b 258
474475f6 259=over 4
6fbeaf2c 260
b314f574 261=item *
6fbeaf2c 262
474475f6 263XXX L<message|perldiag/"message">
769e4861 264
474475f6 265=back
769e4861 266
474475f6 267=head2 Changes to Existing Diagnostics
acc18285 268
474475f6 269XXX Changes (i.e. rewording) of diagnostic messages go here
acc18285 270
474475f6 271=over 4
acc18285 272
b314f574 273=item *
acc18285 274
ec71b45f
SH
275The now fatal error message C<Character following "\c" must be ASCII> has been
276reworded as C<Character following "\c" must be printable ASCII> to emphasize
277that in C<\cI<X>>, I<X> must be a I<printable (non-control)> ASCII character.
acc18285 278
474475f6 279=back
87776862 280
474475f6 281=head1 Utility Changes
87776862 282
474475f6
AC
283XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here.
284Most of these are built within the directories F<utils> and F<x2p>.
769e4861 285
474475f6
AC
286[ List utility changes as a =head3 entry for each utility and =item
287entries for each change
288Use L<XXX> with program names to get proper documentation linking. ]
769e4861 289
474475f6 290=head3 L<XXX>
769e4861 291
474475f6 292=over 4
769e4861 293
b314f574 294=item *
acc18285 295
474475f6 296XXX
acc18285 297
474475f6 298=back
87776862 299
474475f6 300=head1 Configuration and Compilation
87776862 301
474475f6
AC
302XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools
303go here. Any other changes to the Perl build process should be listed here.
304However, any platform-specific changes should be listed in the
305L</Platform Support> section, instead.
87776862 306
474475f6 307[ List changes as a =item entry ].
727d17a2 308
474475f6 309=over 4
769e4861 310
b314f574 311=item *
769e4861 312
474475f6 313XXX
b314f574 314
474475f6 315=back
b314f574 316
474475f6 317=head1 Testing
b314f574 318
474475f6
AC
319XXX Any significant changes to the testing of a freshly built perl should be
320listed here. Changes which create B<new> files in F<t/> go here as do any
321large changes to the testing harness (e.g. when parallel testing was added).
322Changes to existing files in F<t/> aren't worth summarizing, although the bugs
323that they represent may be covered elsewhere.
b314f574 324
474475f6 325[ List each test improvement as a =item entry ]
b314f574 326
474475f6 327=over 4
b314f574
AC
328
329=item *
330
474475f6 331XXX
769e4861 332
474475f6 333=back
769e4861 334
474475f6 335=head1 Platform Support
acc18285 336
474475f6 337XXX Any changes to platform support should be listed in the sections below.
769e4861 338
474475f6
AC
339[ Within the sections, list each platform as a =item entry with specific
340changes as paragraphs below it. ]
769e4861 341
474475f6
AC
342=head2 New Platforms
343
344XXX List any platforms that this version of perl compiles on, that previous
345versions did not. These will either be enabled by new files in the F<hints/>
346directories, or new subdirectories and F<README> files at the top level of the
347source tree.
87776862 348
10819dab 349=over 4
87776862 350
474475f6 351=item XXX-some-platform
87776862 352
474475f6 353XXX
87776862 354
10819dab 355=back
87776862 356
474475f6 357=head2 Discontinued Platforms
74d8bc5d 358
474475f6 359XXX List any platforms that this version of perl no longer compiles on.
74d8bc5d 360
10819dab 361=over 4
769e4861 362
474475f6 363=item XXX-some-platform
769e4861 364
474475f6 365XXX
564aa3ec 366
ce5b6630 367=back
564aa3ec 368
474475f6 369=head2 Platform-Specific Notes
025c2e17 370
474475f6
AC
371XXX List any changes for specific platforms. This could include configuration
372and compilation changes or changes in portability/compatibility. However,
373changes within modules for platforms should generally be listed in the
374L</Modules and Pragmata> section.
025c2e17 375
474475f6 376=over 4
025c2e17 377
18ae2abf 378=item Win32
379
f6f3144e
SH
380The time taken to build perl on Windows has been reduced quite significantly
381(time savings in the region of 30-40% are typically seen) by reducing the
382number of, usually failing, I/O calls for each L<perlfunc/require> (for
383miniperl only).
384[L<perl #121119|https://rt.perl.org/Public/Bug/Display.html?id=121119>]
385
18ae2abf 386About 15 minutes of idle sleeping was removed from running C<make test> due to
387a bug in which the timeout monitor used for tests could not be cancelled once
388the test completes, and the full timeout period elapsed before running the next
389test file.
fc671210 390[L<perl #121395|https://rt.perl.org/Public/Bug/Display.html?id=121395>]
18ae2abf 391
f6f3144e
SH
392On a perl built without psuedo-fork (psuedo-fork builds were not affected by
393this bug), killing a process tree with L<perlfunc/kill> and a negative signal
394resulted in kill() inverting the returned value. For example, if kill() killed
3951 process tree PID then it returned 0 instead of 1, and if kill() was passed 2
396invalid PIDs then it returned 2 instead of 0. This has probably been the case
397since the process tree kill feature was implemented on Win32. It has now been
398corrected to follow the documented behaviour.
fc671210 399[L<perl #121230|https://rt.perl.org/Public/Bug/Display.html?id=121230>]
721b2674 400
200b4fd9
SH
401When building a 64-bit perl, an uninitialized memory read in B<miniperl.exe>,
402used during the build process, could lead to a 4GB B<wperl.exe> being created.
403This has now been fixed. (Note that B<perl.exe> itself was unaffected, but
404obviously B<wperl.exe> would have been completely broken.)
405[L<perl #121471|https://rt.perl.org/Public/Bug/Display.html?id=121471>]
406
a5d1065d
SH
407Perl can now be built with B<gcc> version 4.8.1 from L<http://www.mingw.org>.
408This was previously broken due to an incorrect definition of C<DllMain()> in
409one of perl's source files. Earlier B<gcc> versions were also affected when
410using version 4 of the w32api package. Versions of B<gcc> available from
411L<http://mingw-w64.sourceforge.net/> were not affected.
412[L<perl #121643|https://rt.perl.org/Public/Bug/Display.html?id=121643>]
413
f6f3144e
SH
414The test harness now has no failures when perl is built on a FAT drive with the
415Windows OS on an NTFS drive.
416[L<perl #21442|https://rt.perl.org/Public/Bug/Display.html?id=21442>]
417
ce5b6630 418=back
025c2e17 419
474475f6 420=head1 Internal Changes
025c2e17 421
474475f6
AC
422XXX Changes which affect the interface available to C<XS> code go here. Other
423significant internal changes for future core maintainers should be noted as
424well.
025c2e17 425
474475f6 426[ List each change as a =item entry ]
025c2e17 427
474475f6 428=over 4
6fa4f5e3
AC
429
430=item *
431
52686f2a
KW
432C<LC_NUMERIC> is now initialized to the C locale. This affects only
433C<XS> modules, as the Perl core usages always make sure this locale
434category is correctly set for their purposes. C<XS> code remains
435vulnerable to other code changing this category's locale. Further fixes
436are planned in v5.22 to reduce these long-standing vulnerabilities.
437[L<perl #121317|https://rt.perl.org/Public/Bug/Display.html?id=121317>]
b3a2acfa 438
ce5b6630 439=back
025c2e17 440
474475f6 441=head1 Selected Bug Fixes
6fa4f5e3 442
474475f6
AC
443XXX Important bug fixes in the core language are summarized here. Bug fixes in
444files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>.
6fa4f5e3 445
474475f6 446[ List each fix as a =item entry ]
6fa4f5e3 447
474475f6 448=over 4
6fa4f5e3 449
474475f6 450=item *
727d17a2 451
b17e32ea
KW
452A regression involving the string value of C<$!> introduced in v5.19.2
453has been reverted for v5.20.
454[L<perl #119499|https://rt.perl.org/Public/Bug/Display.html?id=119499>]
ea6b701a 455
b17e32ea 456This re-breaks the bugs it fixed,
689df292 457L<perl #112208|https://rt.perl.org/Public/Bug/Display.html?id=112208>, so
b17e32ea
KW
458an alternative fix is planned for v5.22
459
c378dac0
DM
460=item *
461
462A regression was introduced in v5.19.10 that under some circumstances
463caused C<//m> matches to falsely fail. Now fixed.
e184c4bc 464[L<perl #121484|https://rt.perl.org/Public/Bug/Display.html?id=121484>]
c378dac0 465
5c45d39a
MH
466=item *
467
468A regression was introduced in the fix for
ea6b701a
SH
469L<perl #116192|https://rt.perl.org/Public/Bug/Display.html?id=116192> that
470prevented C<perl -I /somedir/> (with a trailing slash) from finding .pmc files.
471This has been fixed.
5c45d39a
MH
472[L<perl #121512|https://rt.perl.org/Public/Bug/Display.html?id=121512>].
473
e1abb2bc
TC
474=item *
475
476Fixed a bug detected by valgrind where sv_pvn_force_flags() would
477check SvPVX() even when the SV hadn't been upgraded to a C<SVt_PV>.
478SvPVX() is only initialized when the SV is upgraded to a C<SVt_PV> or
479higher. [L<perl
25fdf527
TC
480#121366|https://rt.perl.org/Public/Bug/Display.html?id=121366>]
481
482=item *
483
484Fixed a bug in caller() introduced in 5.18.0. In some circumstances
485when caller() was called on an C<eval STRING> stack frame it would
486attempt to allocate the limit of the address space minus one, which
487would croak with an out of memory error, which would be caught by the
488eval. A change in 5.19.1 which increased allocation sizes to allow
489COW to operate more often rounded that allocation size up and wrapped
490to a zero allocation size, resulting in a crash when the source string
491was copied over. [L<perl
492#120998|https://rt.perl.org/Public/Bug/Display.html?id=120998>].
e1abb2bc 493
03057ffb 494=back
346295c2 495
474475f6 496=head1 Known Problems
346295c2 497
474475f6 498=over 4
e9251c1a
AC
499
500=item *
501
4a0727c4
SH
502One test in F<ext/POSIX/t/time.t> is known to fail on Windows when building
503with certain versions of B<gcc> from L<http://www.mingw.org> due to a known bug
504in the MinGW build, which is logged here:
505L<http://sourceforge.net/p/mingw/bugs/2152/>.
acc18285
TC
506
507=back
508
474475f6 509=head1 Errata From Previous Releases
727d17a2 510
10819dab 511=over 4
727d17a2
TC
512
513=item *
514
474475f6
AC
515XXX Add anything here that we forgot to add, or were mistaken about, in
516the perldelta of a previous release.
6fa4f5e3 517
ce5b6630 518=back
ce7c3cc3 519
474475f6 520=head1 Obituary
1f67dc6c 521
474475f6
AC
522XXX If any significant core contributor has died, we've added a short obituary
523here.
1f67dc6c 524
474475f6 525=head1 Acknowledgements
f1a26846 526
474475f6 527XXX Generate this with:
f1a26846 528
474475f6 529 perl Porting/acknowledgements.pl v5.19.10..HEAD
f5b73711 530
44691e6f
AB
531=head1 Reporting Bugs
532
e08634c5
SH
533If you find what you think is a bug, you might check the articles recently
534posted to the comp.lang.perl.misc newsgroup and the perl bug database at
e6898945 535https://rt.perl.org/ . There may also be information at
e08634c5 536http://www.perl.org/ , the Perl Home Page.
44691e6f 537
e08634c5
SH
538If you believe you have an unreported bug, please run the L<perlbug> program
539included with your release. Be sure to trim your bug down to a tiny but
540sufficient test case. Your bug report, along with the output of C<perl -V>,
541will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
542
543If the bug you are reporting has security implications, which make it
e08634c5
SH
544inappropriate to send to a publicly archived mailing list, then please send it
545to perl5-security-report@perl.org. This points to a closed subscription
546unarchived mailing list, which includes all the core committers, who will be
547able to help assess the impact of issues, figure out a resolution, and help
f9001595 548co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
549platforms on which Perl is supported. Please only use this address for
550security issues in the Perl core, not for modules independently distributed on
551CPAN.
44691e6f
AB
552
553=head1 SEE ALSO
554
e08634c5
SH
555The F<Changes> file for an explanation of how to view exhaustive details on
556what changed.
44691e6f
AB
557
558The F<INSTALL> file for how to build Perl.
559
560The F<README> file for general stuff.
561
562The F<Artistic> and F<Copying> files for copyright information.
563
564=cut