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