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