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