1*898184e3Ssthen=encoding utf8 2*898184e3Ssthen 3*898184e3Ssthen=head1 NAME 4*898184e3Ssthen 5*898184e3Ssthenperl5141delta - what is new for perl v5.14.1 6*898184e3Ssthen 7*898184e3Ssthen=head1 DESCRIPTION 8*898184e3Ssthen 9*898184e3SsthenThis document describes differences between the 5.14.0 release and 10*898184e3Ssthenthe 5.14.1 release. 11*898184e3Ssthen 12*898184e3SsthenIf you are upgrading from an earlier release such as 5.12.0, first read 13*898184e3SsthenL<perl5140delta>, which describes differences between 5.12.0 and 14*898184e3Ssthen5.14.0. 15*898184e3Ssthen 16*898184e3Ssthen=head1 Core Enhancements 17*898184e3Ssthen 18*898184e3SsthenNo changes since 5.14.0. 19*898184e3Ssthen 20*898184e3Ssthen=head1 Security 21*898184e3Ssthen 22*898184e3SsthenNo changes since 5.14.0. 23*898184e3Ssthen 24*898184e3Ssthen=head1 Incompatible Changes 25*898184e3Ssthen 26*898184e3SsthenThere are no changes intentionally incompatible with 5.14.0. If any 27*898184e3Ssthenexist, they are bugs and reports are welcome. 28*898184e3Ssthen 29*898184e3Ssthen=head1 Deprecations 30*898184e3Ssthen 31*898184e3SsthenThere have been no deprecations since 5.14.0. 32*898184e3Ssthen 33*898184e3Ssthen=head1 Modules and Pragmata 34*898184e3Ssthen 35*898184e3Ssthen=head2 New Modules and Pragmata 36*898184e3Ssthen 37*898184e3SsthenNone 38*898184e3Ssthen 39*898184e3Ssthen=head2 Updated Modules and Pragmata 40*898184e3Ssthen 41*898184e3Ssthen=over 4 42*898184e3Ssthen 43*898184e3Ssthen=item * 44*898184e3Ssthen 45*898184e3SsthenL<B::Deparse> has been upgraded from version 1.03 to 1.04, to address two 46*898184e3Ssthenregressions in Perl 5.14.0: 47*898184e3Ssthen 48*898184e3SsthenDeparsing of the C<glob> operator and its diamond (C<< <> >>) form now 49*898184e3Ssthenworks again. [perl #90898] 50*898184e3Ssthen 51*898184e3SsthenThe presence of subroutines named C<::::> or C<::::::> no longer causes 52*898184e3SsthenB::Deparse to hang. 53*898184e3Ssthen 54*898184e3Ssthen=item * 55*898184e3Ssthen 56*898184e3SsthenL<Pod::Perldoc> has been upgraded from version 3.15_03 to 3.15_04. 57*898184e3Ssthen 58*898184e3SsthenIt corrects the search paths on VMS. [perl #90640] 59*898184e3Ssthen 60*898184e3Ssthen=back 61*898184e3Ssthen 62*898184e3Ssthen=head2 Removed Modules and Pragmata 63*898184e3Ssthen 64*898184e3SsthenNone 65*898184e3Ssthen 66*898184e3Ssthen=head1 Documentation 67*898184e3Ssthen 68*898184e3Ssthen=head2 New Documentation 69*898184e3Ssthen 70*898184e3SsthenNone 71*898184e3Ssthen 72*898184e3Ssthen=head2 Changes to Existing Documentation 73*898184e3Ssthen 74*898184e3Ssthen=head3 L<perlfunc> 75*898184e3Ssthen 76*898184e3Ssthen=over 77*898184e3Ssthen 78*898184e3Ssthen=item * 79*898184e3Ssthen 80*898184e3SsthenC<given>, C<when> and C<default> are now listed in L<perlfunc>. 81*898184e3Ssthen 82*898184e3Ssthen=item * 83*898184e3Ssthen 84*898184e3SsthenDocumentation for C<use> now includes a pointer to F<if.pm>. 85*898184e3Ssthen 86*898184e3Ssthen=back 87*898184e3Ssthen 88*898184e3Ssthen=head3 L<perllol> 89*898184e3Ssthen 90*898184e3Ssthen=over 91*898184e3Ssthen 92*898184e3Ssthen=item * 93*898184e3Ssthen 94*898184e3SsthenL<perllol> has been expanded with examples using the new C<push $scalar> 95*898184e3Ssthensyntax introduced in Perl 5.14.0. 96*898184e3Ssthen 97*898184e3Ssthen=back 98*898184e3Ssthen 99*898184e3Ssthen=head3 L<perlop> 100*898184e3Ssthen 101*898184e3Ssthen=over 4 102*898184e3Ssthen 103*898184e3Ssthen=item * 104*898184e3Ssthen 105*898184e3SsthenThe explanation of bitwise operators has been expanded to explain how they 106*898184e3Ssthenwork on Unicode strings. 107*898184e3Ssthen 108*898184e3Ssthen=item * 109*898184e3Ssthen 110*898184e3SsthenThe section on the triple-dot or yada-yada operator has been moved up, as 111*898184e3Ssthenit used to separate two closely related sections about the comma operator. 112*898184e3Ssthen 113*898184e3Ssthen=item * 114*898184e3Ssthen 115*898184e3SsthenMore examples for C<m//g> have been added. 116*898184e3Ssthen 117*898184e3Ssthen=item * 118*898184e3Ssthen 119*898184e3SsthenThe C<<< <<\FOO >>> here-doc syntax has been documented. 120*898184e3Ssthen 121*898184e3Ssthen=back 122*898184e3Ssthen 123*898184e3Ssthen=head3 L<perlrun> 124*898184e3Ssthen 125*898184e3Ssthen=over 126*898184e3Ssthen 127*898184e3Ssthen=item * 128*898184e3Ssthen 129*898184e3SsthenL<perlrun> has undergone a significant clean-up. Most notably, the 130*898184e3SsthenB<-0x...> form of the B<-0> flag has been clarified, and the final section 131*898184e3Ssthenon environment variables has been corrected and expanded. 132*898184e3Ssthen 133*898184e3Ssthen=back 134*898184e3Ssthen 135*898184e3Ssthen=head3 L<POSIX> 136*898184e3Ssthen 137*898184e3Ssthen=over 138*898184e3Ssthen 139*898184e3Ssthen=item * 140*898184e3Ssthen 141*898184e3SsthenThe invocation documentation for C<WIFEXITED>, C<WEXITSTATUS>, 142*898184e3SsthenC<WIFSIGNALED>, C<WTERMSIG>, C<WIFSTOPPED>, and C<WSTOPSIG> was corrected. 143*898184e3Ssthen 144*898184e3Ssthen=back 145*898184e3Ssthen 146*898184e3Ssthen 147*898184e3Ssthen=head1 Diagnostics 148*898184e3Ssthen 149*898184e3SsthenThe following additions or changes have been made to diagnostic output, 150*898184e3Ssthenincluding warnings and fatal error messages. For the complete list of 151*898184e3Ssthendiagnostic messages, see L<perldiag>. 152*898184e3Ssthen 153*898184e3Ssthen=head2 New Diagnostics 154*898184e3Ssthen 155*898184e3SsthenNone 156*898184e3Ssthen 157*898184e3Ssthen=head2 Changes to Existing Diagnostics 158*898184e3Ssthen 159*898184e3SsthenNone 160*898184e3Ssthen 161*898184e3Ssthen=head1 Utility Changes 162*898184e3Ssthen 163*898184e3SsthenNone 164*898184e3Ssthen 165*898184e3Ssthen=head1 Configuration and Compilation 166*898184e3Ssthen 167*898184e3Ssthen=over 4 168*898184e3Ssthen 169*898184e3Ssthen=item * 170*898184e3Ssthen 171*898184e3SsthenF<regexp.h> has been modified for compatibility with GCC's C<-Werror> 172*898184e3Ssthenoption, as used by some projects that include perl's header files. 173*898184e3Ssthen 174*898184e3Ssthen=back 175*898184e3Ssthen 176*898184e3Ssthen=head1 Testing 177*898184e3Ssthen 178*898184e3Ssthen=over 4 179*898184e3Ssthen 180*898184e3Ssthen=item * 181*898184e3Ssthen 182*898184e3SsthenSome test failures in F<dist/Locale-Maketext/t/09_compile.t> that could 183*898184e3Ssthenoccur depending on the environment have been fixed. [perl #89896] 184*898184e3Ssthen 185*898184e3Ssthen=item * 186*898184e3Ssthen 187*898184e3SsthenA watchdog timer for F<t/re/re.t> was lengthened to accommodate SH-4 systems 188*898184e3Ssthenwhich were unable to complete the tests before the previous timer ran out. 189*898184e3Ssthen 190*898184e3Ssthen 191*898184e3Ssthen=back 192*898184e3Ssthen 193*898184e3Ssthen=head1 Platform Support 194*898184e3Ssthen 195*898184e3Ssthen=head2 New Platforms 196*898184e3Ssthen 197*898184e3SsthenNone 198*898184e3Ssthen 199*898184e3Ssthen=head2 Discontinued Platforms 200*898184e3Ssthen 201*898184e3SsthenNone 202*898184e3Ssthen 203*898184e3Ssthen=head2 Platform-Specific Notes 204*898184e3Ssthen 205*898184e3Ssthen=head3 Solaris 206*898184e3Ssthen 207*898184e3Ssthen=over 208*898184e3Ssthen 209*898184e3Ssthen=item * 210*898184e3Ssthen 211*898184e3SsthenDocumentation listing the Solaris packages required to build Perl on 212*898184e3SsthenSolaris 9 and Solaris 10 has been corrected. 213*898184e3Ssthen 214*898184e3Ssthen=back 215*898184e3Ssthen 216*898184e3Ssthen=head3 Mac OS X 217*898184e3Ssthen 218*898184e3Ssthen=over 219*898184e3Ssthen 220*898184e3Ssthen=item * 221*898184e3Ssthen 222*898184e3SsthenThe F<lib/locale.t> test script has been updated to work on the upcoming 223*898184e3SsthenLion release. 224*898184e3Ssthen 225*898184e3Ssthen=item * 226*898184e3Ssthen 227*898184e3SsthenMac OS X specific compilation instructions have been clarified. 228*898184e3Ssthen 229*898184e3Ssthen=back 230*898184e3Ssthen 231*898184e3Ssthen=head3 Ubuntu Linux 232*898184e3Ssthen 233*898184e3Ssthen=over 234*898184e3Ssthen 235*898184e3Ssthen=item * 236*898184e3Ssthen 237*898184e3SsthenThe L<ODBM_File> installation process has been updated with the new library 238*898184e3Ssthenpaths on Ubuntu natty. 239*898184e3Ssthen 240*898184e3Ssthen=back 241*898184e3Ssthen 242*898184e3Ssthen=head1 Internal Changes 243*898184e3Ssthen 244*898184e3Ssthen=over 245*898184e3Ssthen 246*898184e3Ssthen=item * 247*898184e3Ssthen 248*898184e3SsthenThe compiled representation of formats is now stored via the mg_ptr of 249*898184e3Ssthentheir PERL_MAGIC_fm. Previously it was stored in the string buffer, 250*898184e3Ssthenbeyond SvLEN(), the regular end of the string. SvCOMPILED() and 251*898184e3SsthenSvCOMPILED_{on,off}() now exist solely for compatibility for XS code. 252*898184e3SsthenThe first is always 0, the other two now no-ops. 253*898184e3Ssthen 254*898184e3Ssthen=back 255*898184e3Ssthen 256*898184e3Ssthen=head1 Bug Fixes 257*898184e3Ssthen 258*898184e3Ssthen=over 4 259*898184e3Ssthen 260*898184e3Ssthen=item * 261*898184e3Ssthen 262*898184e3SsthenA bug has been fixed that would cause a "Use of freed value in iteration" 263*898184e3Ssthenerror if the next two hash elements that would be iterated over are 264*898184e3Ssthendeleted. [perl #85026] 265*898184e3Ssthen 266*898184e3Ssthen=item * 267*898184e3Ssthen 268*898184e3SsthenPassing the same constant subroutine to both C<index> and C<formline> no 269*898184e3Ssthenlonger causes one or the other to fail. [perl #89218] 270*898184e3Ssthen 271*898184e3Ssthen=item * 272*898184e3Ssthen 273*898184e3Ssthen5.14.0 introduced some memory leaks in regular expression character 274*898184e3Ssthenclasses such as C<[\w\s]>, which have now been fixed. 275*898184e3Ssthen 276*898184e3Ssthen=item * 277*898184e3Ssthen 278*898184e3SsthenAn edge case in regular expression matching could potentially loop. 279*898184e3SsthenThis happened only under C</i> in bracketed character classes that have 280*898184e3Ssthencharacters with multi-character folds, and the target string to match 281*898184e3Ssthenagainst includes the first portion of the fold, followed by another 282*898184e3Ssthencharacter that has a multi-character fold that begins with the remaining 283*898184e3Ssthenportion of the fold, plus some more. 284*898184e3Ssthen 285*898184e3Ssthen "s\N{U+DF}" =~ /[\x{DF}foo]/i 286*898184e3Ssthen 287*898184e3Ssthenis one such case. C<\xDF> folds to C<"ss">. 288*898184e3Ssthen 289*898184e3Ssthen=item * 290*898184e3Ssthen 291*898184e3SsthenSeveral Unicode case-folding bugs have been fixed. 292*898184e3Ssthen 293*898184e3Ssthen=item * 294*898184e3Ssthen 295*898184e3SsthenThe new (in 5.14.0) regular expression modifier C</a> when repeated like 296*898184e3SsthenC</aa> forbids the characters outside the ASCII range that match 297*898184e3Ssthencharacters inside that range from matching under C</i>. This did not 298*898184e3Ssthenwork under some circumstances, all involving alternation, such as: 299*898184e3Ssthen 300*898184e3Ssthen "\N{KELVIN SIGN}" =~ /k|foo/iaa; 301*898184e3Ssthen 302*898184e3Ssthensucceeded inappropriately. This is now fixed. 303*898184e3Ssthen 304*898184e3Ssthen=item * 305*898184e3Ssthen 306*898184e3SsthenFixed a case where it was possible that a freed buffer may have been read 307*898184e3Ssthenfrom when parsing a here document. 308*898184e3Ssthen 309*898184e3Ssthen=back 310*898184e3Ssthen 311*898184e3Ssthen=head1 Acknowledgements 312*898184e3Ssthen 313*898184e3SsthenPerl 5.14.1 represents approximately four weeks of development since 314*898184e3SsthenPerl 5.14.0 and contains approximately 3500 lines of changes 315*898184e3Ssthenacross 38 files from 17 authors. 316*898184e3Ssthen 317*898184e3SsthenPerl continues to flourish into its third decade thanks to a vibrant 318*898184e3Ssthencommunity of users and developers. The following people are known to 319*898184e3Ssthenhave contributed the improvements that became Perl 5.14.1: 320*898184e3Ssthen 321*898184e3SsthenBo Lindbergh, Claudio Ramirez, Craig A. Berry, David Leadbeater, Father 322*898184e3SsthenChrysostomos, Jesse Vincent, Jim Cromie, Justin Case, Karl Williamson, 323*898184e3SsthenLeo Lapworth, Nicholas Clark, Nobuhiro Iwamatsu, smash, Tom Christiansen, 324*898184e3SsthenTon Hospel, Vladimir Timofeev, and Zsbán Ambrus. 325*898184e3Ssthen 326*898184e3Ssthen 327*898184e3Ssthen=head1 Reporting Bugs 328*898184e3Ssthen 329*898184e3SsthenIf you find what you think is a bug, you might check the articles 330*898184e3Ssthenrecently posted to the comp.lang.perl.misc newsgroup and the perl 331*898184e3Ssthenbug database at http://rt.perl.org/perlbug/ . There may also be 332*898184e3Sstheninformation at http://www.perl.org/ , the Perl Home Page. 333*898184e3Ssthen 334*898184e3SsthenIf you believe you have an unreported bug, please run the L<perlbug> 335*898184e3Ssthenprogram included with your release. Be sure to trim your bug down 336*898184e3Ssthento a tiny but sufficient test case. Your bug report, along with the 337*898184e3Ssthenoutput of C<perl -V>, will be sent off to perlbug@perl.org to be 338*898184e3Ssthenanalysed by the Perl porting team. 339*898184e3Ssthen 340*898184e3SsthenIf the bug you are reporting has security implications, which make it 341*898184e3Sstheninappropriate to send to a publicly archived mailing list, then please send 342*898184e3Ssthenit to perl5-security-report@perl.org. This points to a closed subscription 343*898184e3Ssthenunarchived mailing list, which includes all the core committers, who be able 344*898184e3Ssthento help assess the impact of issues, figure out a resolution, and help 345*898184e3Ssthenco-ordinate the release of patches to mitigate or fix the problem across all 346*898184e3Ssthenplatforms on which Perl is supported. Please only use this address for 347*898184e3Ssthensecurity issues in the Perl core, not for modules independently 348*898184e3Ssthendistributed on CPAN. 349*898184e3Ssthen 350*898184e3Ssthen=head1 SEE ALSO 351*898184e3Ssthen 352*898184e3SsthenThe F<Changes> file for an explanation of how to view exhaustive details 353*898184e3Ssthenon what changed. 354*898184e3Ssthen 355*898184e3SsthenThe F<INSTALL> file for how to build Perl. 356*898184e3Ssthen 357*898184e3SsthenThe F<README> file for general stuff. 358*898184e3Ssthen 359*898184e3SsthenThe F<Artistic> and F<Copying> files for copyright information. 360*898184e3Ssthen 361*898184e3Ssthen=cut 362