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