This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Porting/Maintainers.pl - ExtUtils::Install was updated by 68659711db
[perl5.git] / pod / perldelta.pod
CommitLineData
fc671210 1
44691e6f
AB
2=encoding utf8
3
4=head1 NAME
5
474475f6 6perldelta - what is new for perl v5.19.11
e128ab2c 7
4eabcf70 8=head1 DESCRIPTION
6db9054f 9
474475f6 10This document describes differences between the 5.19.10 release and the 5.19.11
e08634c5 11release.
6db9054f 12
474475f6
AC
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.
22730142 15
ce5b6630 16=head1 Modules and Pragmata
0d0bc230 17
474475f6 18=head2 New Modules and Pragmata
87776862 19
474475f6 20=over 4
769e4861 21
b314f574 22=item *
769e4861 23
ca3178e0
SH
24L<experimental> version 0.007 has been added.
25
26This pragma provides an easy and convenient way to enable or disable
27experimental features.
769e4861 28
474475f6
AC
29=back
30
31=head2 Updated Modules and Pragmata
b314f574 32
474475f6 33=over 4
1175bfe1
TH
34
35=item *
36
f6f3144e
SH
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
ddfe1c93 44L<CPAN> has been upgraded from version 2.04-TRIAL to 2.05.
45a13884 45
e2f9dcb2
SH
46This fixes L<local::lib> shell variable string output and prevents an endless
47loop when running "notest test Module" for some Module having dependencies.
45a13884
SH
48
49=item *
50
51L<DB> has been upgraded from version 1.43 to 1.44.
f6f3144e
SH
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
ca3178e0 59L<ExtUtils::Install> has been upgraded from version 1.63 to 1.67.
fc671210 60
ec71b45f
SH
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
fc671210
SH
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.
ca3178e0 73[L<Issue #96|https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/issues/96>]
fc671210
SH
74
75=item *
76
33642846
SH
77L<Module::CoreList> has been upgraded from version 3.09 to 3.10.
78
79The list of Perl versions covered has been updated.
e486a115 80
f6f3144e
SH
81=item *
82
ec71b45f
SH
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
f6f3144e
SH
89L<Storable> has been upgraded from version 2.48 to 2.49.
90
91Recognition of tied SVs has been tightened up.
92
7432779b
SH
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
474475f6 101=back
e486a115 102
474475f6 103=head1 Diagnostics
d07feb8f 104
474475f6
AC
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>.
d07feb8f 108
474475f6 109=head2 Changes to Existing Diagnostics
acc18285 110
474475f6 111=over 4
acc18285 112
b314f574 113=item *
acc18285 114
ec71b45f
SH
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.
acc18285 118
474475f6 119=back
87776862 120
474475f6 121=head1 Utility Changes
87776862 122
ca3178e0 123=head2 L<perlbug>
769e4861 124
474475f6 125=over 4
769e4861 126
b314f574 127=item *
acc18285 128
59336663 129L<perlbug> has been modified to supply the report template with CRLF line
ca3178e0
SH
130endings on Windows.
131[L<perl #121277|https://rt.perl.org/Public/Bug/Display.html?id=121277>]
b314f574
AC
132
133=item *
134
ca3178e0
SH
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.
769e4861 138
474475f6 139=back
769e4861 140
68f96b51
SH
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
474475f6 158=head1 Platform Support
acc18285 159
ca3178e0 160=head2 Platform-Specific Notes
87776862 161
10819dab 162=over 4
87776862 163
4bb8f055 164=item VMS
87776862 165
ca3178e0
SH
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.
025c2e17 171
18ae2abf 172=item Win32
173
f6f3144e
SH
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
ca3178e0
SH
176number of, usually failing, I/O calls for each L<C<require()>|perlfunc/require>
177(for B<miniperl.exe> only).
f6f3144e
SH
178[L<perl #121119|https://rt.perl.org/Public/Bug/Display.html?id=121119>]
179
18ae2abf 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.
fc671210 184[L<perl #121395|https://rt.perl.org/Public/Bug/Display.html?id=121395>]
18ae2abf 185
52e02e68 186On a perl built without pseudo-fork (pseudo-fork builds were not affected by
ca3178e0
SH
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.
fc671210 193[L<perl #121230|https://rt.perl.org/Public/Bug/Display.html?id=121230>]
721b2674 194
200b4fd9
SH
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
a5d1065d 201Perl can now be built with B<gcc> version 4.8.1 from L<http://www.mingw.org>.
ca3178e0
SH
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
a5d1065d
SH
205L<http://mingw-w64.sourceforge.net/> were not affected.
206[L<perl #121643|https://rt.perl.org/Public/Bug/Display.html?id=121643>]
207
f6f3144e
SH
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
ce5b6630 212=back
025c2e17 213
474475f6 214=head1 Internal Changes
025c2e17 215
474475f6 216=over 4
6fa4f5e3
AC
217
218=item *
219
ca3178e0
SH
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.
52686f2a 225[L<perl #121317|https://rt.perl.org/Public/Bug/Display.html?id=121317>]
b3a2acfa 226
ce5b6630 227=back
025c2e17 228
474475f6 229=head1 Selected Bug Fixes
6fa4f5e3 230
474475f6 231=over 4
6fa4f5e3 232
474475f6 233=item *
727d17a2 234
ca3178e0
SH
235A regression involving the string value of L<C<$!>|perlvar/$!> introduced in
236Perl 5.19.2 has been reverted for Perl 5.20.
b17e32ea 237[L<perl #119499|https://rt.perl.org/Public/Bug/Display.html?id=119499>]
ea6b701a 238
b17e32ea 239This re-breaks the bugs it fixed,
ca3178e0
SH
240L<perl #112208|https://rt.perl.org/Public/Bug/Display.html?id=112208>, so an
241alternative fix is planned for Perl 5.22
b17e32ea 242
c378dac0
DM
243=item *
244
ca3178e0
SH
245A regression was introduced in Perl 5.19.10 that under some circumstances
246caused C<//m> matches to falsely fail. Now fixed.
e184c4bc 247[L<perl #121484|https://rt.perl.org/Public/Bug/Display.html?id=121484>]
c378dac0 248
5c45d39a
MH
249=item *
250
251A regression was introduced in the fix for
ea6b701a
SH
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.
5c45d39a
MH
255[L<perl #121512|https://rt.perl.org/Public/Bug/Display.html?id=121512>].
256
e1abb2bc
TC
257=item *
258
ca3178e0
SH
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>]
25fdf527
TC
263
264=item *
265
ca3178e0
SH
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>].
e1abb2bc 274
03057ffb 275=back
346295c2 276
474475f6 277=head1 Known Problems
346295c2 278
474475f6 279=over 4
e9251c1a
AC
280
281=item *
282
4a0727c4
SH
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/>.
acc18285
TC
287
288=back
289
474475f6 290=head1 Acknowledgements
f1a26846 291
52e02e68
SH
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.
f1a26846 295
52e02e68
SH
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.
f5b73711 319
44691e6f
AB
320=head1 Reporting Bugs
321
e08634c5
SH
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
ca3178e0
SH
324https://rt.perl.org/ . There may also be information at http://www.perl.org/ ,
325the Perl Home Page.
44691e6f 326
e08634c5
SH
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.
44691e6f
AB
331
332If the bug you are reporting has security implications, which make it
e08634c5
SH
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
f9001595 337co-ordinate the release of patches to mitigate or fix the problem across all
e08634c5
SH
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.
44691e6f
AB
341
342=head1 SEE ALSO
343
e08634c5
SH
344The F<Changes> file for an explanation of how to view exhaustive details on
345what changed.
44691e6f
AB
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