Commit | Line | Data |
---|---|---|
9b8ec397 SH |
1 | =encoding utf8 |
2 | ||
3 | =head1 NAME | |
4 | ||
5 | perl5201delta - what is new for perl v5.20.1 | |
6 | ||
7 | =head1 DESCRIPTION | |
8 | ||
9 | This document describes differences between the 5.20.0 release and the 5.20.1 | |
10 | release. | |
11 | ||
12 | If you are upgrading from an earlier release such as 5.18.0, first read | |
13 | L<perl5200delta>, which describes differences between 5.18.0 and 5.20.0. | |
14 | ||
15 | =head1 Incompatible Changes | |
16 | ||
17 | There are no changes intentionally incompatible with 5.20.0. If any exist, | |
18 | they are bugs, and we request that you submit a report. See L</Reporting Bugs> | |
19 | below. | |
20 | ||
21 | =head1 Performance Enhancements | |
22 | ||
23 | =over 4 | |
24 | ||
25 | =item * | |
26 | ||
27 | An optimization to avoid problems with COW and deliberately overallocated PVs | |
28 | has been disabled because it interfered with another, more important, | |
29 | optimization, causing a slowdown on some platforms. | |
30 | L<[perl #121975]|https://rt.perl.org/Ticket/Display.html?id=121975> | |
31 | ||
32 | =item * | |
33 | ||
34 | Returning a string from a lexical variable could be slow in some cases. This | |
35 | has now been fixed. | |
36 | L<[perl #121977]|https://rt.perl.org/Ticket/Display.html?id=121977> | |
37 | ||
38 | =back | |
39 | ||
40 | =head1 Modules and Pragmata | |
41 | ||
42 | =head2 Updated Modules and Pragmata | |
43 | ||
44 | =over 4 | |
45 | ||
46 | =item * | |
47 | ||
48 | L<Config::Perl::V> has been upgraded from version 0.20 to 0.22. | |
49 | ||
50 | The list of Perl versions covered has been updated and some flaws in the | |
51 | parsing have been fixed. | |
52 | ||
53 | =item * | |
54 | ||
55 | L<Exporter> has been upgraded from version 5.70 to 5.71. | |
56 | ||
57 | Illegal POD syntax in the documentation has been corrected. | |
58 | ||
59 | =item * | |
60 | ||
61 | L<ExtUtils::CBuilder> has been upgraded from version 0.280216 to 0.280217. | |
62 | ||
63 | Android builds now link to both B<-lperl> and C<$Config::Config{perllibs}>. | |
64 | ||
65 | =item * | |
66 | ||
67 | L<File::Copy> has been upgraded from version 2.29 to 2.30. | |
68 | ||
69 | The documentation now notes that C<copy> will not overwrite read-only files. | |
70 | ||
71 | =item * | |
72 | ||
73 | L<Module::CoreList> has been upgraded from version 3.11 to 5.020001. | |
74 | ||
75 | The list of Perl versions covered has been updated. | |
76 | ||
77 | =item * | |
78 | ||
79 | The PathTools module collection has been upgraded from version 3.47 to 3.48. | |
80 | ||
81 | Fallbacks are now in place when cross-compiling for Android and | |
82 | C<$Config::Config{sh}> is not yet defined. | |
83 | L<[perl #121963]|https://rt.perl.org/Ticket/Display.html?id=121963> | |
84 | ||
85 | =item * | |
86 | ||
87 | L<PerlIO::via> has been upgraded from version 0.14 to 0.15. | |
88 | ||
89 | A minor portability improvement has been made to the XS implementation. | |
90 | ||
91 | =item * | |
92 | ||
93 | L<Unicode::UCD> has been upgraded from version 0.57 to 0.58. | |
94 | ||
95 | The documentation includes many clarifications and fixes. | |
96 | ||
97 | =item * | |
98 | ||
99 | L<utf8> has been upgraded from version 1.13 to 1.13_01. | |
100 | ||
101 | The documentation has some minor formatting improvements. | |
102 | ||
103 | =item * | |
104 | ||
105 | L<version> has been upgraded from version 0.9908 to 0.9909. | |
106 | ||
107 | External libraries and Perl may have different ideas of what the locale is. | |
108 | This is problematic when parsing version strings if the locale's numeric | |
109 | separator has been changed. Version parsing has been patched to ensure it | |
110 | handles the locales correctly. | |
111 | L<[perl #121930]|https://rt.perl.org/Ticket/Display.html?id=121930> | |
112 | ||
113 | =back | |
114 | ||
115 | =head1 Documentation | |
116 | ||
117 | =head2 Changes to Existing Documentation | |
118 | ||
119 | =head3 L<perlapi> | |
120 | ||
121 | =over 4 | |
122 | ||
123 | =item * | |
124 | ||
125 | C<av_len> - Emphasize that this returns the highest index in the array, not the | |
126 | size of the array. | |
127 | L<[perl #120386]|https://rt.perl.org/Ticket/Display.html?id=120386> | |
128 | ||
129 | =item * | |
130 | ||
131 | Note that C<SvSetSV> doesn't do set magic. | |
132 | ||
133 | =item * | |
134 | ||
135 | C<sv_usepvn_flags> - Fix documentation to mention the use of C<NewX> instead of | |
136 | C<malloc>. | |
137 | L<[perl #121869]|https://rt.perl.org/Ticket/Display.html?id=121869> | |
138 | ||
139 | =item * | |
140 | ||
141 | Clarify where C<NUL> may be embedded or is required to terminate a string. | |
142 | ||
143 | =back | |
144 | ||
145 | =head3 L<perlfunc> | |
146 | ||
147 | =over 4 | |
148 | ||
149 | =item * | |
150 | ||
151 | Clarify the meaning of C<-B> and C<-T>. | |
152 | ||
153 | =item * | |
154 | ||
155 | C<-l> now notes that it will return false if symlinks aren't supported by the | |
156 | file system. | |
157 | L<[perl #121523]|https://rt.perl.org/Ticket/Display.html?id=121523> | |
158 | ||
159 | =item * | |
160 | ||
161 | Note that C<each>, C<keys> and C<values> may produce different orderings for | |
162 | tied hashes compared to other perl hashes. | |
163 | L<[perl #121404]|https://rt.perl.org/Ticket/Display.html?id=121404> | |
164 | ||
165 | =item * | |
166 | ||
167 | Note that C<exec LIST> and C<system LIST> may fall back to the shell on Win32. | |
168 | Only C<exec PROGRAM LIST> and C<system PROGRAM LIST> indirect object syntax | |
169 | will reliably avoid using the shell. This has also been noted in L<perlport>. | |
170 | L<[perl #122046]|https://rt.perl.org/Ticket/Display.html?id=122046> | |
171 | ||
172 | =item * | |
173 | ||
174 | Clarify the meaning of C<our>. | |
175 | L<[perl #122132]|https://rt.perl.org/Ticket/Display.html?id=122132> | |
176 | ||
177 | =back | |
178 | ||
179 | =head3 L<perlguts> | |
180 | ||
181 | =over 4 | |
182 | ||
183 | =item * | |
184 | ||
185 | Explain various ways of modifying an existing SV's buffer. | |
186 | L<[perl #116925]|https://rt.perl.org/Ticket/Display.html?id=116925> | |
187 | ||
188 | =back | |
189 | ||
190 | =head3 L<perlpolicy> | |
191 | ||
192 | =over 4 | |
193 | ||
194 | =item * | |
195 | ||
196 | We now have a code of conduct for the I<< p5p >> mailing list, as documented in | |
197 | L<< perlpolicy/STANDARDS OF CONDUCT >>. | |
198 | ||
199 | =back | |
200 | ||
201 | =head3 L<perlre> | |
202 | ||
203 | =over 4 | |
204 | ||
205 | =item * | |
206 | ||
207 | The C</x> modifier has been clarified to note that comments cannot be continued | |
208 | onto the next line by escaping them. | |
209 | ||
210 | =back | |
211 | ||
212 | =head3 L<perlsyn> | |
213 | ||
214 | =over 4 | |
215 | ||
216 | =item * | |
217 | ||
218 | Mention the use of empty conditionals in C<for>/C<while> loops for infinite | |
219 | loops. | |
220 | ||
221 | =back | |
222 | ||
223 | =head3 L<perlxs> | |
224 | ||
225 | =over 4 | |
226 | ||
227 | =item * | |
228 | ||
229 | Added a discussion of locale issues in XS code. | |
230 | ||
231 | =back | |
232 | ||
233 | =head1 Diagnostics | |
234 | ||
235 | The following additions or changes have been made to diagnostic output, | |
236 | including warnings and fatal error messages. For the complete list of | |
237 | diagnostic messages, see L<perldiag>. | |
238 | ||
239 | =head2 Changes to Existing Diagnostics | |
240 | ||
241 | =over 4 | |
242 | ||
243 | =item * | |
244 | ||
245 | L<Variable length lookbehind not implemented in regex mE<sol>%sE<sol>|perldiag/"Variable length lookbehind not implemented in regex m/%s/"> | |
246 | ||
247 | Information about Unicode behaviour has been added. | |
248 | ||
249 | =back | |
250 | ||
251 | =head1 Configuration and Compilation | |
252 | ||
253 | =over 4 | |
254 | ||
255 | =item * | |
256 | ||
257 | Building Perl no longer writes to the source tree when configured with | |
258 | F<Configure>'s B<-Dmksymlinks> option. | |
259 | L<[perl #121585]|https://rt.perl.org/Ticket/Display.html?id=121585> | |
260 | ||
261 | =back | |
262 | ||
263 | =head1 Platform Support | |
264 | ||
265 | =head2 Platform-Specific Notes | |
266 | ||
267 | =over 4 | |
268 | ||
269 | =item Android | |
270 | ||
271 | Build support has been improved for cross-compiling in general and for Android | |
272 | in particular. | |
273 | ||
274 | =item OpenBSD | |
275 | ||
276 | Corrected architectures and version numbers used in configuration hints when | |
277 | building Perl. | |
278 | ||
279 | =item Solaris | |
280 | ||
281 | B<c99> options have been cleaned up, hints look for B<solstudio> as well as | |
282 | B<SUNWspro>, and support for native C<setenv> has been added. | |
283 | ||
284 | =item VMS | |
285 | ||
286 | An old bug in feature checking, mainly affecting pre-7.3 systems, has been | |
287 | fixed. | |
288 | ||
289 | =item Windows | |
290 | ||
291 | C<%I64d> is now being used instead of C<%lld> for MinGW. | |
292 | ||
293 | =back | |
294 | ||
295 | =head1 Internal Changes | |
296 | ||
297 | =over 4 | |
298 | ||
299 | =item * | |
300 | ||
301 | Added L<perlapi/sync_locale>. | |
302 | Changing the program's locale should be avoided by XS code. Nevertheless, | |
303 | certain non-Perl libraries called from XS, such as C<Gtk> do so. When this | |
304 | happens, Perl needs to be told that the locale has changed. Use this function | |
305 | to do so, before returning to Perl. | |
306 | ||
307 | =back | |
308 | ||
309 | =head1 Selected Bug Fixes | |
310 | ||
311 | =over 4 | |
312 | ||
313 | =item * | |
314 | ||
315 | A bug has been fixed where zero-length assertions and code blocks inside of a | |
316 | regex could cause C<pos> to see an incorrect value. | |
317 | L<[perl #122460]|https://rt.perl.org/Ticket/Display.html?id=122460> | |
318 | ||
319 | =item * | |
320 | ||
321 | Using C<s///e> on tainted utf8 strings could issue bogus "Malformed UTF-8 | |
322 | character (unexpected end of string)" warnings. This has now been fixed. | |
323 | L<[perl #122148]|https://rt.perl.org/Ticket/Display.html?id=122148> | |
324 | ||
325 | =item * | |
326 | ||
327 | C<system> and friends should now work properly on more Android builds. | |
328 | ||
329 | Due to an oversight, the value specified through B<-Dtargetsh> to F<Configure> | |
330 | would end up being ignored by some of the build process. This caused perls | |
331 | cross-compiled for Android to end up with defective versions of C<system>, | |
332 | C<exec> and backticks: the commands would end up looking for F</bin/sh> instead | |
333 | of F</system/bin/sh>, and so would fail for the vast majority of devices, | |
334 | leaving C<$!> as C<ENOENT>. | |
335 | ||
336 | =item * | |
337 | ||
338 | Many issues have been detected by L<Coverity|http://www.coverity.com/> and | |
339 | fixed. | |
340 | ||
341 | =back | |
342 | ||
343 | =head1 Acknowledgements | |
344 | ||
345 | Perl 5.20.1 represents approximately 4 months of development since Perl 5.20.0 | |
346 | and contains approximately 12,000 lines of changes across 170 files from 36 | |
347 | authors. | |
348 | ||
349 | Excluding auto-generated files, documentation and release tools, there were | |
350 | approximately 2,600 lines of changes to 110 .pm, .t, .c and .h files. | |
351 | ||
352 | Perl continues to flourish into its third decade thanks to a vibrant community | |
353 | of users and developers. The following people are known to have contributed | |
354 | the improvements that became Perl 5.20.1: | |
355 | ||
356 | Aaron Crane, Abigail, Alberto Simões, Alexandr Ciornii, Alexandre (Midnite) | |
357 | Jousset, Andrew Fresh, Andy Dougherty, Brian Fraser, Chris 'BinGOs' Williams, | |
358 | Craig A. Berry, Daniel Dragan, David Golden, David Mitchell, H.Merijn Brand, | |
359 | James E Keenan, Jan Dubois, Jarkko Hietaniemi, John Peacock, kafka, Karen | |
360 | Etheridge, Karl Williamson, Lukas Mai, Matthew Horsfall, Michael Bunk, Peter | |
361 | Martini, Rafael Garcia-Suarez, Reini Urban, Ricardo Signes, Shirakata Kentaro, | |
362 | Smylers, Steve Hay, Thomas Sibley, Todd Rinaldo, Tony Cook, Vladimir Marek, | |
363 | Yves Orton. | |
364 | ||
365 | The list above is almost certainly incomplete as it is automatically generated | |
366 | from version control history. In particular, it does not include the names of | |
367 | the (very much appreciated) contributors who reported issues to the Perl bug | |
368 | tracker. | |
369 | ||
370 | Many of the changes included in this version originated in the CPAN modules | |
371 | included in Perl's core. We're grateful to the entire CPAN community for | |
372 | helping Perl to flourish. | |
373 | ||
374 | For a more complete list of all of Perl's historical contributors, please see | |
375 | the F<AUTHORS> file in the Perl source distribution. | |
376 | ||
377 | =head1 Reporting Bugs | |
378 | ||
379 | If you find what you think is a bug, you might check the articles recently | |
380 | posted to the comp.lang.perl.misc newsgroup and the perl bug database at | |
381 | https://rt.perl.org/ . There may also be information at http://www.perl.org/ , | |
382 | the Perl Home Page. | |
383 | ||
384 | If you believe you have an unreported bug, please run the L<perlbug> program | |
385 | included with your release. Be sure to trim your bug down to a tiny but | |
386 | sufficient test case. Your bug report, along with the output of C<perl -V>, | |
387 | will be sent off to perlbug@perl.org to be analysed by the Perl porting team. | |
388 | ||
389 | If the bug you are reporting has security implications, which make it | |
390 | inappropriate to send to a publicly archived mailing list, then please send it | |
391 | to perl5-security-report@perl.org. This points to a closed subscription | |
392 | unarchived mailing list, which includes all the core committers, who will be | |
393 | able to help assess the impact of issues, figure out a resolution, and help | |
394 | co-ordinate the release of patches to mitigate or fix the problem across all | |
395 | platforms on which Perl is supported. Please only use this address for | |
396 | security issues in the Perl core, not for modules independently distributed on | |
397 | CPAN. | |
398 | ||
399 | =head1 SEE ALSO | |
400 | ||
401 | The F<Changes> file for an explanation of how to view exhaustive details on | |
402 | what changed. | |
403 | ||
404 | The F<INSTALL> file for how to build Perl. | |
405 | ||
406 | The F<README> file for general stuff. | |
407 | ||
408 | The F<Artistic> and F<Copying> files for copyright information. | |
409 | ||
410 | =cut |