1*0Sstevel@tonic-gate=head1 NAME 2*0Sstevel@tonic-gate 3*0Sstevel@tonic-gateperl582delta - what is new for perl v5.8.2 4*0Sstevel@tonic-gate 5*0Sstevel@tonic-gate=head1 DESCRIPTION 6*0Sstevel@tonic-gate 7*0Sstevel@tonic-gateThis document describes differences between the 5.8.1 release and 8*0Sstevel@tonic-gatethe 5.8.2 release. 9*0Sstevel@tonic-gate 10*0Sstevel@tonic-gateIf you are upgrading from an earlier release such as 5.6.1, first read 11*0Sstevel@tonic-gatethe L<perl58delta>, which describes differences between 5.6.0 and 12*0Sstevel@tonic-gate5.8.0, and the L<perl581delta>, which describes differences between 13*0Sstevel@tonic-gate5.8.0 and 5.8.1. 14*0Sstevel@tonic-gate 15*0Sstevel@tonic-gate=head1 Incompatible Changes 16*0Sstevel@tonic-gate 17*0Sstevel@tonic-gateFor threaded builds for modules calling certain re-entrant system calls, 18*0Sstevel@tonic-gatebinary compatibility was accidentally lost between 5.8.0 and 5.8.1. 19*0Sstevel@tonic-gateBinary compatibility with 5.8.0 has been restored in 5.8.2, which 20*0Sstevel@tonic-gatenecessitates breaking compatibility with 5.8.1. We see this as the 21*0Sstevel@tonic-gatelesser of two evils. 22*0Sstevel@tonic-gate 23*0Sstevel@tonic-gateThis will only affect people who have a threaded perl 5.8.1, and compiled 24*0Sstevel@tonic-gatemodules which use these calls, and now attempt to run the compiled modules 25*0Sstevel@tonic-gatewith 5.8.2. The fix is to re-compile and re-install the modules using 5.8.2. 26*0Sstevel@tonic-gate 27*0Sstevel@tonic-gate=head1 Core Enhancements 28*0Sstevel@tonic-gate 29*0Sstevel@tonic-gate=head2 Hash Randomisation 30*0Sstevel@tonic-gate 31*0Sstevel@tonic-gateThe hash randomisation introduced with 5.8.1 has been amended. It 32*0Sstevel@tonic-gatetranspired that although the implementation introduced in 5.8.1 was source 33*0Sstevel@tonic-gatecompatible with 5.8.0, it was not binary compatible in certain cases. 5.8.2 34*0Sstevel@tonic-gatecontains an improved implementation which is both source and binary 35*0Sstevel@tonic-gatecompatible with both 5.8.0 and 5.8.1, and remains robust against the form of 36*0Sstevel@tonic-gateattack which prompted the change for 5.8.1. 37*0Sstevel@tonic-gate 38*0Sstevel@tonic-gateWe are grateful to the Debian project for their input in this area. 39*0Sstevel@tonic-gateSee L<perlsec/"Algorithmic Complexity Attacks"> for the original 40*0Sstevel@tonic-gaterationale behind this change. 41*0Sstevel@tonic-gate 42*0Sstevel@tonic-gate=head2 Threading 43*0Sstevel@tonic-gate 44*0Sstevel@tonic-gateSeveral memory leaks associated with variables shared between threads 45*0Sstevel@tonic-gatehave been fixed. 46*0Sstevel@tonic-gate 47*0Sstevel@tonic-gate=head1 Modules and Pragmata 48*0Sstevel@tonic-gate 49*0Sstevel@tonic-gate=head2 Updated Modules And Pragmata 50*0Sstevel@tonic-gate 51*0Sstevel@tonic-gateThe following modules and pragmata have been updated since Perl 5.8.1: 52*0Sstevel@tonic-gate 53*0Sstevel@tonic-gate=over 4 54*0Sstevel@tonic-gate 55*0Sstevel@tonic-gate=item Devel::PPPort 56*0Sstevel@tonic-gate 57*0Sstevel@tonic-gate=item Digest::MD5 58*0Sstevel@tonic-gate 59*0Sstevel@tonic-gate=item I18N::LangTags 60*0Sstevel@tonic-gate 61*0Sstevel@tonic-gate=item libnet 62*0Sstevel@tonic-gate 63*0Sstevel@tonic-gate=item MIME::Base64 64*0Sstevel@tonic-gate 65*0Sstevel@tonic-gate=item Pod::Perldoc 66*0Sstevel@tonic-gate 67*0Sstevel@tonic-gate=item strict 68*0Sstevel@tonic-gate 69*0Sstevel@tonic-gateDocumentation improved 70*0Sstevel@tonic-gate 71*0Sstevel@tonic-gate=item Tie::Hash 72*0Sstevel@tonic-gate 73*0Sstevel@tonic-gateDocumentation improved 74*0Sstevel@tonic-gate 75*0Sstevel@tonic-gate=item Time::HiRes 76*0Sstevel@tonic-gate 77*0Sstevel@tonic-gate=item Unicode::Collate 78*0Sstevel@tonic-gate 79*0Sstevel@tonic-gate=item Unicode::Normalize 80*0Sstevel@tonic-gate 81*0Sstevel@tonic-gate=item UNIVERSAL 82*0Sstevel@tonic-gate 83*0Sstevel@tonic-gateDocumentation improved 84*0Sstevel@tonic-gate 85*0Sstevel@tonic-gate=back 86*0Sstevel@tonic-gate 87*0Sstevel@tonic-gate=head1 Selected Bug Fixes 88*0Sstevel@tonic-gate 89*0Sstevel@tonic-gateSome syntax errors involving unrecognized filetest operators are now handled 90*0Sstevel@tonic-gatecorrectly by the parser. 91*0Sstevel@tonic-gate 92*0Sstevel@tonic-gate=head1 Changed Internals 93*0Sstevel@tonic-gate 94*0Sstevel@tonic-gateInterpreter initialization is more complete when -DMULTIPLICITY is off. 95*0Sstevel@tonic-gateThis should resolve problems with initializing and destroying the Perl 96*0Sstevel@tonic-gateinterpreter more than once in a single process. 97*0Sstevel@tonic-gate 98*0Sstevel@tonic-gate=head1 Platform Specific Problems 99*0Sstevel@tonic-gate 100*0Sstevel@tonic-gateDynamic linker flags have been tweaked for Solaris and OS X, which should 101*0Sstevel@tonic-gatesolve problems seen while building some XS modules. 102*0Sstevel@tonic-gate 103*0Sstevel@tonic-gateBugs in OS/2 sockets and tmpfile have been fixed. 104*0Sstevel@tonic-gate 105*0Sstevel@tonic-gateIn OS X C<setreuid> and friends are troublesome - perl will now work 106*0Sstevel@tonic-gatearound their problems as best possible. 107*0Sstevel@tonic-gate 108*0Sstevel@tonic-gate=head1 Future Directions 109*0Sstevel@tonic-gate 110*0Sstevel@tonic-gateStarting with 5.8.3 we intend to make more frequent maintenance releases, 111*0Sstevel@tonic-gatewith a smaller number of changes in each. The intent is to propagate 112*0Sstevel@tonic-gatebug fixes out to stable releases more rapidly and make upgrading stable 113*0Sstevel@tonic-gatereleases less of an upheaval. This should give end users more 114*0Sstevel@tonic-gateflexibility in their choice of upgrade timing, and allow them easier 115*0Sstevel@tonic-gateassessment of the impact of upgrades. The current plan is for code freezes 116*0Sstevel@tonic-gateas follows 117*0Sstevel@tonic-gate 118*0Sstevel@tonic-gate=over 4 119*0Sstevel@tonic-gate 120*0Sstevel@tonic-gate=item * 121*0Sstevel@tonic-gate 122*0Sstevel@tonic-gate5.8.3 23:59:59 GMT, Wednesday December 31st 2003 123*0Sstevel@tonic-gate 124*0Sstevel@tonic-gate=item * 125*0Sstevel@tonic-gate 126*0Sstevel@tonic-gate5.8.4 23:59:59 GMT, Wednesday March 31st 2004 127*0Sstevel@tonic-gate 128*0Sstevel@tonic-gate=item * 129*0Sstevel@tonic-gate 130*0Sstevel@tonic-gate5.8.5 23:59:59 GMT, Wednesday June 30th 2004 131*0Sstevel@tonic-gate 132*0Sstevel@tonic-gate=back 133*0Sstevel@tonic-gate 134*0Sstevel@tonic-gatewith the release following soon after, when testing is complete. 135*0Sstevel@tonic-gate 136*0Sstevel@tonic-gateSee L<perl581delta/"Future Directions"> for more soothsaying. 137*0Sstevel@tonic-gate 138*0Sstevel@tonic-gate=head1 Reporting Bugs 139*0Sstevel@tonic-gate 140*0Sstevel@tonic-gateIf you find what you think is a bug, you might check the articles 141*0Sstevel@tonic-gaterecently posted to the comp.lang.perl.misc newsgroup and the perl 142*0Sstevel@tonic-gatebug database at http://bugs.perl.org/. There may also be 143*0Sstevel@tonic-gateinformation at http://www.perl.com/, the Perl Home Page. 144*0Sstevel@tonic-gate 145*0Sstevel@tonic-gateIf you believe you have an unreported bug, please run the B<perlbug> 146*0Sstevel@tonic-gateprogram included with your release. Be sure to trim your bug down 147*0Sstevel@tonic-gateto a tiny but sufficient test case. Your bug report, along with the 148*0Sstevel@tonic-gateoutput of C<perl -V>, will be sent off to perlbug@perl.org to be 149*0Sstevel@tonic-gateanalysed by the Perl porting team. You can browse and search 150*0Sstevel@tonic-gatethe Perl 5 bugs at http://bugs.perl.org/ 151*0Sstevel@tonic-gate 152*0Sstevel@tonic-gate=head1 SEE ALSO 153*0Sstevel@tonic-gate 154*0Sstevel@tonic-gateThe F<Changes> file for exhaustive details on what changed. 155*0Sstevel@tonic-gate 156*0Sstevel@tonic-gateThe F<INSTALL> file for how to build Perl. 157*0Sstevel@tonic-gate 158*0Sstevel@tonic-gateThe F<README> file for general stuff. 159*0Sstevel@tonic-gate 160*0Sstevel@tonic-gateThe F<Artistic> and F<Copying> files for copyright information. 161*0Sstevel@tonic-gate 162*0Sstevel@tonic-gate=cut 163