perldelta

NAME

perldelta - what is new for perl v5.8.8

DESCRIPTION

This document describes differences between the 5.8.7 release and the 5.8.8 release.

Incompatible Changes

There are no changes intentionally incompatible with 5.8.7. If any exist, they are bugs and reports are welcome.

Core Enhancements

"" CWchdir, CWchmod and CWchown can now work on filehandles as well as filenames, if the system supports respectively CWfchdir, CWfchmod and CWfchown, thanks to a patch provided by Gisle Aas.

Modules and Pragmata

"" CWAttribute::Handlers upgraded to version 0.78_02
"" Documentation typo fix
"" CWattrs upgraded to version 1.02
"" Internal cleanup only
"" CWautouse upgraded to version 1.05
"" Simplified implementation
"" CWB upgraded to version 1.09_01
"" The inheritance hierarchy of the CWB:: modules has been corrected; CWB::NV now inherits from CWB::SV (instead of CWB::IV).
"" CWblib upgraded to version 1.03
"" Documentation typo fix
"" CWByteLoader upgraded to version 0.06
"" Internal cleanup
"" CWCGI upgraded to version 3.15
"" Extraneous “?” from CWself_url() removed
"" CWscrolling_list() select attribute fixed
"" CWvirtual_port now works properly with the https protocol
"" CWupload_hook() and CWappend() now works in function-oriented mode
"" CWPOST_MAX doesn't cause the client to hang any more
"" Automatic tab indexes are now disabled and new CW-tabindex pragma has been added to turn automatic indexes back on
"" CWend_form() doesn't emit empty (and non-validating) CW<div>
"" CWCGI::Carp works better in certain mod_perl configurations
"" Setting CW$CGI::TMPDIRECTORY is now effective
"" Enhanced documentation
"" CWcharnames upgraded to version 1.05
"" CWviacode() now accept hex strings and has been optimized.
"" CWCPAN upgraded to version 1.76_02
"" 1 minor bug fix for Win32
"" CWCwd upgraded to version 3.12
"" CWcanonpath() on Win32 now collapses foo\.. sections correctly.
"" Improved behaviour on Symbian \s-1OS\s0.
"" Enhanced documentation and typo fixes
"" Internal cleanup
"" CWData::Dumper upgraded to version 2.121_08
"" A problem where CWData::Dumper would sometimes update the iterator state of hashes has been fixed
"" Numeric labels now work
"" Internal cleanup
"" CWDB upgraded to version 1.01
"" A problem where the state of the regexp engine would sometimes get clobbered when running under the debugger has been fixed.
"" CWDB_File upgraded to version 1.814
"" Adds support for Berkeley \s-1DB\s0 4.4.
"" CWDevel::DProf upgraded to version 20050603.00
"" Internal cleanup
"" CWDevel::Peek upgraded to version 1.03
"" Internal cleanup
"" CWDevel::PPPort upgraded to version 3.06_01
"" CW--compat-version argument checking has been improved
"" Files passed on the command line are filtered by default
"" CW--nofilter option to override the filtering has been added
"" Enhanced documentation
"" CWdiagnostics upgraded to version 1.15
"" Documentation typo fix
"" CWDigest upgraded to version 1.14
"" The constructor now knows which module implements \s-1SHA-224\s0
"" Documentation tweaks and typo fixes
"" CWDigest::MD5 upgraded to version 2.36
"" CWXSLoader is now used for faster loading
"" Enhanced documentation including \s-1MD5\s0 weaknesses discovered lately
"" CWDumpvalue upgraded to version 1.12
"" Documentation fix
"" CWDynaLoader upgraded but unfortunately we're not able to increment its version number :-(
"" Implements CWdl_unload_file on Win32
"" Internal cleanup
"" CWXSLoader 0.06 incorporated; small optimisation for calling CWbootstrap_inherit() and documentation enhancements.
"" CWEncode upgraded to version 2.12
"" A coderef is now acceptable for CWCHECK!
"" 3 new characters added to the \s-1ISO-8859-7\s0 encoding
"" New encoding CWMIME-Header-ISO_2022_JP added
"" Problem with partial characters and CWencoding(utf-8-strict) fixed.
"" Documentation enhancements and typo fixes
"" CWEnglish upgraded to version 1.02
"" the CW$COMPILING variable has been added
"" CWExtUtils::Constant upgraded to version 0.17
"" Improved compatibility with older versions of perl
"" CWExtUtils::MakeMaker upgraded to version 6.30 (was 6.17)
"" Too much to list here; see <http://search.cpan.org/src/MSCHWERN/ExtUtils-MakeMaker-6.30/Changes>
"" CWFile::Basename upgraded to version 2.74, with changes contributed by Michael Schwern.
"" Documentation clarified and errors corrected.
"" CWbasename now strips trailing path separators before processing the name.
"" CWbasename now returns CW/ for parameter CW/, to make CWbasename consistent with the shell utility of the same name.
"" The suffix is no longer stripped if it is identical to the remaining characters in the name, again for consistency with the shell utility.
"" Some internal code cleanup.
"" CWFile::Copy upgraded to version 2.09
"" Copying a file onto itself used to fail.
"" Moving a file between file systems now preserves the access and modification time stamps
"" CWFile::Find upgraded to version 1.10
"" Win32 portability fixes
"" Enhanced documentation
"" CWFile::Glob upgraded to version 1.05
"" Internal cleanup
"" CWFile::Path upgraded to version 1.08
"" CWmkpath now preserves CWerrno when CWmkdir fails
"" CWFile::Spec upgraded to version 3.12
"" CWFile::Spec-rootdir()> now returns CW\ on Win32, instead of CW/
"" CW$^O could sometimes become tainted. This has been fixed.
"" CWcanonpath on Win32 now collapses CWfoo/.. (or CWfoo\..) sections correctly, rather than doing the “misguided” work it was previously doing. Note that CWcanonpath on Unix still does not collapse these sections, as doing so would be incorrect.
"" Some documentation improvements
"" Some internal code cleanup
"" CWFileCache upgraded to version 1.06
"" \s-1POD\s0 formatting errors in the documentation fixed
"" CWFilter::Simple upgraded to version 0.82
"" CWFindBin upgraded to version 1.47
"" Now works better with directories where access rights are more restrictive than usual.
"" CWGDBM_File upgraded to version 1.08
"" Internal cleanup
"" CWGetopt::Long upgraded to version 2.35
"" CWprefix_pattern has now been complemented by a new configuration option CWlong_prefix_pattern that allows the user to specify what prefix patterns should have long option style semantics applied.
"" Options can now take multiple values at once (experimental)
"" Various bug fixes
"" CWif upgraded to version 0.05
"" Give more meaningful error messages from CWif when invoked with a condition in list context.
"" Restore backwards compatibility with earlier versions of perl
"" CWIO upgraded to version 1.22
"" Enhanced documentation
"" Internal cleanup
"" CWIPC::Open2 upgraded to version 1.02
"" Enhanced documentation
"" CWIPC::Open3 upgraded to version 1.02
"" Enhanced documentation
"" CWList::Util upgraded to version 1.18 (was 1.14)
"" Fix pure-perl version of CWrefaddr to avoid blessing an un-blessed reference
"" Use CWXSLoader for faster loading
"" Fixed various memory leaks
"" Internal cleanup and portability fixes
"" CWMath::Complex upgraded to version 1.35
"" CWatan2(0, i) now works, as do all the (computable) complex argument cases
"" Fixes for certain bugs in CWmake and CWemake
"" Support returning the kth root directly
"" Support CW[2,-3pi/8] in CWemake
"" Support CWinf for CWmake/CWemake
"" Document CWmake/CWemake more visibly
"" CWMath::Trig upgraded to version 1.03
"" Add more great circle routines: CWgreat_circle_waypoint and CWgreat_circle_destination
"" CWMIME::Base64 upgraded to version 3.07
"" Use CWXSLoader for faster loading
"" Enhanced documentation
"" Internal cleanup
"" CWNDBM_File upgraded to version 1.06
"" Enhanced documentation
"" CWODBM_File upgraded to version 1.06
"" Documentation typo fixed
"" Internal cleanup
"" CWOpcode upgraded to version 1.06
"" Enhanced documentation
"" Internal cleanup
"" CWopen upgraded to version 1.05
"" Enhanced documentation
"" CWoverload upgraded to version 1.04
"" Enhanced documentation
"" CWPerlIO upgraded to version 1.04
"" CWPerlIO::via iterate over layers properly now
"" CWPerlIO::scalar understands CW$/ = "" now
"" CWencoding(utf-8-strict) with partial characters now works
"" Enhanced documentation
"" Internal cleanup
"" CWPod::Functions upgraded to version 1.03
"" Documentation typos fixed
"" CWPod::Html upgraded to version 1.0504
"" \s-1HTML\s0 output will now correctly link to CW=items on the same page, and should be valid \s-1XHTML\s0.
"" Variable names are recognized as intended
"" Documentation typos fixed
"" CWPod::Parser upgraded to version 1.32
"" Allow files that start with CW=head on the first line
"" Win32 portability fix
"" Exit status of CWpod2usage fixed
"" New CW-noperldoc switch for CWpod2usage
"" Arbitrary \s-1URL\s0 schemes now allowed
"" Documentation typos fixed
"" CWPOSIX upgraded to version 1.09
"" Documentation typos fixed
"" Internal cleanup
"" CWre upgraded to version 0.05
"" Documentation typo fixed
"" CWSafe upgraded to version 2.12
"" Minor documentation enhancement
"" CWSDBM_File upgraded to version 1.05
"" Documentation typo fixed
"" Internal cleanup
"" CWSocket upgraded to version 1.78
"" Internal cleanup
"" CWStorable upgraded to version 2.15
"" This includes the CWSTORABLE_attach hook functionality added by Adam Kennedy, and more frugal memory requirements when storing under CWithreads, by using the CWithreads cloning tracking code.
"" CWSwitch upgraded to version 2.10_01
"" Documentation typos fixed
"" CWSys::Syslog upgraded to version 0.13
"" Now provides numeric macros and meaningful CWExporter tags.
"" No longer uses CWSys::Hostname as it may provide useless values in unconfigured network environments, so instead uses CWINADDR_LOOPBACK directly.
"" CWsyslog() now uses local timestamp.
"" CWsetlogmask() now behaves like its C counterpart.
"" CWsetlogsock() will now CWcroak() as documented.
"" Improved error and warnings messages.
"" Improved documentation.
"" CWTerm::ANSIColor upgraded to version 1.10
"" Fixes a bug in CWcolored when CW$EACHLINE is set that caused it to not color lines consisting solely of 0 (literal zero).
"" Improved tests.
"" CWTerm::ReadLine upgraded to version 1.02
"" Documentation tweaks
"" CWTest::Harness upgraded to version 2.56 (was 2.48)
"" The CWTest::Harness timer is now off by default.
"" Now shows elapsed time in milliseconds.
"" Various bug fixes
"" CWTest::Simple upgraded to version 0.62 (was 0.54)
"" CWis_deeply() no longer fails to work for many cases
"" Various minor bug fixes
"" Documentation enhancements
"" CWText::Tabs upgraded to version 2005.0824
"" Provides a faster implementation of CWexpand
"" CWText::Wrap upgraded to version 2005.082401
"" Adds CW$Text::Wrap::separator2, which allows you to preserve existing newlines but add line-breaks with some other string.
"" CWthreads upgraded to version 1.07
"" CWthreads will now honour CWno warnings 'threads'
"" A thread's interpreter is now freed after CW$t->join() rather than after CWundef $t, which should fix some CWithreads memory leaks. (Fixed by Dave Mitchell)
"" Some documentation typo fixes.
"" CWthreads::shared upgraded to version 0.94
"" Documentation changes only
"" Note: An improved implementation of CWthreads::shared is available on \s-1CPAN\s0 - this will be merged into 5.8.9 if it proves stable.
"" CWTie::Hash upgraded to version 1.02
"" Documentation typo fixed
"" CWTime::HiRes upgraded to version 1.86 (was 1.66)
"" CWclock_nanosleep() and CWclock() functions added
"" Support for the \s-1POSIX\s0 CWclock_gettime() and CWclock_getres() has been added
"" Return CWundef or an empty list if the C CWgettimeofday() function fails
"" Improved CWnanosleep detection
"" Internal cleanup
"" Enhanced documentation
"" CWUnicode::Collate upgraded to version 0.52
"" Now implements \s-1UCA\s0 Revision 14 (based on Unicode 4.1.0).
"" CWUnicode::Collate-new> method no longer overwrites user's CW$_
"" Enhanced documentation
"" CWUnicode::UCD upgraded to version 0.24
"" Documentation typos fixed
"" CWUser::grent upgraded to version 1.01
"" Documentation typo fixed
"" CWutf8 upgraded to version 1.06
"" Documentation typos fixed
"" CWvmsish upgraded to version 1.02
"" Documentation typos fixed
"" CWwarnings upgraded to version 1.05
"" Gentler messing with CWCarp:: internals
"" Internal cleanup
"" Documentation update
"" CWWin32 upgraded to version 0.2601
"" Provides Windows Vista support to CWWin32::GetOSName
"" Documentation enhancements
"" CWXS::Typemap upgraded to version 0.02
"" Internal cleanup

Utility Changes

CWh2xs implements new option CW--use-xsloader to force use of CWXSLoader even in backwards compatible modules.
The handling of authors' names that had apostrophes has been fixed.
Any enums with negative values are now skipped. CWperlivp implements new option CW-a and will not check for *.ph files by default any more. Use the CW-a option to run all tests.

New Documentation

The perlglossary manpage is a glossary of terms used in the Perl documentation, technical and otherwise, kindly provided by O'Reilly Media, inc.

Performance Enhancements

"" Weak reference creation is now O(1) rather than O(n), courtesy of Nicholas Clark. Weak reference deletion remains O(n), but if deletion only happens at program exit, it may be skipped completely.
"" Salvador Fandi