15b2d2359Smillert=head1 NAME 25b2d2359Smillert 3*52bd00bfSmillertperl586delta - what is new for perl v5.8.6 45b2d2359Smillert 55b2d2359Smillert=head1 DESCRIPTION 65b2d2359Smillert 75b2d2359SmillertThis document describes differences between the 5.8.5 release and 85b2d2359Smillertthe 5.8.6 release. 95b2d2359Smillert 105b2d2359Smillert=head1 Incompatible Changes 115b2d2359Smillert 125b2d2359SmillertThere are no changes incompatible with 5.8.5. 135b2d2359Smillert 145b2d2359Smillert=head1 Core Enhancements 155b2d2359Smillert 165b2d2359SmillertThe perl interpreter is now more tolerant of UTF-16-encoded scripts. 175b2d2359Smillert 185b2d2359SmillertOn Win32, Perl can now use non-IFS compatible LSPs, which allows Perl to 195b2d2359Smillertwork in conjunction with firewalls such as McAfee Guardian. For full details 205b2d2359Smillertsee the file F<README.win32>, particularly if you're running Win95. 215b2d2359Smillert 225b2d2359Smillert=head1 Modules and Pragmata 235b2d2359Smillert 245b2d2359Smillert=over 4 255b2d2359Smillert 265b2d2359Smillert=item * 275b2d2359Smillert 285b2d2359SmillertWith the C<base> pragma, an intermediate class with no fields used to messes 295b2d2359Smillertup private fields in the base class. This has been fixed. 305b2d2359Smillert 315b2d2359Smillert=item * 325b2d2359Smillert 335b2d2359SmillertCwd upgraded to version 3.01 (as part of the new PathTools distribution) 345b2d2359Smillert 355b2d2359Smillert=item * 365b2d2359Smillert 375b2d2359SmillertDevel::PPPort upgraded to version 3.03 385b2d2359Smillert 395b2d2359Smillert=item * 405b2d2359Smillert 415b2d2359SmillertFile::Spec upgraded to version 3.01 (as part of the new PathTools distribution) 425b2d2359Smillert 435b2d2359Smillert=item * 445b2d2359Smillert 455b2d2359SmillertEncode upgraded to version 2.08 465b2d2359Smillert 475b2d2359Smillert=item * 485b2d2359Smillert 495b2d2359SmillertExtUtils::MakeMaker remains at version 6.17, as later stable releases currently 505b2d2359Smillertavailable on CPAN have some issues with core modules on some core platforms. 515b2d2359Smillert 525b2d2359Smillert=item * 535b2d2359Smillert 545b2d2359SmillertI18N::LangTags upgraded to version 0.35 555b2d2359Smillert 565b2d2359Smillert=item * 575b2d2359Smillert 585b2d2359SmillertMath::BigInt upgraded to version 1.73 595b2d2359Smillert 605b2d2359Smillert=item * 615b2d2359Smillert 625b2d2359SmillertMath::BigRat upgraded to version 0.13 635b2d2359Smillert 645b2d2359Smillert=item * 655b2d2359Smillert 665b2d2359SmillertMIME::Base64 upgraded to version 3.05 675b2d2359Smillert 685b2d2359Smillert=item * 695b2d2359Smillert 705b2d2359SmillertPOSIX::sigprocmask function can now retrieve the current signal mask without 715b2d2359Smillertalso setting it. 725b2d2359Smillert 735b2d2359Smillert=item * 745b2d2359Smillert 755b2d2359SmillertTime::HiRes upgraded to version 1.65 765b2d2359Smillert 775b2d2359Smillert=back 785b2d2359Smillert 795b2d2359Smillert=head1 Utility Changes 805b2d2359Smillert 815b2d2359SmillertPerl has a new -dt command-line flag, which enables threads support in the 825b2d2359Smillertdebugger. 835b2d2359Smillert 845b2d2359Smillert=head1 Performance Enhancements 855b2d2359Smillert 865b2d2359SmillertC<reverse sort ...> is now optimized to sort in reverse, avoiding the 875b2d2359Smillertgeneration of a temporary intermediate list. 885b2d2359Smillert 895b2d2359SmillertC<for (reverse @foo)> now iterates in reverse, avoiding the generation of a 905b2d2359Smillerttemporary reversed list. 915b2d2359Smillert 925b2d2359Smillert=head1 Selected Bug Fixes 935b2d2359Smillert 945b2d2359SmillertThe regexp engine is now more robust when given invalid utf8 input, as is 955b2d2359Smillertsometimes generated by buggy XS modules. 965b2d2359Smillert 975b2d2359SmillertC<foreach> on threads::shared array used to be able to crash Perl. This bug 985b2d2359Smillerthas now been fixed. 995b2d2359Smillert 1005b2d2359SmillertA regexp in C<STDOUT>'s destructor used to coredump, because the regexp pad 1015b2d2359Smillertwas already freed. This has been fixed. 1025b2d2359Smillert 1035b2d2359SmillertC<goto &> is now more robust - bugs in deep recursion and chained C<goto &> 1045b2d2359Smillerthave been fixed. 1055b2d2359Smillert 1065b2d2359SmillertUsing C<delete> on an array no longer leaks memory. A C<pop> of an item from a 1075b2d2359Smillertshared array reference no longer causes a leak. 1085b2d2359Smillert 1095b2d2359SmillertC<eval_sv()> failing a taint test could corrupt the stack - this has been 1105b2d2359Smillertfixed. 1115b2d2359Smillert 1125b2d2359SmillertOn platforms with 64 bit pointers numeric comparison operators used to 1135b2d2359Smillerterroneously compare the addresses of references that are overloaded, rather 1145b2d2359Smillertthan using the overloaded values. This has been fixed. 1155b2d2359Smillert 1165b2d2359SmillertC<read> into a UTF8-encoded buffer with an offset off the end of the buffer 1175b2d2359Smillertno longer mis-calculates buffer lengths. 1185b2d2359Smillert 1195b2d2359SmillertAlthough Perl has promised since version 5.8 that C<sort()> would be 1205b2d2359Smillertstable, the two cases C<sort {$b cmp $a}> and C<< sort {$b <=> $a} >> could 1215b2d2359Smillertproduce non-stable sorts. This is corrected in perl5.8.6. 1225b2d2359Smillert 1235b2d2359SmillertLocalising C<$^D> no longer generates a diagnostic message about valid -D 1245b2d2359Smillertflags. 1255b2d2359Smillert 1265b2d2359Smillert=head1 New or Changed Diagnostics 1275b2d2359Smillert 1285b2d2359SmillertFor -t and -T, 1295b2d2359Smillert Too late for "-T" option 1305b2d2359Smillerthas been changed to the more informative 1315b2d2359Smillert "-T" is on the #! line, it must also be used on the command line 1325b2d2359Smillert 1335b2d2359Smillert=head1 Changed Internals 1345b2d2359Smillert 1355b2d2359SmillertFrom now on all applications embedding perl will behave as if perl 1365b2d2359Smillertwere compiled with -DPERL_USE_SAFE_PUTENV. See "Environment access" in 1375b2d2359Smillertthe F<INSTALL> file for details. 1385b2d2359Smillert 1395b2d2359SmillertMost C<C> source files now have comments at the top explaining their purpose, 1405b2d2359Smillertwhich should help anyone wishing to get an overview of the implementation. 1415b2d2359Smillert 1425b2d2359Smillert=head1 New Tests 1435b2d2359Smillert 1445b2d2359SmillertThere are significantly more tests for the C<B> suite of modules. 1455b2d2359Smillert 1465b2d2359Smillert=head1 Reporting Bugs 1475b2d2359Smillert 1485b2d2359SmillertIf you find what you think is a bug, you might check the articles 1495b2d2359Smillertrecently posted to the comp.lang.perl.misc newsgroup and the perl 1505b2d2359Smillertbug database at http://bugs.perl.org. There may also be 1515b2d2359Smillertinformation at http://www.perl.org, the Perl Home Page. 1525b2d2359Smillert 1535b2d2359SmillertIf you believe you have an unreported bug, please run the B<perlbug> 1545b2d2359Smillertprogram included with your release. Be sure to trim your bug down 1555b2d2359Smillertto a tiny but sufficient test case. Your bug report, along with the 1565b2d2359Smillertoutput of C<perl -V>, will be sent off to perlbug@perl.org to be 1575b2d2359Smillertanalysed by the Perl porting team. You can browse and search 1585b2d2359Smillertthe Perl 5 bugs at http://bugs.perl.org/ 1595b2d2359Smillert 1605b2d2359Smillert=head1 SEE ALSO 1615b2d2359Smillert 1625b2d2359SmillertThe F<Changes> file for exhaustive details on what changed. 1635b2d2359Smillert 1645b2d2359SmillertThe F<INSTALL> file for how to build Perl. 1655b2d2359Smillert 1665b2d2359SmillertThe F<README> file for general stuff. 1675b2d2359Smillert 1685b2d2359SmillertThe F<Artistic> and F<Copying> files for copyright information. 1695b2d2359Smillert 1705b2d2359Smillert=cut 171