Commit | Line | Data |
---|---|---|
fc671210 | 1 | |
44691e6f AB |
2 | =encoding utf8 |
3 | ||
4 | =head1 NAME | |
5 | ||
474475f6 | 6 | perldelta - what is new for perl v5.19.11 |
e128ab2c | 7 | |
4eabcf70 | 8 | =head1 DESCRIPTION |
6db9054f | 9 | |
474475f6 | 10 | This document describes differences between the 5.19.10 release and the 5.19.11 |
e08634c5 | 11 | release. |
6db9054f | 12 | |
474475f6 AC |
13 | If you are upgrading from an earlier release such as 5.19.9, first read |
14 | L<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 |
24 | L<experimental> version 0.007 has been added. |
25 | ||
26 | This pragma provides an easy and convenient way to enable or disable | |
27 | experimental 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 |
37 | L<Carp> has been upgraded from version 1.33 to 1.3301. |
38 | ||
39 | No changes have been made to the installed code other than the version bump to | |
40 | keep in sync with the latest CPAN release. | |
41 | ||
42 | =item * | |
43 | ||
ddfe1c93 | 44 | L<CPAN> has been upgraded from version 2.04-TRIAL to 2.05. |
45a13884 | 45 | |
e2f9dcb2 SH |
46 | This fixes L<local::lib> shell variable string output and prevents an endless |
47 | loop when running "notest test Module" for some Module having dependencies. | |
45a13884 SH |
48 | |
49 | =item * | |
50 | ||
51 | L<DB> has been upgraded from version 1.43 to 1.44. | |
f6f3144e SH |
52 | |
53 | The debugger now correctly restores its input and output filehandles after | |
54 | using the pager command. | |
55 | [L<perl #121456|https://rt.perl.org/Public/Bug/Display.html?id=121456>] | |
56 | ||
57 | =item * | |
58 | ||
ca3178e0 | 59 | L<ExtUtils::Install> has been upgraded from version 1.63 to 1.67. |
fc671210 | 60 | |
ec71b45f SH |
61 | When upgrading an already-installed file, L<ExtUtils::Install> could mess up |
62 | the permissions of files if the old versions of files were hard or symbolic | |
63 | links. This has now been fixed. | |
64 | [L<perl #72028|https://rt.perl.org/Public/Bug/Display.html?id=72028>] | |
65 | ||
fc671210 SH |
66 | The MM_TEST_ROOT feature has been removed from the tests. |
67 | ||
68 | =item * | |
69 | ||
70 | L<ExtUtils::MakeMaker> has been upgraded from version 6.92 to 6.94. | |
71 | ||
72 | A 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 |
77 | L<Module::CoreList> has been upgraded from version 3.09 to 3.10. |
78 | ||
79 | The list of Perl versions covered has been updated. | |
e486a115 | 80 | |
f6f3144e SH |
81 | =item * |
82 | ||
ec71b45f SH |
83 | L<PerlIO> has been upgraded from version 1.08 to 1.09. |
84 | ||
85 | The warning about the use of the C<:utf8> layer has been made more prominent. | |
86 | ||
87 | =item * | |
88 | ||
f6f3144e SH |
89 | L<Storable> has been upgraded from version 2.48 to 2.49. |
90 | ||
91 | Recognition of tied SVs has been tightened up. | |
92 | ||
7432779b SH |
93 | =item * |
94 | ||
95 | L<Win32> has been upgraded from version 0.48 to 0.49. | |
96 | ||
97 | This fixes a problem when building with B<gcc> version 4.8.1 from | |
98 | L<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 |
105 | The following additions or changes have been made to diagnostic output, |
106 | including warnings and fatal error messages. For the complete list of | |
107 | diagnostic 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 |
115 | The now fatal error message C<Character following "\c" must be ASCII> has been |
116 | reworded as C<Character following "\c" must be printable ASCII> to emphasize | |
117 | that 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 | 129 | L<perlbug> has been modified to supply the report template with CRLF line |
ca3178e0 SH |
130 | endings on Windows. |
131 | [L<perl #121277|https://rt.perl.org/Public/Bug/Display.html?id=121277>] | |
b314f574 AC |
132 | |
133 | =item * | |
134 | ||
ca3178e0 SH |
135 | L<perlbug> now makes as few assumptions as possible about the encoding of the |
136 | report. This will likely change in the future to assume UTF-8 by default but | |
137 | allow 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 | ||
147 | By default, B<gcc> 4.9 does some optimizations that break perl. The B<-fwrapv> | |
148 | option 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 | |
150 | adds B<-fwrapv> unless the user requests B<-fno-wrapv>, which disables | |
151 | B<-fwrapv>, or B<-fsanitize=undefined>, which turns the overflows B<-fwrapv> | |
152 | ignores into runtime errors. (This is not done prior to B<gcc> 4.3, since | |
153 | B<-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 |
166 | On VMS only, a check for glob metacharacters in a path returned by the |
167 | L<C<glob()>|perlfunc/glob> operator has been replaced with a check for VMS | |
168 | wildcard characters. This saves a significant number of unnecessary | |
169 | L<C<lstat()>|perlfunc/lstat> calls such that some simple glob operations become | |
170 | 60-80% faster. | |
025c2e17 | 171 | |
18ae2abf DD |
172 | =item Win32 |
173 | ||
f6f3144e SH |
174 | The 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 |
176 | number 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 DD |
180 | About 15 minutes of idle sleeping was removed from running C<make test> due to |
181 | a bug in which the timeout monitor used for tests could not be cancelled once | |
182 | the test completes, and the full timeout period elapsed before running the next | |
183 | test file. | |
fc671210 | 184 | [L<perl #121395|https://rt.perl.org/Public/Bug/Display.html?id=121395>] |
18ae2abf | 185 | |
52e02e68 | 186 | On a perl built without pseudo-fork (pseudo-fork builds were not affected by |
ca3178e0 SH |
187 | this bug), killing a process tree with L<C<kill()>|perlfunc/kill> and a negative |
188 | signal resulted in C<kill()> inverting the returned value. For example, if | |
189 | C<kill()> killed 1 process tree PID then it returned 0 instead of 1, and if | |
190 | C<kill()> was passed 2 invalid PIDs then it returned 2 instead of 0. This has | |
191 | probably been the case since the process tree kill feature was implemented on | |
192 | Win32. 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 |
195 | When building a 64-bit perl, an uninitialized memory read in B<miniperl.exe>, |
196 | used during the build process, could lead to a 4GB B<wperl.exe> being created. | |
197 | This has now been fixed. (Note that B<perl.exe> itself was unaffected, but | |
198 | obviously B<wperl.exe> would have been completely broken.) | |
199 | [L<perl #121471|https://rt.perl.org/Public/Bug/Display.html?id=121471>] | |
200 | ||
a5d1065d | 201 | Perl can now be built with B<gcc> version 4.8.1 from L<http://www.mingw.org>. |
ca3178e0 SH |
202 | This was previously broken due to an incorrect definition of DllMain() in one |
203 | of perl's source files. Earlier B<gcc> versions were also affected when using | |
204 | version 4 of the w32api package. Versions of B<gcc> available from | |
a5d1065d SH |
205 | L<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 |
208 | The test harness now has no failures when perl is built on a FAT drive with the |
209 | Windows 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 |
220 | C<LC_NUMERIC> is now initialized to the C locale. This affects only XS |
221 | modules, as the Perl core usages always make sure this locale category is | |
222 | correctly set for their purposes. XS code remains vulnerable to other code | |
223 | changing this category's locale. Further fixes are planned in Perl 5.22 to | |
224 | reduce 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 |
235 | A regression involving the string value of L<C<$!>|perlvar/$!> introduced in |
236 | Perl 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 | 239 | This re-breaks the bugs it fixed, |
ca3178e0 SH |
240 | L<perl #112208|https://rt.perl.org/Public/Bug/Display.html?id=112208>, so an |
241 | alternative fix is planned for Perl 5.22 | |
b17e32ea | 242 | |
c378dac0 DM |
243 | =item * |
244 | ||
ca3178e0 SH |
245 | A regression was introduced in Perl 5.19.10 that under some circumstances |
246 | caused 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 | ||
251 | A regression was introduced in the fix for | |
ea6b701a SH |
252 | L<perl #116192|https://rt.perl.org/Public/Bug/Display.html?id=116192> that |
253 | prevented C<perl -I /somedir/> (with a trailing slash) from finding .pmc files. | |
254 | This 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 |
259 | Fixed a bug detected by valgrind where sv_pvn_force_flags() would check SvPVX() |
260 | even when the SV hadn't been upgraded to a SVt_PV. SvPVX() is only initialized | |
261 | when 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 |
266 | Fixed a bug in L<C<caller()>|perlfunc/caller> introduced in Perl 5.18.0. In |
267 | some circumstances when C<caller()> was called on an C<eval STRING> stack frame | |
268 | it would attempt to allocate the limit of the address space minus one, which | |
269 | would croak with an out of memory error, which would be caught by the eval. A | |
270 | change in Perl 5.19.1 which increased allocation sizes to allow COW to operate | |
271 | more often rounded that allocation size up and wrapped to a zero allocation | |
272 | size, 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 |
283 | One test in F<ext/POSIX/t/time.t> is known to fail on Windows when building |
284 | with certain versions of B<gcc> from L<http://www.mingw.org> due to a known bug | |
285 | in the MinGW build, which is logged here: | |
286 | L<http://sourceforge.net/p/mingw/bugs/2152/>. | |
acc18285 TC |
287 | |
288 | =back | |
289 | ||
474475f6 | 290 | =head1 Acknowledgements |
f1a26846 | 291 | |
52e02e68 SH |
292 | Perl 5.19.11 represents approximately 4 weeks of development since Perl 5.19.10 |
293 | and contains approximately 3,600 lines of changes across 140 files from 18 | |
294 | authors. | |
f1a26846 | 295 | |
52e02e68 SH |
296 | Excluding auto-generated files, documentation and release tools, there were |
297 | approximately 850 lines of changes to 72 .pm, .t, .c and .h files. | |
298 | ||
299 | Perl continues to flourish into its third decade thanks to a vibrant community | |
300 | of users and developers. The following people are known to have contributed | |
301 | the improvements that became Perl 5.19.11: | |
302 | ||
303 | Aaron Crane, Chris 'BinGOs' Williams, Craig A. Berry, Daniel Dragan, David | |
304 | Golden, David Mitchell, H.Merijn Brand, Hiroo Hayashi, Karl Williamson, Matthew | |
305 | Horsfall, Ricardo Signes, Shirakata Kentaro, Smylers, Steve Hay, Thomas Sibley, | |
306 | Tony Cook, Zefram, Ævar Arnfjörð Bjarmason. | |
307 | ||
308 | The list above is almost certainly incomplete as it is automatically generated | |
309 | from version control history. In particular, it does not include the names of | |
310 | the (very much appreciated) contributors who reported issues to the Perl bug | |
311 | tracker. | |
312 | ||
313 | Many of the changes included in this version originated in the CPAN modules | |
314 | included in Perl's core. We're grateful to the entire CPAN community for | |
315 | helping Perl to flourish. | |
316 | ||
317 | For a more complete list of all of Perl's historical contributors, please see | |
318 | the F<AUTHORS> file in the Perl source distribution. | |
f5b73711 | 319 | |
44691e6f AB |
320 | =head1 Reporting Bugs |
321 | ||
e08634c5 SH |
322 | If you find what you think is a bug, you might check the articles recently |
323 | posted to the comp.lang.perl.misc newsgroup and the perl bug database at | |
ca3178e0 SH |
324 | https://rt.perl.org/ . There may also be information at http://www.perl.org/ , |
325 | the Perl Home Page. | |
44691e6f | 326 | |
e08634c5 SH |
327 | If you believe you have an unreported bug, please run the L<perlbug> program |
328 | included with your release. Be sure to trim your bug down to a tiny but | |
329 | sufficient test case. Your bug report, along with the output of C<perl -V>, | |
330 | will be sent off to perlbug@perl.org to be analysed by the Perl porting team. | |
44691e6f AB |
331 | |
332 | If the bug you are reporting has security implications, which make it | |
e08634c5 SH |
333 | inappropriate to send to a publicly archived mailing list, then please send it |
334 | to perl5-security-report@perl.org. This points to a closed subscription | |
335 | unarchived mailing list, which includes all the core committers, who will be | |
336 | able to help assess the impact of issues, figure out a resolution, and help | |
f9001595 | 337 | co-ordinate the release of patches to mitigate or fix the problem across all |
e08634c5 SH |
338 | platforms on which Perl is supported. Please only use this address for |
339 | security issues in the Perl core, not for modules independently distributed on | |
340 | CPAN. | |
44691e6f AB |
341 | |
342 | =head1 SEE ALSO | |
343 | ||
e08634c5 SH |
344 | The F<Changes> file for an explanation of how to view exhaustive details on |
345 | what changed. | |
44691e6f AB |
346 | |
347 | The F<INSTALL> file for how to build Perl. | |
348 | ||
349 | The F<README> file for general stuff. | |
350 | ||
351 | The F<Artistic> and F<Copying> files for copyright information. | |
352 | ||
353 | =cut |