xref: /openbsd/gnu/usr.bin/perl/pod/perl586delta.pod (revision 52bd00bf)
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