Commit | Line | Data |
---|---|---|
d8b64acd JV |
1 | =encoding utf8 |
2 | ||
3 | =head1 NAME | |
4 | ||
e19a038c | 5 | perl5121delta - what is new for perl v5.12.1 |
d8b64acd JV |
6 | |
7 | =head1 DESCRIPTION | |
8 | ||
9 | This document describes differences between the 5.12.0 release and | |
10 | the 5.12.1 release. | |
11 | ||
12 | If you are upgrading from an earlier release such as 5.10.1, first read | |
90f6751c | 13 | L<perl5120delta>, which describes differences between 5.10.0 and |
d8b64acd JV |
14 | 5.12.0. |
15 | ||
d8b64acd JV |
16 | =head1 Incompatible Changes |
17 | ||
47ad5051 JV |
18 | There are no changes intentionally incompatible with 5.12.0. If any |
19 | incompatibilities with 5.12.0 exist, they are bugs. Please report them. | |
d8b64acd JV |
20 | |
21 | =head1 Core Enhancements | |
22 | ||
23 | Other than the bug fixes listed below, there should be no user-visible | |
191602e1 | 24 | changes to the core language in this release. |
d8b64acd JV |
25 | |
26 | =head1 Modules and Pragmata | |
27 | ||
d8b64acd JV |
28 | =head2 Pragmata Changes |
29 | ||
bfdf8026 | 30 | =over |
d8b64acd | 31 | |
bfdf8026 | 32 | =item * |
d8b64acd | 33 | |
191602e1 | 34 | We fixed exporting of C<is_strict> and C<is_lax> from L<version>. |
d8b64acd | 35 | |
bfdf8026 | 36 | These were being exported with a wrapper that treated them as method |
191602e1 | 37 | calls, which caused them to fail. They are just functions, are |
bfdf8026 JV |
38 | documented as such, and should never be subclassed, so this patch |
39 | just exports them directly as functions without the wrapper. | |
d8b64acd | 40 | |
bfdf8026 | 41 | =back |
d8b64acd | 42 | |
bfdf8026 | 43 | =head2 Updated Modules |
d8b64acd | 44 | |
bfdf8026 | 45 | =over |
d8b64acd JV |
46 | |
47 | =item * | |
48 | ||
af5a1f69 | 49 | We upgraded L<CGI> to version 3.49 to incorporate fixes for regressions |
bfdf8026 | 50 | introduced in the release we shipped with Perl 5.12.0. |
d8b64acd | 51 | |
bfdf8026 | 52 | =item * |
d8b64acd | 53 | |
bfdf8026 JV |
54 | We upgraded L<Pod::Simple> to version 3.14 to get an improvement to \C\<\< \>\> |
55 | parsing. | |
d8b64acd | 56 | |
47ad5051 JV |
57 | =item * |
58 | ||
191602e1 | 59 | We made a small fix to the L<CPANPLUS> test suite to fix an occasional spurious test failure. |
47ad5051 | 60 | |
a5c4fdfb JV |
61 | =item * |
62 | ||
c69ca1d4 | 63 | We upgraded L<Safe> to version 2.27 to wrap coderefs returned by C<reval()> and C<rdo()>. |
a5c4fdfb | 64 | |
bfdf8026 | 65 | =back |
d8b64acd | 66 | |
bfdf8026 | 67 | =head1 Changes to Existing Documentation |
d8b64acd | 68 | |
bfdf8026 | 69 | =over |
d8b64acd | 70 | |
bfdf8026 | 71 | =item * |
d8b64acd | 72 | |
af5a1f69 | 73 | We added the new maintenance release policy to L<perlpolicy> |
d8b64acd | 74 | |
bfdf8026 | 75 | =item * |
d8b64acd | 76 | |
191602e1 DG |
77 | We've clarified the multiple-angle-bracket construct in the spec for POD |
78 | in L<perlpodspec> | |
d8b64acd | 79 | |
bfdf8026 | 80 | =item * |
d8b64acd | 81 | |
af5a1f69 | 82 | We added a missing explanation for a warning about C<:=> to L<perldiag> |
d8b64acd | 83 | |
bfdf8026 | 84 | =item * |
d8b64acd | 85 | |
191602e1 | 86 | We removed a false claim in L<perlunitut> that all text strings are Unicode strings in Perl. |
d8b64acd JV |
87 | |
88 | =item * | |
89 | ||
61147c7c | 90 | We updated the GitHub mirror link in L<perlrepository> to mirrors/perl, not github/perl |
d8b64acd | 91 | |
bfdf8026 | 92 | =item * |
d8b64acd | 93 | |
af5a1f69 | 94 | We fixed a minor error in L<perl5114delta>. |
d8b64acd | 95 | |
bfdf8026 | 96 | =item * |
d8b64acd | 97 | |
af5a1f69 | 98 | We replaced a mention of the now-obsolete L<Switch> with F<given>/F<when>. |
d8b64acd JV |
99 | |
100 | =item * | |
101 | ||
191602e1 | 102 | We improved documentation about F<$sitelibexp/sitecustomize.pl> in L<perlrun>. |
d8b64acd | 103 | |
bfdf8026 | 104 | =item * |
d8b64acd | 105 | |
af5a1f69 | 106 | We corrected L<perlmodlib> which had unintentionally omitted a number of modules. |
d8b64acd | 107 | |
bfdf8026 | 108 | =item * |
d8b64acd | 109 | |
af5a1f69 | 110 | We updated the documentation for 'require' in L<perlfunc> relating to putting Perl code in @INC. |
d8b64acd JV |
111 | |
112 | =item * | |
113 | ||
191602e1 | 114 | We reinstated some erroneously-removed documentation about quotemeta in L<perlfunc>. |
d8b64acd | 115 | |
bfdf8026 | 116 | =item * |
d8b64acd | 117 | |
af5a1f69 | 118 | We fixed an F<a2p> example in L<perlutil>. |
d8b64acd | 119 | |
bfdf8026 | 120 | =item * |
d8b64acd | 121 | |
af5a1f69 | 122 | We filled in a blank in L<perlport> with the release date of Perl 5.12. |
d8b64acd | 123 | |
bfdf8026 | 124 | =item * |
d8b64acd | 125 | |
bfdf8026 | 126 | We fixed broken links in a number of perldelta files. |
d8b64acd | 127 | |
bfdf8026 | 128 | =item * |
d8b64acd | 129 | |
af5a1f69 | 130 | The documentation for L<Carp> incorrectly stated that the $Carp::Verbose |
bfdf8026 | 131 | variable makes cluck generate stack backtraces. |
d8b64acd | 132 | |
bfdf8026 | 133 | =item * |
d8b64acd | 134 | |
bfdf8026 | 135 | We fixed a number of typos in L<Pod::Functions> |
d8b64acd | 136 | |
47ad5051 JV |
137 | =item * |
138 | ||
af5a1f69 | 139 | We improved documentation of case-changing functions in L<perlfunc> |
47ad5051 JV |
140 | |
141 | =item * | |
142 | ||
af5a1f69 | 143 | We corrected L<perlgpl> to contain the correct version of the GNU |
47ad5051 JV |
144 | General Public License. |
145 | ||
146 | ||
147 | ||
bfdf8026 | 148 | =back |
d8b64acd | 149 | |
bfdf8026 | 150 | =head1 Testing |
d8b64acd | 151 | |
bfdf8026 | 152 | =head2 Testing Improvements |
d8b64acd | 153 | |
bfdf8026 | 154 | =over |
d8b64acd | 155 | |
bfdf8026 | 156 | =item * |
d8b64acd | 157 | |
bfdf8026 JV |
158 | F<t/op/sselect.t> is now less prone to clock jitter during timing checks |
159 | on Windows. | |
d8b64acd | 160 | |
bfdf8026 JV |
161 | sleep() time on Win32 may be rounded down to multiple of |
162 | the clock tick interval. | |
d8b64acd JV |
163 | |
164 | =item * | |
165 | ||
bfdf8026 | 166 | F<lib/blib.t> and F<lib/locale.t>: Fixes for test failures on Darwin/PPC |
d8b64acd JV |
167 | |
168 | =item * | |
169 | ||
bfdf8026 | 170 | F<perl5db.t>: Fix for test failures when C<Term::ReadLine::Gnu> is installed. |
d8b64acd | 171 | |
bfdf8026 | 172 | =back |
d8b64acd | 173 | |
bfdf8026 | 174 | =head1 Installation and Configuration Improvements |
d8b64acd | 175 | |
bfdf8026 | 176 | =head2 Configuration improvements |
d8b64acd | 177 | |
bfdf8026 | 178 | =over |
d8b64acd | 179 | |
bfdf8026 | 180 | =item * |
d8b64acd | 181 | |
47ad5051 JV |
182 | We updated F<INSTALL> with notes about how to deal with broken F<dbm.h> |
183 | on OpenSUSE (and possibly other platforms) | |
d8b64acd | 184 | |
bfdf8026 | 185 | =back |
d8b64acd | 186 | |
47ad5051 | 187 | =head1 Bug Fixes |
d8b64acd | 188 | |
bfdf8026 | 189 | =over 4 |
d8b64acd JV |
190 | |
191 | =item * | |
192 | ||
bfdf8026 | 193 | A bug in how we process filetest operations could cause a segfault. |
191602e1 | 194 | Filetests don't always expect an op on the stack, so we now use |
bfdf8026 JV |
195 | TOPs only if we're sure that we're not stat'ing the _ filehandle. |
196 | This is indicated by OPf_KIDS (as checked in ck_ftst). | |
197 | ||
29c6c804 | 198 | See also: L<https://github.com/Perl/perl5/issues/10335> |
d8b64acd JV |
199 | |
200 | =item * | |
201 | ||
bfdf8026 JV |
202 | When deparsing a nextstate op that has both a change of package (relative |
203 | to the previous nextstate) and a label, the package declaration is now | |
204 | emitted first, because it is syntactically impermissible for a label to | |
205 | prefix a package declaration. | |
d8b64acd JV |
206 | |
207 | =item * | |
208 | ||
bfdf8026 | 209 | XSUB.h now correctly redefines fgets under PERL_IMPLICIT_SYS |
d8b64acd | 210 | |
47ad5051 | 211 | See also: L<http://rt.cpan.org/Public/Bug/Display.html?id=55049> |
d8b64acd | 212 | |
d8b64acd | 213 | =item * |
d8b64acd | 214 | |
7c16146f | 215 | utf8::is_utf8 now respects GMAGIC (e.g. $1) |
d8b64acd | 216 | |
bfdf8026 | 217 | =item * |
d8b64acd | 218 | |
47ad5051 JV |
219 | XS code using C<fputc()> or C<fputs()>: on Windows could cause an error |
220 | due to their arguments being swapped. | |
d8b64acd | 221 | |
29c6c804 | 222 | See also: L<https://github.com/Perl/perl5/issues/10156> |
d8b64acd | 223 | |
47ad5051 | 224 | =item * |
2c94927e | 225 | |
47ad5051 | 226 | We fixed a small bug in lex_stuff_pvn() that caused spurious syntax errors |
191602e1 | 227 | in an obscure situation. It happened when stuffing was performed on the |
47ad5051 JV |
228 | last line of a file and the line ended with a statement that lacked a |
229 | terminating semicolon. | |
d8b64acd | 230 | |
29c6c804 | 231 | See also: L<https://github.com/Perl/perl5/issues/10273> |
d8b64acd | 232 | |
47ad5051 | 233 | =item * |
d8b64acd | 234 | |
47ad5051 JV |
235 | We fixed a bug that could cause \N{} constructs followed by a single . to |
236 | be parsed incorrectly. | |
2c94927e | 237 | |
29c6c804 | 238 | See also: L<https://github.com/Perl/perl5/issues/10367> |
d8b64acd | 239 | |
d8b64acd JV |
240 | =item * |
241 | ||
d8b64acd | 242 | |
47ad5051 JV |
243 | We fixed a bug that caused when(scalar) without an argument not to be |
244 | treated as a syntax error. | |
245 | ||
29c6c804 | 246 | See also: L<https://github.com/Perl/perl5/issues/10287> |
d8b64acd | 247 | |
47ad5051 JV |
248 | =item * |
249 | ||
250 | We fixed a regression in the handling of labels immediately before string | |
191602e1 | 251 | evals that was introduced in Perl 5.12.0. |
47ad5051 | 252 | |
29c6c804 | 253 | See also: L<https://github.com/Perl/perl5/issues/10301> |
47ad5051 JV |
254 | |
255 | =item * | |
256 | ||
257 | We fixed a regression in case-insensitive matching of folded characters | |
8c58eb69 | 258 | in regular expressions introduced in Perl 5.10.1. |
47ad5051 | 259 | |
29c6c804 | 260 | See also: L<https://github.com/Perl/perl5/issues/10193> |
d8b64acd | 261 | |
bfdf8026 | 262 | =back |
d8b64acd | 263 | |
bfdf8026 | 264 | =head1 Platform Specific Notes |
d8b64acd | 265 | |
bfdf8026 | 266 | =head2 HP-UX |
d8b64acd | 267 | |
bfdf8026 | 268 | =over |
d8b64acd JV |
269 | |
270 | =item * | |
271 | ||
bfdf8026 | 272 | Perl now allows -Duse64bitint without promoting to use64bitall on HP-UX |
d8b64acd | 273 | |
bfdf8026 | 274 | =back |
d8b64acd | 275 | |
bfdf8026 | 276 | =head2 AIX |
d8b64acd | 277 | |
bfdf8026 | 278 | =over |
d8b64acd | 279 | |
d8b64acd | 280 | =item * |
d8b64acd | 281 | |
bfdf8026 | 282 | Perl now builds on AIX 4.2 |
d8b64acd | 283 | |
bfdf8026 JV |
284 | The changes required work around AIX 4.2s' lack of support for IPv6, |
285 | and limited support for POSIX C<sigaction()>. | |
d8b64acd | 286 | |
bfdf8026 | 287 | =back |
d8b64acd | 288 | |
bfdf8026 | 289 | =head2 FreeBSD 7 |
d8b64acd | 290 | |
bfdf8026 | 291 | =over |
d8b64acd JV |
292 | |
293 | =item * | |
294 | ||
bfdf8026 JV |
295 | FreeBSD 7 no longer contains F</usr/bin/objformat>. At build time, |
296 | Perl now skips the F<objformat> check for versions 7 and higher and | |
297 | assumes ELF. | |
d8b64acd | 298 | |
bfdf8026 | 299 | =back |
d8b64acd | 300 | |
bfdf8026 | 301 | =head2 VMS |
d8b64acd | 302 | |
bfdf8026 | 303 | =over |
d8b64acd JV |
304 | |
305 | =item * | |
306 | ||
bfdf8026 | 307 | It's now possible to build extensions on older (pre 7.3-2) VMS systems. |
d8b64acd | 308 | |
bfdf8026 JV |
309 | DCL symbol length was limited to 1K up until about seven years or |
310 | so ago, but there was no particularly deep reason to prevent those | |
311 | older systems from configuring and building Perl. | |
d8b64acd JV |
312 | |
313 | =item * | |
314 | ||
bfdf8026 | 315 | We fixed the previously-broken C<-Uuseperlio> build on VMS. |
d8b64acd | 316 | |
bfdf8026 JV |
317 | We were checking a variable that doesn't exist in the non-default |
318 | case of disabling perlio. Now we only look at it when it exists. | |
d8b64acd JV |
319 | |
320 | =item * | |
321 | ||
bfdf8026 | 322 | We fixed the -Uuseperlio command-line option in configure.com. |
d8b64acd | 323 | |
bfdf8026 JV |
324 | Formerly it only worked if you went through all the questions |
325 | interactively and explicitly answered no. | |
d8b64acd | 326 | |
bfdf8026 | 327 | =back |
d8b64acd | 328 | |
2c94927e JV |
329 | =head1 Known Problems |
330 | ||
331 | =over | |
332 | ||
333 | =item * | |
334 | ||
335 | C<List::Util::first> misbehaves in the presence of a lexical C<$_> | |
336 | (typically introduced by C<my $_> or implicitly by C<given>). The variable | |
337 | which gets set for each iteration is the package variable C<$_>, not the | |
338 | lexical C<$_>. | |
339 | ||
340 | A similar issue may occur in other modules that provide functions which | |
341 | take a block as their first argument, like | |
342 | ||
343 | foo { ... $_ ...} list | |
344 | ||
29c6c804 | 345 | See also: L<https://github.com/Perl/perl5/issues/9798> |
2c94927e JV |
346 | |
347 | =item * | |
348 | ||
349 | C<Module::Load::Conditional> and C<version> have an unfortunate | |
350 | interaction which can cause C<CPANPLUS> to crash when it encounters | |
351 | an unparseable version string. Upgrading to C<CPANPLUS> 0.9004 or | |
352 | C<Module::Load::Conditional> 0.38 from CPAN will resolve this issue. | |
353 | ||
354 | =back | |
355 | ||
356 | ||
bfdf8026 | 357 | =head1 Acknowledgements |
d8b64acd | 358 | |
47ad5051 | 359 | Perl 5.12.1 represents approximately four weeks of development since |
191602e1 | 360 | Perl 5.12.0 and contains approximately 4,000 lines of changes |
47ad5051 JV |
361 | across 142 files from 28 authors. |
362 | ||
363 | Perl continues to flourish into its third decade thanks to a vibrant | |
364 | community of users and developers. The following people are known to | |
365 | have contributed the improvements that became Perl 5.12.1: | |
d8b64acd | 366 | |
47ad5051 JV |
367 | Ævar Arnfjörð Bjarmason, Chris Williams, chromatic, Craig A. Berry, |
368 | David Golden, Father Chrysostomos, Florian Ragwitz, Frank Wiegand, | |
369 | Gene Sullivan, Goro Fuji, H.Merijn Brand, James E Keenan, Jan Dubois, | |
370 | Jesse Vincent, Josh ben Jore, Karl Williamson, Leon Brocard, Michael | |
371 | Schwern, Nga Tang Chan, Nicholas Clark, Niko Tyni, Philippe Bruhat, | |
372 | Rafael Garcia-Suarez, Ricardo Signes, Steffen Mueller, Todd Rinaldo, | |
373 | Vincent Pit and Zefram. | |
d8b64acd | 374 | |
bfdf8026 | 375 | =head1 Reporting Bugs |
d8b64acd | 376 | |
bfdf8026 JV |
377 | If you find what you think is a bug, you might check the articles |
378 | recently posted to the comp.lang.perl.misc newsgroup and the perl | |
379 | bug database at http://rt.perl.org/perlbug/ . There may also be | |
380 | information at http://www.perl.org/ , the Perl Home Page. | |
d8b64acd | 381 | |
bfdf8026 JV |
382 | If you believe you have an unreported bug, please run the B<perlbug> |
383 | program included with your release. Be sure to trim your bug down | |
384 | to a tiny but sufficient test case. Your bug report, along with the | |
385 | output of C<perl -V>, will be sent off to perlbug@perl.org to be | |
386 | analysed by the Perl porting team. | |
d8b64acd | 387 | |
bfdf8026 JV |
388 | If the bug you are reporting has security implications, which make it |
389 | inappropriate to send to a publicly archived mailing list, then please send | |
390 | it to perl5-security-report@perl.org. This points to a closed subscription | |
1a1f8781 FC |
391 | unarchived mailing list, which includes |
392 | all the core committers, who will be able | |
bfdf8026 JV |
393 | 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 | |
397 | distributed on CPAN. | |
d8b64acd | 398 | |
bfdf8026 | 399 | =head1 SEE ALSO |
d8b64acd | 400 | |
bfdf8026 JV |
401 | The F<Changes> file for an explanation of how to view exhaustive details |
402 | on what changed. | |
d8b64acd | 403 | |
bfdf8026 | 404 | The F<INSTALL> file for how to build Perl. |
d8b64acd | 405 | |
bfdf8026 | 406 | The F<README> file for general stuff. |
d8b64acd | 407 | |
bfdf8026 | 408 | The F<Artistic> and F<Copying> files for copyright information. |
d8b64acd | 409 | |
bfdf8026 | 410 | =cut |
d8b64acd | 411 |