Commit | Line | Data |
---|---|---|
e71d1a7d FR |
1 | =encoding utf8 |
2 | ||
3 | =head1 NAME | |
4 | ||
5 | perl5122delta - what is new for perl v5.12.2 | |
6 | ||
7 | =head1 DESCRIPTION | |
8 | ||
9 | This document describes differences between the 5.12.1 release and | |
10 | the 5.12.2 release. | |
11 | ||
12 | If you are upgrading from an earlier major version, such as 5.10.1, | |
13 | first read L<perl5120delta>, which describes differences between 5.10.1 | |
14 | and 5.12.0, as well as L<perl5121delta>, which describes earlier changes | |
15 | in the 5.12 stable release series. | |
16 | ||
17 | =head1 Incompatible Changes | |
18 | ||
19 | There are no changes intentionally incompatible with 5.12.1. If any exist, they | |
20 | are bugs and reports are welcome. | |
21 | ||
22 | =head1 Core Enhancements | |
23 | ||
24 | Other than the bug fixes listed below, there should be no user-visible | |
25 | changes to the core language in this release. | |
26 | ||
27 | =head1 Modules and Pragmata | |
28 | ||
29 | =head2 New Modules and Pragmata | |
30 | ||
31 | This release does not introduce any new modules or pragmata. | |
32 | ||
33 | =head2 Pragmata Changes | |
34 | ||
35 | In the previous release, C<no I<VERSION>;> statements triggered a bug | |
36 | which could cause L<feature> bundles to be loaded and L<strict> mode to | |
37 | be enabled unintentionally. | |
38 | ||
39 | =head2 Updated Modules | |
40 | ||
41 | =over 4 | |
42 | ||
43 | =item C<Carp> | |
44 | ||
45 | Upgraded from version 1.16 to 1.17. | |
46 | ||
47 | L<Carp> now detects incomplete L<caller()|perlfunc/"caller EXPR"> | |
48 | overrides and avoids using bogus C<@DB::args>. To provide backtraces, Carp | |
49 | relies on particular behaviour of the caller built-in. Carp now detects | |
50 | if other code has overridden this with an incomplete implementation, and | |
51 | modifies its backtrace accordingly. Previously incomplete overrides would | |
52 | cause incorrect values in backtraces (best case), or obscure fatal errors | |
53 | (worst case) | |
54 | ||
55 | This fixes certain cases of C<Bizarre copy of ARRAY> caused by modules | |
56 | overriding C<caller()> incorrectly. | |
57 | ||
58 | =item C<CPANPLUS> | |
59 | ||
60 | A patch to F<cpanp-run-perl> has been backported from CPANPLUS C<0.9004>. This | |
b7d125d0 FC |
61 | resolves L<RT #55964|http://rt.cpan.org/Public/Bug/Display.html?id=55964> |
62 | and L<RT #57106|http://rt.cpan.org/Public/Bug/Display.html?id=57106>, both | |
e71d1a7d FR |
63 | of which related to failures to install distributions that use |
64 | C<Module::Install::DSL>. | |
65 | ||
66 | =item C<File::Glob> | |
67 | ||
68 | A regression which caused a failure to find C<CORE::GLOBAL::glob> after | |
69 | loading C<File::Glob> to crash has been fixed. Now, it correctly falls back | |
70 | to external globbing via C<pp_glob>. | |
71 | ||
72 | =item C<File::Copy> | |
73 | ||
74 | C<File::Copy::copy(FILE, DIR)> is now documented. | |
75 | ||
76 | =item C<File::Spec> | |
77 | ||
78 | Upgraded from version 3.31 to 3.31_01. | |
79 | ||
80 | Several portability fixes were made in C<File::Spec::VMS>: a colon is now | |
81 | recognized as a delimiter in native filespecs; caret-escaped delimiters are | |
82 | recognized for better handling of extended filespecs; C<catpath()> returns | |
83 | an empty directory rather than the current directory if the input directory | |
84 | name is empty; C<abs2rel()> properly handles Unix-style input. | |
85 | ||
86 | =back | |
87 | ||
88 | =head1 Utility Changes | |
89 | ||
90 | =over | |
91 | ||
92 | =item * | |
93 | ||
94 | F<perlbug> now always gives the reporter a chance to change the email address it | |
95 | guesses for them. | |
96 | ||
97 | =item * | |
98 | ||
99 | F<perlbug> should no longer warn about uninitialized values when using the C<-d> | |
100 | and C<-v> options. | |
101 | ||
102 | =back | |
103 | ||
104 | =head1 Changes to Existing Documentation | |
105 | ||
106 | =over | |
107 | ||
108 | =item * | |
109 | ||
110 | The existing policy on backward-compatibility and deprecation has | |
111 | been added to L<perlpolicy>, along with definitions of terms like | |
112 | I<deprecation>. | |
113 | ||
114 | =item * | |
115 | ||
116 | L<perlfunc/srand>'s usage has been clarified. | |
117 | ||
118 | =item * | |
119 | ||
120 | The entry for L<perlfunc/die> was reorganized to emphasize its | |
121 | role in the exception mechanism. | |
122 | ||
123 | =item * | |
124 | ||
125 | Perl's L<INSTALL> file has been clarified to explicitly state that Perl | |
126 | requires a C89 compliant ANSI C Compiler. | |
127 | ||
128 | =item * | |
129 | ||
130 | L<IO::Socket>'s C<getsockopt()> and C<setsockopt()> have been documented. | |
131 | ||
132 | =item * | |
133 | ||
134 | F<alarm()>'s inability to interrupt blocking IO on Windows has been documented. | |
135 | ||
136 | =item * | |
137 | ||
138 | L<Math::TrulyRandom> hasn't been updated since 1996 and has been removed | |
139 | as a recommended solution for random number generation. | |
140 | ||
141 | =item * | |
142 | ||
143 | L<perlrun> has been updated to clarify the behaviour of octal flags to F<perl>. | |
144 | ||
145 | =item * | |
146 | ||
147 | To ease user confusion, C<$#> and C<$*>, two special variables that were | |
148 | removed in earlier versions of Perl have been documented. | |
149 | ||
150 | =item * | |
151 | ||
152 | The version of L<perlfaq> shipped with the Perl core has been updated from the | |
153 | official FAQ version, which is now maintained in the C<briandfoy/perlfaq> | |
154 | branch of the Perl repository at L<git://perl5.git.perl.org/perl.git>. | |
155 | ||
156 | =back | |
157 | ||
158 | =head1 Installation and Configuration Improvements | |
159 | ||
160 | =head2 Configuration improvements | |
161 | ||
162 | =over | |
163 | ||
164 | =item * | |
165 | ||
166 | The C<d_u32align> configuration probe on ARM has been fixed. | |
167 | ||
168 | =back | |
169 | ||
170 | =head2 Compilation improvements | |
171 | ||
172 | =over | |
173 | ||
174 | =item * | |
175 | ||
176 | An "C<incompatible operand types>" error in ternary expressions when building | |
177 | with C<clang> has been fixed. | |
178 | ||
179 | =item * | |
180 | ||
181 | Perl now skips setuid C<File::Copy> tests on partitions it detects to be mounted | |
182 | as C<nosuid>. | |
183 | ||
184 | =back | |
185 | ||
186 | =head1 Selected Bug Fixes | |
187 | ||
188 | =over 4 | |
189 | ||
190 | =item * | |
191 | ||
192 | A possible segfault in the C<T_PRTOBJ> default typemap has been fixed. | |
193 | ||
194 | =item * | |
195 | ||
196 | A possible memory leak when using L<caller()|perlfunc/"caller EXPR"> to set | |
197 | C<@DB::args> has been fixed. | |
198 | ||
199 | =item * | |
200 | ||
201 | Several memory leaks when loading XS modules were fixed. | |
202 | ||
203 | =item * | |
204 | ||
205 | C<unpack()> now handles scalar context correctly for C<%32H> and C<%32u>, | |
206 | fixing a potential crash. C<split()> would crash because the third item | |
207 | on the stack wasn't the regular expression it expected. C<unpack("%2H", | |
208 | ...)> would return both the unpacked result and the checksum on the stack, | |
209 | as would C<unpack("%2u", ...)>. | |
210 | L<[perl #73814]|http://rt.perl.org/rt3/Ticket/Display.html?id=73814> | |
211 | ||
212 | =item * | |
213 | ||
214 | Perl now avoids using memory after calling C<free()> in F<pp_require> | |
215 | when there are CODEREFs in C<@INC>. | |
216 | ||
217 | =item * | |
218 | ||
219 | A bug that could cause "C<Unknown error>" messages when | |
220 | "C<call_sv(code, G_EVAL)>" is called from an XS destructor has been fixed. | |
221 | ||
222 | =item * | |
223 | ||
224 | The implementation of the C<open $fh, 'E<gt>' \$buffer> feature | |
225 | now supports get/set magic and thus tied buffers correctly. | |
226 | ||
227 | =item * | |
228 | ||
229 | The C<pp_getc>, C<pp_tell>, and C<pp_eof> opcodes now make room on the | |
230 | stack for their return values in cases where no argument was passed in. | |
231 | ||
232 | =item * | |
233 | ||
234 | When matching unicode strings under some conditions inappropriate backtracking would | |
235 | result in a C<Malformed UTF-8 character (fatal)> error. This should no longer occur. | |
236 | See L<[perl #75680]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=75680> | |
237 | ||
238 | =back | |
239 | ||
240 | =head1 Platform Specific Notes | |
241 | ||
242 | =head2 AIX | |
243 | ||
244 | =over | |
245 | ||
246 | =item * | |
247 | ||
248 | F<README.aix> has been updated with information about the XL C/C++ V11 compiler | |
249 | suite. | |
250 | ||
251 | =back | |
252 | ||
253 | =head2 Windows | |
254 | ||
255 | =over | |
256 | ||
257 | =item * | |
258 | ||
259 | When building Perl with the mingw64 x64 cross-compiler C<incpath>, | |
260 | C<libpth>, C<ldflags>, C<lddlflags> and C<ldflags_nolargefiles> values | |
16cab327 | 261 | in F<Config.pm> and F<Config_heavy.pl> were not previously being set |
e71d1a7d FR |
262 | correctly because, with that compiler, the include and lib directories |
263 | are not immediately below C<$(CCHOME)>. | |
264 | ||
265 | =back | |
266 | ||
267 | =head2 VMS | |
268 | ||
269 | =over | |
270 | ||
271 | =item * | |
272 | ||
273 | F<git_version.h> is now installed on VMS. This was an oversight in v5.12.0 which | |
274 | caused some extensions to fail to build. | |
275 | ||
276 | =item * | |
277 | ||
278 | Several memory leaks in L<stat()|perlfunc/"stat FILEHANDLE"> have been fixed. | |
279 | ||
280 | =item * | |
281 | ||
282 | A memory leak in C<Perl_rename()> due to a double allocation has been | |
283 | fixed. | |
284 | ||
285 | =item * | |
286 | ||
287 | A memory leak in C<vms_fid_to_name()> (used by C<realpath()> and | |
288 | C<realname()>) has been fixed. | |
289 | ||
290 | =back | |
291 | ||
292 | =head1 Acknowledgements | |
293 | ||
294 | Perl 5.12.2 represents approximately three months of development since | |
295 | Perl 5.12.1 and contains approximately 2,000 lines of changes across | |
296 | 100 files from 36 authors. | |
297 | ||
298 | Perl continues to flourish into its third decade thanks to a vibrant | |
299 | community of users and developers. The following people are known to | |
300 | have contributed the improvements that became Perl 5.12.2: | |
301 | ||
302 | Abigail, Ævar Arnfjörð Bjarmason, Ben Morrow, brian d foy, Brian | |
303 | Phillips, Chas. Owens, Chris 'BinGOs' Williams, Chris Williams, | |
304 | Craig A. Berry, Curtis Jewell, Dan Dascalescu, David Golden, David | |
305 | Mitchell, Father Chrysostomos, Florian Ragwitz, George Greer, H.Merijn | |
306 | Brand, Jan Dubois, Jesse Vincent, Jim Cromie, Karl Williamson, Lars | |
307 | Dɪᴇᴄᴋᴏᴡ 迪拉斯, Leon Brocard, Maik Hentsche, Matt S Trout, | |
308 | Nicholas Clark, Rafael Garcia-Suarez, Rainer Tammer, Ricardo Signes, | |
309 | Salvador Ortiz Garcia, Sisyphus, Slaven Rezic, Steffen Mueller, Tony Cook, | |
310 | Vincent Pit and Yves Orton. | |
311 | ||
312 | =head1 Reporting Bugs | |
313 | ||
314 | If you find what you think is a bug, you might check the articles | |
315 | recently posted to the comp.lang.perl.misc newsgroup and the perl | |
316 | bug database at http://rt.perl.org/perlbug/ . There may also be | |
317 | information at http://www.perl.org/ , the Perl Home Page. | |
318 | ||
319 | If you believe you have an unreported bug, please run the B<perlbug> | |
320 | program included with your release. Be sure to trim your bug down | |
321 | to a tiny but sufficient test case. Your bug report, along with the | |
322 | output of C<perl -V>, will be sent off to perlbug@perl.org to be | |
323 | analysed by the Perl porting team. | |
324 | ||
325 | If the bug you are reporting has security implications, which make it | |
326 | inappropriate to send to a publicly archived mailing list, then please send | |
327 | it to perl5-security-report@perl.org. This points to a closed subscription | |
1a1f8781 FC |
328 | unarchived mailing list, which includes |
329 | all the core committers, who will be able | |
e71d1a7d FR |
330 | to help assess the impact of issues, figure out a resolution, and help |
331 | co-ordinate the release of patches to mitigate or fix the problem across all | |
332 | platforms on which Perl is supported. Please only use this address for | |
333 | security issues in the Perl core, not for modules independently | |
334 | distributed on CPAN. | |
335 | ||
336 | =head1 SEE ALSO | |
337 | ||
338 | The F<Changes> file for an explanation of how to view exhaustive details | |
339 | on what changed. | |
340 | ||
341 | The F<INSTALL> file for how to build Perl. | |
342 | ||
343 | The F<README> file for general stuff. | |
344 | ||
345 | The F<Artistic> and F<Copying> files for copyright information. | |
346 | ||
347 | =cut |