This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Upgrade CPAN from version 2.05-TRIAL2 to 2.05
[perl5.git] / pod / perldelta.pod
CommitLineData
fc671210
SH
1=for todo
2
ec71b45f 3869747506f/00051dd553 (merijn) - gcc 4.9 by default does some optimizations that break perl / -fwrapv is broken prior to gcc-4.3 (#121505)
fc671210 4
44691e6f
AB
5=encoding utf8
6
7=head1 NAME
8
474475f6 9perldelta - what is new for perl v5.19.11
e128ab2c 10
4eabcf70 11=head1 DESCRIPTION
6db9054f 12
474475f6 13This document describes differences between the 5.19.10 release and the 5.19.11
e08634c5 14release.
6db9054f 15
474475f6
AC
16If you are upgrading from an earlier release such as 5.19.9, first read
17L<perl51910delta>, which describes differences between 5.19.9 and 5.19.10.
22730142 18
ce5b6630 19=head1 Modules and Pragmata
0d0bc230 20
474475f6 21=head2 New Modules and Pragmata
87776862 22
474475f6 23=over 4
769e4861 24
b314f574 25=item *
769e4861 26
ca3178e0
SH
27L<experimental> version 0.007 has been added.
28
29This pragma provides an easy and convenient way to enable or disable
30experimental features.
769e4861 31
474475f6
AC
32=back
33
34=head2 Updated Modules and Pragmata
b314f574 35
474475f6 36=over 4
1175bfe1
TH
37
38=item *
39
f6f3144e
SH
40L<Carp> has been upgraded from version 1.33 to 1.3301.
41
42No changes have been made to the installed code other than the version bump to
43keep in sync with the latest CPAN release.
44
45=item *
46
ddfe1c93 47L<CPAN> has been upgraded from version 2.04-TRIAL to 2.05.
45a13884 48
e2f9dcb2
SH
49This fixes L<local::lib> shell variable string output and prevents an endless
50loop when running "notest test Module" for some Module having dependencies.
45a13884
SH
51
52=item *
53
54L<DB> has been upgraded from version 1.43 to 1.44.
f6f3144e
SH
55
56The debugger now correctly restores its input and output filehandles after
57using the pager command.
58[L<perl #121456|https://rt.perl.org/Public/Bug/Display.html?id=121456>]
59
60=item *
61
ca3178e0 62L<ExtUtils::Install> has been upgraded from version 1.63 to 1.67.
fc671210 63
ec71b45f
SH
64When upgrading an already-installed file, L<ExtUtils::Install> could mess up
65the permissions of files if the old versions of files were hard or symbolic
66links. This has now been fixed.
67[L<perl #72028|https://rt.perl.org/Public/Bug/Display.html?id=72028>]
68
fc671210
SH
69The MM_TEST_ROOT feature has been removed from the tests.
70
71=item *
72
73L<ExtUtils::MakeMaker> has been upgraded from version 6.92 to 6.94.
74
75A regression in MM_Unix.pm has been resolved.
ca3178e0 76[L<Issue #96|https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/issues/96>]
fc671210
SH
77
78=item *
79
33642846
SH
80L<Module::CoreList> has been upgraded from version 3.09 to 3.10.
81
82The list of Perl versions covered has been updated.
e486a115 83
f6f3144e
SH
84=item *
85
ec71b45f
SH
86L<PerlIO> has been upgraded from version 1.08 to 1.09.
87
88The warning about the use of the C<:utf8> layer has been made more prominent.
89
90=item *
91
f6f3144e
SH
92L<Storable> has been upgraded from version 2.48 to 2.49.
93
94Recognition of tied SVs has been tightened up.
95
7432779b
SH
96=item *
97
98L<Win32> has been upgraded from version 0.48 to 0.49.
99
100This fixes a problem when building with B<gcc> version 4.8.1 from
101L<http://www.mingw.org>.
102[L<cpan #94730|https://rt.cpan.org/Public/Bug/Display.html?id=94730>]
103
474475f6 104=back
e486a115 105
474475f6 106=head1 Diagnostics
d07feb8f 107
474475f6
AC
108The following additions or changes have been made to diagnostic output,
109including warnings and fatal error messages. For the complete list of
110diagnostic messages, see L<perldiag>.
d07feb8f 111
474475f6 112=head2 Changes to Existing Diagnostics
acc18285 113
474475f6 114=over 4
acc18285 115
b314f574 116=item *
acc18285 117
ec71b45f
SH
118The now fatal error message C<Character following "\c" must be ASCII> has been
119reworded as C<Character following "\c" must be printable ASCII> to emphasize
120that in C<\cI<X>>, I<X> must be a I<printable (non-control)> ASCII character.
acc18285 121
474475f6 122=back
87776862 123
474475f6 124=head1 Utility Changes
87776862 125
ca3178e0 126=head2 L<perlbug>
769e4861 127
474475f6 128=over 4
769e4861 129
b314f574 130=item *
acc18285 131
59336663 132L<perlbug> has been modified to supply the report template with CRLF line
ca3178e0
SH
133endings on Windows.
134[L<perl #121277|https://rt.perl.org/Public/Bug/Display.html?id=121277>]
b314f574
AC
135
136=item *
137
ca3178e0
SH
138L<perlbug> now makes as few assumptions as possible about the encoding of the
139report. This will likely change in the future to assume UTF-8 by default but
140allow a user override.
769e4861 141
474475f6 142=back
769e4861 143
474475f6 144=head1 Platform Support
acc18285 145
ca3178e0 146=head2 Platform-Specific Notes
87776862 147
10819dab 148=over 4
87776862 149
4bb8f055 150=item VMS
87776862 151
ca3178e0
SH
152On VMS only, a check for glob metacharacters in a path returned by the
153L<C<glob()>|perlfunc/glob> operator has been replaced with a check for VMS
154wildcard characters. This saves a significant number of unnecessary
155L<C<lstat()>|perlfunc/lstat> calls such that some simple glob operations become
15660-80% faster.
025c2e17 157
18ae2abf 158=item Win32
159
f6f3144e
SH
160The time taken to build perl on Windows has been reduced quite significantly
161(time savings in the region of 30-40% are typically seen) by reducing the
ca3178e0
SH
162number of, usually failing, I/O calls for each L<C<require()>|perlfunc/require>
163(for B<miniperl.exe> only).
f6f3144e
SH
164[L<perl #121119|https://rt.perl.org/Public/Bug/Display.html?id=121119>]
165
18ae2abf 166About 15 minutes of idle sleeping was removed from running C<make test> due to
167a bug in which the timeout monitor used for tests could not be cancelled once
168the test completes, and the full timeout period elapsed before running the next
169test file.
fc671210 170[L<perl #121395|https://rt.perl.org/Public/Bug/Display.html?id=121395>]
18ae2abf 171
f6f3144e 172On a perl built without psuedo-fork (psuedo-fork builds were not affected by
ca3178e0
SH
173this bug), killing a process tree with L<C<kill()>|perlfunc/kill> and a negative
174signal resulted in C<kill()> inverting the returned value. For example, if
175C<kill()> killed 1 process tree PID then it returned 0 instead of 1, and if
176C<kill()> was passed 2 invalid PIDs then it returned 2 instead of 0. This has
177probably been the case since the process tree kill feature was implemented on
178Win32. It has now been corrected to follow the documented behaviour.
fc671210 179[L<perl #121230|https://rt.perl.org/Public/Bug/Display.html?id=121230>]
721b2674 180
200b4fd9
SH
181When building a 64-bit perl, an uninitialized memory read in B<miniperl.exe>,
182used during the build process, could lead to a 4GB B<wperl.exe> being created.
183This has now been fixed. (Note that B<perl.exe> itself was unaffected, but
184obviously B<wperl.exe> would have been completely broken.)
185[L<perl #121471|https://rt.perl.org/Public/Bug/Display.html?id=121471>]
186
a5d1065d 187Perl can now be built with B<gcc> version 4.8.1 from L<http://www.mingw.org>.
ca3178e0
SH
188This was previously broken due to an incorrect definition of DllMain() in one
189of perl's source files. Earlier B<gcc> versions were also affected when using
190version 4 of the w32api package. Versions of B<gcc> available from
a5d1065d
SH
191L<http://mingw-w64.sourceforge.net/> were not affected.
192[L<perl #121643|https://rt.perl.org/Public/Bug/Display.html?id=121643>]
193
f6f3144e
SH
194The test harness now has no failures when perl is built on a FAT drive with the
195Windows OS on an NTFS drive.
196[L<perl #21442|https://rt.perl.org/Public/Bug/Display.html?id=21442>]
197
ce5b6630 198=back
025c2e17 199
474475f6 200=head1 Internal Changes
025c2e17 201
474475f6 202=over 4
6fa4f5e3
AC
203
204=item *
205
ca3178e0
SH
206C<LC_NUMERIC> is now initialized to the C locale. This affects only XS
207modules, as the Perl core usages always make sure this locale category is
208correctly set for their purposes. XS code remains vulnerable to other code
209changing this category's locale. Further fixes are planned in Perl 5.22 to
210reduce these long-standing vulnerabilities.
52686f2a 211[L<perl #121317|https://rt.perl.org/Public/Bug/Display.html?id=121317>]
b3a2acfa 212
ce5b6630 213=back
025c2e17 214
474475f6 215=head1 Selected Bug Fixes
6fa4f5e3 216
474475f6 217=over 4
6fa4f5e3 218
474475f6 219=item *
727d17a2 220
ca3178e0
SH
221A regression involving the string value of L<C<$!>|perlvar/$!> introduced in
222Perl 5.19.2 has been reverted for Perl 5.20.
b17e32ea 223[L<perl #119499|https://rt.perl.org/Public/Bug/Display.html?id=119499>]
ea6b701a 224
b17e32ea 225This re-breaks the bugs it fixed,
ca3178e0
SH
226L<perl #112208|https://rt.perl.org/Public/Bug/Display.html?id=112208>, so an
227alternative fix is planned for Perl 5.22
b17e32ea 228
c378dac0
DM
229=item *
230
ca3178e0
SH
231A regression was introduced in Perl 5.19.10 that under some circumstances
232caused C<//m> matches to falsely fail. Now fixed.
e184c4bc 233[L<perl #121484|https://rt.perl.org/Public/Bug/Display.html?id=121484>]
c378dac0 234
5c45d39a
MH
235=item *
236
237A regression was introduced in the fix for
ea6b701a
SH
238L<perl #116192|https://rt.perl.org/Public/Bug/Display.html?id=116192> that
239prevented C<perl -I /somedir/> (with a trailing slash) from finding .pmc files.
240This has been fixed.
5c45d39a
MH
241[L<perl #121512|https://rt.perl.org/Public/Bug/Display.html?id=121512>].
242
e1abb2bc
TC
243=item *
244
ca3178e0
SH
245Fixed a bug detected by valgrind where sv_pvn_force_flags() would check SvPVX()
246even when the SV hadn't been upgraded to a SVt_PV. SvPVX() is only initialized
247when the SV is upgraded to a SVt_PV or higher.
248[L<perl #121366|https://rt.perl.org/Public/Bug/Display.html?id=121366>]
25fdf527
TC
249
250=item *
251
ca3178e0
SH
252Fixed a bug in L<C<caller()>|perlfunc/caller> introduced in Perl 5.18.0. In
253some circumstances when C<caller()> was called on an C<eval STRING> stack frame
254it would attempt to allocate the limit of the address space minus one, which
255would croak with an out of memory error, which would be caught by the eval. A
256change in Perl 5.19.1 which increased allocation sizes to allow COW to operate
257more often rounded that allocation size up and wrapped to a zero allocation
258size, resulting in a crash when the source string was copied over.
259[L<perl #120998|https://rt.perl.org/Public/Bug/Display.html?id=120998>].
e1abb2bc 260
03057ffb 261=back
346295c2 262
474475f6 263=head1 Known Problems
346295c2 264
474475f6 265=over 4
e9251c1a
AC
266
267=item *
268
4a0727c4
SH
269One test in F<ext/POSIX/t/time.t> is known to fail on Windows when building
270with certain versions of B<gcc> from L<http://www.mingw.org> due to a known bug
271in the MinGW build, which is logged here:
272L<http://sourceforge.net/p/mingw/bugs/2152/>.
acc18285
TC
273
274=back
275
474475f6 276=head1 Acknowledgements
f1a26846 277
474475f6 278XXX Generate this with:
f1a26846 279
474475f6 280 perl Porting/acknowledgements.pl v5.19.10..HEAD
f5b73711 281
44691e6f
AB
282=head1 Reporting Bugs
283
e08634c5
SH
284If you find what you think is a bug, you might check the articles recently
285posted to the comp.lang.perl.misc newsgroup and the perl bug database at
ca3178e0
SH
286https://rt.perl.org/ . There may also be information at http://www.perl.org/ ,
287the Perl Home Page.
44691e6f 288
e08634c5
SH
289If you believe you have an unreported bug, please run the L<perlbug> program
290included with your release. Be sure to trim your bug down to a tiny but
291sufficient test case. Your bug report, along with the output of C<perl -V>,
292will be sent off to perlbug@perl.org to be analysed by the Perl porting team.
44691e6f
AB
293
294If the bug you are reporting has security implications, which make it
e08634c5
SH
295inappropriate to send to a publicly archived mailing list, then please send it
296to perl5-security-report@perl.org. This points to a closed subscription
297unarchived mailing list, which includes all the core committers, who will be
298able to help assess the impact of issues, figure out a resolution, and help
f9001595 299co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
300platforms on which Perl is supported. Please only use this address for
301security issues in the Perl core, not for modules independently distributed on
302CPAN.
44691e6f
AB
303
304=head1 SEE ALSO
305
e08634c5
SH
306The F<Changes> file for an explanation of how to view exhaustive details on
307what changed.
44691e6f
AB
308
309The F<INSTALL> file for how to build Perl.
310
311The F<README> file for general stuff.
312
313The F<Artistic> and F<Copying> files for copyright information.
314
315=cut