Commit | Line | Data |
---|---|---|
7ef8b31d SH |
1 | |
2 | =encoding utf8 | |
3 | ||
4 | =head1 NAME | |
5 | ||
6 | perl51911delta - what is new for perl v5.19.11 | |
7 | ||
8 | =head1 DESCRIPTION | |
9 | ||
10 | This document describes differences between the 5.19.10 release and the 5.19.11 | |
11 | release. | |
12 | ||
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. | |
15 | ||
16 | =head1 Modules and Pragmata | |
17 | ||
18 | =head2 New Modules and Pragmata | |
19 | ||
20 | =over 4 | |
21 | ||
22 | =item * | |
23 | ||
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. | |
28 | ||
29 | =back | |
30 | ||
31 | =head2 Updated Modules and Pragmata | |
32 | ||
33 | =over 4 | |
34 | ||
35 | =item * | |
36 | ||
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 | ||
44 | L<CPAN> has been upgraded from version 2.04-TRIAL to 2.05. | |
45 | ||
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. | |
48 | ||
49 | =item * | |
50 | ||
51 | L<DB> has been upgraded from version 1.43 to 1.44. | |
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 | ||
59 | L<ExtUtils::Install> has been upgraded from version 1.63 to 1.67. | |
60 | ||
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 | ||
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. | |
73 | [L<Issue #96|https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/issues/96>] | |
74 | ||
75 | =item * | |
76 | ||
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. | |
80 | ||
81 | =item * | |
82 | ||
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 | ||
89 | L<Storable> has been upgraded from version 2.48 to 2.49. | |
90 | ||
91 | Recognition of tied SVs has been tightened up. | |
92 | ||
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 | ||
101 | =back | |
102 | ||
103 | =head1 Diagnostics | |
104 | ||
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>. | |
108 | ||
109 | =head2 Changes to Existing Diagnostics | |
110 | ||
111 | =over 4 | |
112 | ||
113 | =item * | |
114 | ||
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. | |
118 | ||
119 | =back | |
120 | ||
121 | =head1 Utility Changes | |
122 | ||
123 | =head2 L<perlbug> | |
124 | ||
125 | =over 4 | |
126 | ||
127 | =item * | |
128 | ||
129 | L<perlbug> has been modified to supply the report template with CRLF line | |
130 | endings on Windows. | |
131 | [L<perl #121277|https://rt.perl.org/Public/Bug/Display.html?id=121277>] | |
132 | ||
133 | =item * | |
134 | ||
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. | |
138 | ||
139 | =back | |
140 | ||
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 | ||
158 | =head1 Platform Support | |
159 | ||
160 | =head2 Platform-Specific Notes | |
161 | ||
162 | =over 4 | |
163 | ||
164 | =item VMS | |
165 | ||
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. | |
171 | ||
172 | =item Win32 | |
173 | ||
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 | |
176 | number 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 | ||
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. | |
184 | [L<perl #121395|https://rt.perl.org/Public/Bug/Display.html?id=121395>] | |
185 | ||
186 | On a perl built without pseudo-fork (pseudo-fork builds were not affected by | |
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. | |
193 | [L<perl #121230|https://rt.perl.org/Public/Bug/Display.html?id=121230>] | |
194 | ||
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 | ||
201 | Perl can now be built with B<gcc> version 4.8.1 from L<http://www.mingw.org>. | |
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 | |
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 | ||
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 | ||
212 | =back | |
213 | ||
214 | =head1 Internal Changes | |
215 | ||
216 | =over 4 | |
217 | ||
218 | =item * | |
219 | ||
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. | |
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 | ||
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. | |
237 | [L<perl #119499|https://rt.perl.org/Public/Bug/Display.html?id=119499>] | |
238 | ||
239 | This re-breaks the bugs it fixed, | |
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 | |
242 | ||
243 | =item * | |
244 | ||
245 | A regression was introduced in Perl 5.19.10 that under some circumstances | |
246 | caused 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 | ||
251 | A regression was introduced in the fix for | |
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. | |
255 | [L<perl #121512|https://rt.perl.org/Public/Bug/Display.html?id=121512>]. | |
256 | ||
257 | =item * | |
258 | ||
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>] | |
263 | ||
264 | =item * | |
265 | ||
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>]. | |
274 | ||
275 | =back | |
276 | ||
277 | =head1 Known Problems | |
278 | ||
279 | =over 4 | |
280 | ||
281 | =item * | |
282 | ||
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/>. | |
287 | ||
288 | =back | |
289 | ||
290 | =head1 Acknowledgements | |
291 | ||
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. | |
295 | ||
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. | |
319 | ||
320 | =head1 Reporting Bugs | |
321 | ||
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 | |
324 | https://rt.perl.org/ . There may also be information at http://www.perl.org/ , | |
325 | the Perl Home Page. | |
326 | ||
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. | |
331 | ||
332 | If the bug you are reporting has security implications, which make it | |
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 | |
337 | co-ordinate the release of patches to mitigate or fix the problem across all | |
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. | |
341 | ||
342 | =head1 SEE ALSO | |
343 | ||
344 | The F<Changes> file for an explanation of how to view exhaustive details on | |
345 | what changed. | |
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 |