1N/A=head1 NAME
1N/A
1N/Aperl583delta - what is new for perl v5.8.3
1N/A
1N/A=head1 DESCRIPTION
1N/A
1N/AThis document describes differences between the 5.8.2 release and
1N/Athe 5.8.3 release.
1N/A
1N/AIf you are upgrading from an earlier release such as 5.6.1, first read
1N/Athe L<perl58delta>, which describes differences between 5.6.0 and
1N/A5.8.0, and the L<perl581delta> and L<perl582delta>, which describe differences
1N/Abetween 5.8.0, 5.8.1 and 5.8.2
1N/A
1N/A=head1 Incompatible Changes
1N/A
1N/AThere are no changes incompatible with 5.8.2.
1N/A
1N/A=head1 Core Enhancements
1N/A
1N/AA C<SCALAR> method is now available for tied hashes. This is called when
1N/Aa tied hash is used in scalar context, such as
1N/A
1N/A if (%tied_hash) {
1N/A ...
1N/A }
1N/A
1N/A
1N/AThe old behaviour was that %tied_hash would return whatever would have been
1N/Areturned for that hash before the hash was tied (so usually 0). The new
1N/Abehaviour in the absence of a SCALAR method is to return TRUE if in the
1N/Amiddle of an C<each> iteration, and otherwise call FIRSTKEY to check if the
1N/Ahash is empty (making sure that a subsequent C<each> will also begin by
1N/Acalling FIRSTKEY). Please see L<perltie/SCALAR> for the full details and
1N/Acaveats.
1N/A
1N/A=head1 Modules and Pragmata
1N/A
1N/A=over 4
1N/A
1N/A=item CGI
1N/A
1N/A=item Cwd
1N/A
1N/A=item Digest
1N/A
1N/A=item Digest::MD5
1N/A
1N/A=item Encode
1N/A
1N/A=item File::Spec
1N/A
1N/A=item FindBin
1N/A
1N/AA function C<again> is provided to resolve problems where modules in different
1N/Adirectories wish to use FindBin.
1N/A
1N/A=item List::Util
1N/A
1N/AYou can now weaken references to read only values.
1N/A
1N/A=item Math::BigInt
1N/A
1N/A=item PodParser
1N/A
1N/A=item Pod::Perldoc
1N/A
1N/A=item POSIX
1N/A
1N/A=item Unicode::Collate
1N/A
1N/A=item Unicode::Normalize
1N/A
1N/A=item Test::Harness
1N/A
1N/A=item threads::shared
1N/A
1N/AC<cond_wait> has a new two argument form. C<cond_timedwait> has been added.
1N/A
1N/A=back
1N/A
1N/A=head1 Utility Changes
1N/A
1N/AC<find2perl> now assumes C<-print> as a default action. Previously, it
1N/Aneeded to be specified explicitly.
1N/A
1N/AA new utility, C<prove>, makes it easy to run an individual regression test
1N/Aat the command line. C<prove> is part of Test::Harness, which users of earlier
1N/APerl versions can install from CPAN.
1N/A
1N/A=head1 New Documentation
1N/A
1N/AThe documentation has been revised in places to produce more standard manpages.
1N/A
1N/AThe documentation for the special code blocks (BEGIN, CHECK, INIT, END)
1N/Ahas been improved.
1N/A
1N/A=head1 Installation and Configuration Improvements
1N/A
1N/APerl now builds on OpenVMS I64
1N/A
1N/A=head1 Selected Bug Fixes
1N/A
1N/AUsing substr() on a UTF8 string could cause subsequent accesses on that
1N/Astring to return garbage. This was due to incorrect UTF8 offsets being
1N/Acached, and is now fixed.
1N/A
1N/Ajoin() could return garbage when the same join() statement was used to
1N/Aprocess 8 bit data having earlier processed UTF8 data, due to the flags
1N/Aon that statement's temporary workspace not being reset correctly. This
1N/Ais now fixed.
1N/A
1N/AC<$a .. $b> will now work as expected when either $a or $b is C<undef>
1N/A
1N/AUsing Unicode keys with tied hashes should now work correctly.
1N/A
1N/AReading $^E now preserves $!. Previously, the C code implementing $^E
1N/Adid not preserve C<errno>, so reading $^E could cause C<errno> and therefore
1N/AC<$!> to change unexpectedly.
1N/A
1N/AReentrant functions will (once more) work with C++. 5.8.2 introduced a bugfix
1N/Awhich accidentally broke the compilation of Perl extensions written in C++
1N/A
1N/A=head1 New or Changed Diagnostics
1N/A
1N/AThe fatal error "DESTROY created new reference to dead object" is now
1N/Adocumented in L<perldiag>.
1N/A
1N/A=head1 Changed Internals
1N/A
1N/AThe hash code has been refactored to reduce source duplication. The
1N/Aexternal interface is unchanged, and aside from the bug fixes described
1N/Aabove, there should be no change in behaviour.
1N/A
1N/AC<hv_clear_placeholders> is now part of the perl API
1N/A
1N/ASome C macros have been tidied. In particular macros which create temporary
1N/Alocal variables now name these variables more defensively, which should
1N/Aavoid bugs where names clash.
1N/A
1N/A<signal.h> is now always included.
1N/A
1N/A=head1 Configuration and Building
1N/A
1N/AC<Configure> now invokes callbacks regardless of the value of the variable
1N/Athey are called for. Previously callbacks were only invoked in the
1N/AC<case $variable $define)> branch. This change should only affect platform
1N/Amaintainers writing configuration hints files.
1N/A
1N/A=head1 Platform Specific Problems
1N/A
1N/AThe regression test ext/threads/shared/t/wait.t fails on early RedHat 9
1N/Aand HP-UX 10.20 due to bugs in their threading implementations.
1N/ARedHat users should see https://rhn.redhat.com/errata/RHBA-2003-136.html
1N/Aand consider upgrading their glibc.
1N/A
1N/A=head1 Known Problems
1N/A
1N/ADetached threads aren't supported on Windows yet, as they may lead to
1N/Amemory access violation problems.
1N/A
1N/AThere is a known race condition opening scripts in C<suidperl>. C<suidperl>
1N/Ais neither built nor installed by default, and has been deprecated since
1N/Aperl 5.8.0. You are advised to replace use of suidperl with tools such
1N/Aas sudo ( http://www.courtesan.com/sudo/ )
1N/A
1N/AWe have a backlog of unresolved bugs. Dealing with bugs and bug reports
1N/Ais unglamorous work; not something ideally suited to volunteer labour,
1N/Abut that is all that we have.
1N/A
1N/AThe perl5 development team are implementing changes to help address this
1N/Aproblem, which should go live in early 2004.
1N/A
1N/A=head1 Future Directions
1N/A
1N/ACode freeze for the next maintenance release (5.8.4) is on March 31st 2004,
1N/Awith release expected by mid April. Similarly 5.8.5's freeze will be at
1N/Athe end of June, with release by mid July.
1N/A
1N/A=head1 Obituary
1N/A
1N/AIain 'Spoon' Truskett, Perl hacker, author of L<perlreref> and
1N/Acontributor to CPAN, died suddenly on 29th December 2003, aged 24.
1N/AHe will be missed.
1N/A
1N/A=head1 Reporting Bugs
1N/A
1N/AIf you find what you think is a bug, you might check the articles
1N/Arecently posted to the comp.lang.perl.misc newsgroup and the perl
1N/Abug database at http://bugs.perl.org. There may also be
1N/Ainformation at http://www.perl.org, the Perl Home Page.
1N/A
1N/AIf you believe you have an unreported bug, please run the B<perlbug>
1N/Aprogram included with your release. Be sure to trim your bug down
1N/Ato a tiny but sufficient test case. Your bug report, along with the
1N/Aoutput of C<perl -V>, will be sent off to perlbug@perl.org to be
1N/Aanalysed by the Perl porting team. You can browse and search
1N/Athe Perl 5 bugs at http://bugs.perl.org/
1N/A
1N/A=head1 SEE ALSO
1N/A
1N/AThe F<Changes> file for exhaustive details on what changed.
1N/A
1N/AThe F<INSTALL> file for how to build Perl.
1N/A
1N/AThe F<README> file for general stuff.
1N/A
1N/AThe F<Artistic> and F<Copying> files for copyright information.
1N/A
1N/A=cut