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
1=for todo
2
3869747506f/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
9perldelta - what is new for perl v5.19.11
10
11=head1 DESCRIPTION
12
13This document describes differences between the 5.19.10 release and the 5.19.11
14release.
15
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.
18
19=head1 Modules and Pragmata
20
21=head2 New Modules and Pragmata
22
23=over 4
24
25=item *
26
27L<experimental> version 0.007 has been added.
28
29This pragma provides an easy and convenient way to enable or disable
30experimental features.
31
32=back
33
34=head2 Updated Modules and Pragmata
35
36=over 4
37
38=item *
39
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
47L<CPAN> has been upgraded from version 2.04-TRIAL to 2.05.
48
49This fixes L<local::lib> shell variable string output and prevents an endless
50loop when running "notest test Module" for some Module having dependencies.
51
52=item *
53
54L<DB> has been upgraded from version 1.43 to 1.44.
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
62L<ExtUtils::Install> has been upgraded from version 1.63 to 1.67.
63
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
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.
76[L<Issue #96|https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/issues/96>]
77
78=item *
79
80L<Module::CoreList> has been upgraded from version 3.09 to 3.10.
81
82The list of Perl versions covered has been updated.
83
84=item *
85
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
92L<Storable> has been upgraded from version 2.48 to 2.49.
93
94Recognition of tied SVs has been tightened up.
95
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
104=back
105
106=head1 Diagnostics
107
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>.
111
112=head2 Changes to Existing Diagnostics
113
114=over 4
115
116=item *
117
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.
121
122=back
123
124=head1 Utility Changes
125
126=head2 L<perlbug>
127
128=over 4
129
130=item *
131
132L<perlbug> has been modified to supply the report template with CRLF line
133endings on Windows.
134[L<perl #121277|https://rt.perl.org/Public/Bug/Display.html?id=121277>]
135
136=item *
137
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.
141
142=back
143
144=head1 Platform Support
145
146=head2 Platform-Specific Notes
147
148=over 4
149
150=item VMS
151
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.
157
158=item Win32
159
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
162number 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
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.
170[L<perl #121395|https://rt.perl.org/Public/Bug/Display.html?id=121395>]
171
172On a perl built without psuedo-fork (psuedo-fork builds were not affected by
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.
179[L<perl #121230|https://rt.perl.org/Public/Bug/Display.html?id=121230>]
180
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
187Perl can now be built with B<gcc> version 4.8.1 from L<http://www.mingw.org>.
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
191L<http://mingw-w64.sourceforge.net/> were not affected.
192[L<perl #121643|https://rt.perl.org/Public/Bug/Display.html?id=121643>]
193
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
198=back
199
200=head1 Internal Changes
201
202=over 4
203
204=item *
205
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.
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
221A regression involving the string value of L<C<$!>|perlvar/$!> introduced in
222Perl 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
225This re-breaks the bugs it fixed,
226L<perl #112208|https://rt.perl.org/Public/Bug/Display.html?id=112208>, so an
227alternative fix is planned for Perl 5.22
228
229=item *
230
231A regression was introduced in Perl 5.19.10 that under some circumstances
232caused 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
237A regression was introduced in the fix for
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.
241[L<perl #121512|https://rt.perl.org/Public/Bug/Display.html?id=121512>].
242
243=item *
244
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>]
249
250=item *
251
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>].
260
261=back
262
263=head1 Known Problems
264
265=over 4
266
267=item *
268
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/>.
273
274=back
275
276=head1 Acknowledgements
277
278XXX Generate this with:
279
280 perl Porting/acknowledgements.pl v5.19.10..HEAD
281
282=head1 Reporting Bugs
283
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
286https://rt.perl.org/ . There may also be information at http://www.perl.org/ ,
287the Perl Home Page.
288
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.
293
294If the bug you are reporting has security implications, which make it
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
299co-ordinate the release of patches to mitigate or fix the problem across all
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.
303
304=head1 SEE ALSO
305
306The F<Changes> file for an explanation of how to view exhaustive details on
307what changed.
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