diff options
author | Nicholas Clark <nick@ccl4.org> | 2006-02-01 17:53:28 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2006-02-01 17:53:28 +0000 |
commit | c11a53c651fea67be0519304acae4518ba4a1a54 (patch) | |
tree | 7d6c10b7c831d2681c6cc2163bcde987e8c2dc48 /pod/perl588delta.pod | |
parent | eed1f4d3b2206c29d4c4c1c73552095d0364b675 (diff) | |
download | perl-c11a53c651fea67be0519304acae4518ba4a1a54.tar.gz |
Integrate perl588delta.pod from maint, and re-run pod/buildtoc.
p4raw-id: //depot/perl@27037
p4raw-branched: from //depot/maint-5.8/perl@27036 'branch in'
pod/perl588delta.pod (@27012..)
p4raw-edited: from //depot/maint-5.8/perl@24695 'edit in'
vms/descrip_mms.template (@24616..)
p4raw-integrated: from //depot/maint-5.8/perl@24695 'edit in'
Makefile.SH (@23936..) pod.lst pod/perltoc.pod win32/Makefile
win32/makefile.mk (@24616..) 'merge in' win32/pod.mak
(@23573..) MANIFEST (@24611..)
Diffstat (limited to 'pod/perl588delta.pod')
-rw-r--r-- | pod/perl588delta.pod | 1632 |
1 files changed, 1632 insertions, 0 deletions
diff --git a/pod/perl588delta.pod b/pod/perl588delta.pod new file mode 100644 index 0000000000..344d8f4348 --- /dev/null +++ b/pod/perl588delta.pod @@ -0,0 +1,1632 @@ +=head1 NAME + +perldelta - what is new for perl v5.8.8 + +=head1 DESCRIPTION + +This document describes differences between the 5.8.7 release and +the 5.8.8 release. + +=head1 Incompatible Changes + +There are no changes intentionally incompatible with 5.8.7. If any exist, +they are bugs and reports are welcome. + +=head1 Core Enhancements + +=over + +=item * + +C<chdir>, C<chmod> and C<chown> can now work on filehandles as well as +filenames, if the system supports respectively C<fchdir>, C<fchmod> and +C<fchown>, thanks to a patch provided by Gisle Aas. + +=back + +=head1 Modules and Pragmata + +=over + +=item * + +C<Attribute::Handlers> upgraded to version 0.78_02 + +=over + +=item * + +Documentation typo fix + +=back + +=item * + +C<attrs> upgraded to version 1.02 + +=over + +=item * + +Internal cleanup only + +=back + +=item * + +C<autouse> upgraded to version 1.05 + +=over + +=item * + +Simplified implementation + +=back + +=item * + +C<B> upgraded to version 1.09_01 + +=over + +=item * + +The inheritance hierarchy of the C<B::> modules has been corrected; +C<B::NV> now inherits from C<B::SV> (instead of C<B::IV>). + +=back + +=item * + +C<blib> upgraded to version 1.03 + +=over + +=item * + +Documentation typo fix + +=back + +=item * + +C<ByteLoader> upgraded to version 0.06 + +=over + +=item * + +Internal cleanup + +=back + +=item * + +C<CGI> upgraded to version 3.15 + +=over + +=item * + +Extraneous "?" from C<self_url()> removed + +=item * + +C<scrolling_list()> select attribute fixed + +=item * + +C<virtual_port> now works properly with the https protocol + +=item * + +C<upload_hook()> and C<append()> now works in function-oriented mode + +=item * + +C<POST_MAX> doesn't cause the client to hang any more + +=item * + +Automatic tab indexes are now disabled and new C<-tabindex> pragma has +been added to turn automatic indexes back on + +=item * + +C<end_form()> doesn't emit empty (and non-validating) C<< <div> >> + +=item * + +C<CGI::Carp> works better in certain mod_perl configurations + +=item * + +Setting C<$CGI::TMPDIRECTORY> is now effective + +=item * + +Enhanced documentation + +=back + +=item * + +C<charnames> upgraded to version 1.05 + +=over + +=item * + +C<viacode()> now accept hex strings and has been optimized. + +=back + +=item * + +C<CPAN> upgraded to version 1.76_02 + +=over + +=item * + +1 minor bug fix for Win32 + +=back + +=item * + +C<Cwd> upgraded to version 3.12 + +=over + +=item * + +C<canonpath()> on Win32 now collapses F<foo\..> sections correctly. + +=item * + +Improved behaviour on Symbian OS. + +=item * + +Enhanced documentation and typo fixes + +=item * + +Internal cleanup + +=back + +=item * + +C<Data::Dumper> upgraded to version 2.121_08 + +=over + +=item * + +A problem where C<Data::Dumper> would sometimes update the iterator state +of hashes has been fixed + +=item * + +Numeric labels now work + +=item * + +Internal cleanup + +=back + +=item * + +C<DB> upgraded to version 1.01 + +=over + +=item * + +A problem where the state of the regexp engine would sometimes get clobbered when running +under the debugger has been fixed. + +=back + +=item * + +C<DB_File> upgraded to version 1.814 + +=over + +=item * + +Adds support for Berkeley DB 4.4. + +=back + +=item * + +C<Devel::DProf> upgraded to version 20050603.00 + +=over + +=item * + +Internal cleanup + +=back + +=item * + +C<Devel::Peek> upgraded to version 1.03 + +=over + +=item * + +Internal cleanup + +=back + +=item * + +C<Devel::PPPort> upgraded to version 3.06_01 + +=over + +=item * + +C<--compat-version> argument checking has been improved + +=item * + +Files passed on the command line are filtered by default + +=item * + +C<--nofilter> option to override the filtering has been added + +=item * + +Enhanced documentation + +=back + +=item * + +C<diagnostics> upgraded to version 1.15 + +=over + +=item * + +Documentation typo fix + +=back + +=item * + +C<Digest> upgraded to version 1.14 + +=over + +=item * + +The constructor now knows which module implements SHA-224 + +=item * + +Documentation tweaks and typo fixes + +=back + +=item * + +C<Digest::MD5> upgraded to version 2.36 + +=over + +=item * + +C<XSLoader> is now used for faster loading + +=item * + +Enhanced documentation including MD5 weaknesses discovered lately + +=back + +=item * + +C<Dumpvalue> upgraded to version 1.12 + +=over + +=item * + +Documentation fix + +=back + +=item * + +C<DynaLoader> upgraded but unfortunately we're not able to increment its version number :-( + +=over + +=item * + +Implements C<dl_unload_file> on Win32 + +=item * + +Internal cleanup + +=item * + +C<XSLoader> 0.06 incorporated; small optimisation for calling +C<bootstrap_inherit()> and documentation enhancements. + +=back + +=item * + +C<Encode> upgraded to version 2.12 + +=over + +=item * + +A coderef is now acceptable for C<CHECK>! + +=item * + +3 new characters added to the ISO-8859-7 encoding + +=item * + +New encoding C<MIME-Header-ISO_2022_JP> added + +=item * + +Problem with partial characters and C<< encoding(utf-8-strict) >> fixed. + +=item * + +Documentation enhancements and typo fixes + +=back + +=item * + +C<English> upgraded to version 1.02 + +=over + +=item * + +the C<< $COMPILING >> variable has been added + +=back + +=item * + +C<ExtUtils::Constant> upgraded to version 0.17 + +=over + +=item * + +Improved compatibility with older versions of perl + +=back + +=item * + +C<ExtUtils::MakeMaker> upgraded to version 6.30 (was 6.17) + +=over + +=item * + +Too much to list here; see L<http://search.cpan.org/src/MSCHWERN/ExtUtils-MakeMaker-6.30/Changes> + +=back + +=item * + +C<File::Basename> upgraded to version 2.74, with changes contributed by Michael Schwern. + +=over + +=item * + +Documentation clarified and errors corrected. + +=item * + +C<basename> now strips trailing path separators before processing the name. + +=item * + +C<basename> now returns C</> for parameter C</>, to make C<basename> +consistent with the shell utility of the same name. + +=item * + +The suffix is no longer stripped if it is identical to the remaining characters +in the name, again for consistency with the shell utility. + +=item * + +Some internal code cleanup. + +=back + +=item * + +C<File::Copy> upgraded to version 2.09 + +=over + +=item * + +Copying a file onto itself used to fail. + +=item * + +Moving a file between file systems now preserves the access and +modification time stamps + +=back + +=item * + +C<File::Find> upgraded to version 1.10 + +=over + +=item * + +Win32 portability fixes + +=item * + +Enhanced documentation + +=back + +=item * + +C<File::Glob> upgraded to version 1.05 + +=over + +=item * + +Internal cleanup + +=back + +=item * + +C<File::Path> upgraded to version 1.08 + +=over + +=item * + +C<mkpath> now preserves C<errno> when C<mkdir> fails + +=back + +=item * + +C<File::Spec> upgraded to version 3.12 + +=over + +=item * + +C<File::Spec->rootdir()> now returns C<\> on Win32, instead of C</> + +=item * + +C<$^O> could sometimes become tainted. This has been fixed. + +=item * + +C<canonpath> on Win32 now collapses C<foo/..> (or C<foo\..>) sections +correctly, rather than doing the "misguided" work it was previously doing. +Note that C<canonpath> on Unix still does B<not> collapse these sections, as +doing so would be incorrect. + +=item * + +Some documentation improvements + +=item * + +Some internal code cleanup + +=back + +=item * + +C<FileCache> upgraded to version 1.06 + +=over + +=item * + +POD formatting errors in the documentation fixed + +=back + +=item * + +C<Filter::Simple> upgraded to version 0.82 + +=item * + +C<FindBin> upgraded to version 1.47 + +=over + +=item * + +Now works better with directories where access rights are more +restrictive than usual. + +=back + +=item * + +C<GDBM_File> upgraded to version 1.08 + +=over + +=item * + +Internal cleanup + +=back + +=item * + +C<Getopt::Long> upgraded to version 2.35 + +=over + +=item * + +C<prefix_pattern> has now been complemented by a new configuration +option C<long_prefix_pattern> that allows the user to specify what +prefix patterns should have long option style semantics applied. + +=item * + +Options can now take multiple values at once (experimental) + +=item * + +Various bug fixes + +=back + +=item * + +C<if> upgraded to version 0.05 + +=over + +=item * + +Give more meaningful error messages from C<if> when invoked with a +condition in list context. + +=item * + +Restore backwards compatibility with earlier versions of perl + +=back + +=item * + +C<IO> upgraded to version 1.22 + +=over + +=item * + +Enhanced documentation + +=item * + +Internal cleanup + +=back + +=item * + +C<IPC::Open2> upgraded to version 1.02 + +=over + +=item * + +Enhanced documentation + +=back + +=item * + +C<IPC::Open3> upgraded to version 1.02 + +=over + +=item * + +Enhanced documentation + +=back + +=item * + +C<List::Util> upgraded to version 1.18 (was 1.14) + +=over + +=item * + +Fix pure-perl version of C<refaddr> to avoid blessing an un-blessed reference + +=item * + +Use C<XSLoader> for faster loading + +=item * + +Fixed various memory leaks + +=item * + +Internal cleanup and portability fixes + +=back + +=item * + +C<Math::Complex> upgraded to version 1.35 + +=over + +=item * + +C<atan2(0, i)> now works, as do all the (computable) complex argument cases + +=item * + +Fixes for certain bugs in C<make> and C<emake> + +=item * + +Support returning the I<k>th root directly + +=item * + +Support C<[2,-3pi/8]> in C<emake> + +=item * + +Support C<inf> for C<make>/C<emake> + +=item * + +Document C<make>/C<emake> more visibly + +=back + +=item * + +C<Math::Trig> upgraded to version 1.03 + +=over + +=item * + +Add more great circle routines: C<great_circle_waypoint> and +C<great_circle_destination> + +=back + +=item * + +C<MIME::Base64> upgraded to version 3.07 + +=over + +=item * + +Use C<XSLoader> for faster loading + +=item * + +Enhanced documentation + +=item * + +Internal cleanup + +=back + +=item * + +C<NDBM_File> upgraded to version 1.06 + +=over + +=item * + +Enhanced documentation + +=back + +=item * + +C<ODBM_File> upgraded to version 1.06 + +=over + +=item * + +Documentation typo fixed + +=item * + +Internal cleanup + +=back + +=item * + +C<Opcode> upgraded to version 1.06 + +=over + +=item * + +Enhanced documentation + +=item * + +Internal cleanup + +=back + +=item * + +C<open> upgraded to version 1.05 + +=over + +=item * + +Enhanced documentation + +=back + +=item * + +C<overload> upgraded to version 1.04 + +=over + +=item * + +Enhanced documentation + +=back + +=item * + +C<PerlIO> upgraded to version 1.04 + +=over + +=item * + +C<PerlIO::via> iterate over layers properly now + +=item * + +C<PerlIO::scalar> understands C<< $/ = "" >> now + +=item * + +C<encoding(utf-8-strict)> with partial characters now works + +=item * + +Enhanced documentation + +=item * + +Internal cleanup + +=back + +=item * + +C<Pod::Functions> upgraded to version 1.03 + +=over + +=item * + +Documentation typos fixed + +=back + +=item * + +C<Pod::Html> upgraded to version 1.0504 + +=over + +=item * + +HTML output will now correctly link +to C<=item>s on the same page, and should be valid XHTML. + +=item * + +Variable names are recognized as intended + +=item * + +Documentation typos fixed + +=back + +=item * + +C<Pod::Parser> upgraded to version 1.32 + +=over + +=item * + +Allow files that start with C<=head> on the first line + +=item * + +Win32 portability fix + +=item * + +Exit status of C<pod2usage> fixed + +=item * + +New C<-noperldoc> switch for C<pod2usage> + +=item * + +Arbitrary URL schemes now allowed + +=item * + +Documentation typos fixed + +=back + +=item * + +C<POSIX> upgraded to version 1.09 + +=over + +=item * + +Documentation typos fixed + +=item * + +Internal cleanup + +=back + +=item * + +C<re> upgraded to version 0.05 + +=over + +=item * + +Documentation typo fixed + +=back + +=item * + +C<Safe> upgraded to version 2.12 + +=over + +=item * + +Minor documentation enhancement + +=back + +=item * + +C<SDBM_File> upgraded to version 1.05 + +=over + +=item * + +Documentation typo fixed + +=item * + +Internal cleanup + +=back + +=item * + +C<Socket> upgraded to version 1.78 + +=over + +=item * + +Internal cleanup + +=back + +=item * + +C<Storable> upgraded to version 2.15 + +=over + +=item * + +This includes the C<STORABLE_attach> hook functionality added by +Adam Kennedy, and more frugal memory requirements when storing under C<ithreads>, by +using the C<ithreads> cloning tracking code. + +=back + +=item * + +C<Switch> upgraded to version 2.10_01 + +=over + +=item * + +Documentation typos fixed + +=back + +=item * + +C<Sys::Syslog> upgraded to version 0.13 + +=over + +=item * + +Now provides numeric macros and meaningful C<Exporter> tags. + +=item * + +No longer uses C<Sys::Hostname> as it may provide useless values in +unconfigured network environments, so instead uses C<INADDR_LOOPBACK> directly. + +=item * + +C<syslog()> now uses local timestamp. + +=item * + +C<setlogmask()> now behaves like its C counterpart. + +=item * + +C<setlogsock()> will now C<croak()> as documented. + +=item * + +Improved error and warnings messages. + +=item * + +Improved documentation. + +=back + +=item * + +C<Term::ANSIColor> upgraded to version 1.10 + +=over + +=item * + +Fixes a bug in C<colored> when C<$EACHLINE> is set that caused it to not color +lines consisting solely of 0 (literal zero). + +=item * + +Improved tests. + +=back + +=item * + +C<Term::ReadLine> upgraded to version 1.02 + +=over + +=item * + +Documentation tweaks + +=back + +=item * + +C<Test::Harness> upgraded to version 2.56 (was 2.48) + +=over + +=item * + +The C<Test::Harness> timer is now off by default. + +=item * + +Now shows elapsed time in milliseconds. + +=item * + +Various bug fixes + +=back + +=item * + +C<Test::Simple> upgraded to version 0.62 (was 0.54) + +=over + +=item * + +C<is_deeply()> no longer fails to work for many cases + +=item * + +Various minor bug fixes + +=item * + +Documentation enhancements + +=back + +=item * + +C<Text::Tabs> upgraded to version 2005.0824 + +=over + +=item * + +Provides a faster implementation of C<expand> + +=back + +=item * + +C<Text::Wrap> upgraded to version 2005.082401 + +=over + +=item * + +Adds C<$Text::Wrap::separator2>, which allows you to preserve existing newlines +but add line-breaks with some other string. + +=back + +=item * + +C<threads> upgraded to version 1.07 + +=over + +=item * + +C<threads> will now honour C<no warnings 'threads'> + +=item * + +A thread's interpreter is now freed after C<< $t->join() >> rather than after +C<undef $t>, which should fix some C<ithreads> memory leaks. (Fixed by Dave +Mitchell) + +=item * + +Some documentation typo fixes. + +=back + +=item * + +C<threads::shared> upgraded to version 0.94 + +=over + +=item * + +Documentation changes only + +=item * + +Note: An improved implementation of C<threads::shared> is available on +CPAN - this will be merged into 5.8.9 if it proves stable. + +=back + +=item * + +C<Tie::Hash> upgraded to version 1.02 + +=over + +=item * + +Documentation typo fixed + +=back + +=item * + +C<Time::HiRes> upgraded to version 1.86 (was 1.66) + +=over + +=item * + +C<clock_nanosleep()> and C<clock()> functions added + +=item * + +Support for the POSIX C<clock_gettime()> and C<clock_getres()> has been added + +=item * + +Return C<undef> or an empty list if the C C<gettimeofday()> function fails + +=item * + +Improved C<nanosleep> detection + +=item * + +Internal cleanup + +=item * + +Enhanced documentation + +=back + +=item * + +C<Unicode::Collate> upgraded to version 0.52 + +=over + +=item * + +Now implements UCA Revision 14 (based on Unicode 4.1.0). + +=item * + +C<Unicode::Collate->new> method no longer overwrites user's C<$_> + +=item * + +Enhanced documentation + +=back + +=item * + +C<Unicode::UCD> upgraded to version 0.24 + +=over + +=item * + +Documentation typos fixed + +=back + +=item * + +C<User::grent> upgraded to version 1.01 + +=over + +=item * + +Documentation typo fixed + +=back + +=item * + +C<utf8> upgraded to version 1.06 + +=over + +=item * + +Documentation typos fixed + +=back + +=item * + +C<vmsish> upgraded to version 1.02 + +=over + +=item * + +Documentation typos fixed + +=back + +=item * + +C<warnings> upgraded to version 1.05 + +=over + +=item * + +Gentler messing with C<Carp::> internals + +=item * + +Internal cleanup + +=item * + +Documentation update + +=back + +=item * + +C<Win32> upgraded to version 0.2601 + +=for cynics And how many perl 5.8.x versions can I release ahead of Vista? + +=over + +=item * + +Provides Windows Vista support to C<Win32::GetOSName> + +=item * + +Documentation enhancements + +=back + +=item * + +C<XS::Typemap> upgraded to version 0.02 + +=over + +=item * + +Internal cleanup + +=back + +=back + +=head1 Utility Changes + +=head2 C<h2xs> enhancements + +C<h2xs> implements new option C<--use-xsloader> to force use of +C<XSLoader> even in backwards compatible modules. + +The handling of authors' names that had apostrophes has been fixed. + +Any enums with negative values are now skipped. + +=head2 C<perlivp> enhancements + +C<perlivp> implements new option C<-a> and will not check for F<*.ph> +files by default any more. Use the C<-a> option to run I<all> tests. + +=head1 New Documentation + +The L<perlglossary> manpage is a glossary of terms used in the Perl +documentation, technical and otherwise, kindly provided by O'Reilly Media, +inc. + +=head1 Performance Enhancements + +=over 4 + +=item * + +Weak reference creation is now I<O(1)> rather than I<O(n)>, courtesy of +Nicholas Clark. Weak reference deletion remains I<O(n)>, but if deletion only +happens at program exit, it may be skipped completely. + +=item * + +Salvador Fandiņo provided improvements to reduce the memory usage of C<sort> +and to speed up some cases. + +=item * + +Jarkko Hietaniemi and Andy Lester worked to mark as much data as possible in +the C source files as C<static>, to increase the proportion of the executable +file that the operating system can share between process, and thus reduce +real memory usage on multi-user systems. + +=back + +=head1 Installation and Configuration Improvements + +Parallel makes should work properly now, although there may still be problems +if C<make test> is instructed to run in parallel. + +Building with Borland's compilers on Win32 should work more smoothly. In +particular Steve Hay has worked to side step many warnings emitted by their +compilers and at least one C compiler internal error. + +C<Configure> will now detect C<clearenv> and C<unsetenv>, thanks to a patch +from Alan Burlison. It will also probe for C<futimes> and whether C<sprintf> +correctly returns the length of the formatted string, which will both be used +in perl 5.8.9. + +There are improved hints for next-3.0, vmesa, IX, Darwin, Solaris, Linux, +DEC/OSF, HP-UX and MPE/iX + +Perl extensions on Windows now can be statically built into the Perl DLL, +thanks to a work by Vadim Konovalov. (This improvement was actually in 5.8.7, +but was accidentally omitted from L<perl587delta>). + +=head1 Selected Bug Fixes + +=head2 no warnings 'category' works correctly with -w + +Previously when running with warnings enabled globally via C<-w>, selective +disabling of specific warning categories would actually turn off all warnings. +This is now fixed; now C<no warnings 'io';> will only turn off warnings in the +C<io> class. Previously it would erroneously turn off all warnings. + +This bug fix may cause some programs to start correctly issuing warnings. + +=head2 Remove over-optimisation + +Perl 5.8.4 introduced a change so that assignments of C<undef> to a +scalar, or of an empty list to an array or a hash, were optimised away. As +this could cause problems when C<goto> jumps were involved, this change +has been backed out. + +=head2 sprintf() fixes + +Using the sprintf() function with some formats could lead to a buffer +overflow in some specific cases. This has been fixed, along with several +other bugs, notably in bounds checking. + +In related fixes, it was possible for badly written code that did not follow +the documentation of C<Sys::Syslog> to have formatting vulnerabilities. +C<Sys::Syslog> has been changed to protect people from poor quality third +party code. + +=head2 Debugger and Unicode slowdown + +It had been reported that running under perl's debugger when processing +Unicode data could cause unexpectedly large slowdowns. The most likely cause +of this was identified and fixed by Nicholas Clark. + +=head2 Smaller fixes + +=over 4 + +=item * + +C<FindBin> now works better with directories where access rights are more +restrictive than usual. + +=item * + +Several memory leaks in ithreads were closed. An improved implementation of +C<threads::shared> is available on CPAN - this will be merged into 5.8.9 if +it proves stable. + +=item * + +Trailing spaces are now trimmed from C<$!> and C<$^E>. + +=item * + +Operations that require perl to read a process' list of groups, such as reads +of C<$(> and C<$)>, now dynamically allocate memory rather than using a +fixed sized array. The fixed size array could cause C stack exhaustion on +systems configured to use large numbers of groups. + +=item * + +C<PerlIO::scalar> now works better with non-default C<$/> settings. + +=item * + +You can now use the C<x> operator to repeat a C<qw//> list. This used +to raise a syntax error. + +=item * + +The debugger now traces correctly execution in eval("")uated code that +contains #line directives. + +=item * + +The value of the C<open> pragma is no longer ignored for three-argument +opens. + +=item * + +The optimisation of C<for (reverse @a)> introduced in perl 5.8.6 could +misbehave when the array had undefined elements and was used in LVALUE +context. Dave Mitchell provided a fix. + +=item * + +Some case insensitive matches between UTF-8 encoded data and 8 bit regexps, +and vice versa, could give malformed character warnings. These have been +fixed by Dave Mitchell and Yves Orton. + +=item * + +C<lcfirst> and C<ucfirst> could corrupt the string for certain cases where +the length UTF-8 encoding of the string in lower case, upper case or title +case differed. This was fixed by Nicholas Clark. + +=item * + +Perl will now use the C library calls C<unsetenv> and C<clearenv> if present +to delete keys from C<%ENV> and delete C<%ENV> entirely, thanks to a patch +from Alan Burlison. + +=back + +=head1 New or Changed Diagnostics + +=head2 Attempt to set length of freed array + +This is a new warning, produced in situations such as this: + + $r = do {my @a; \$#a}; + $$r = 503; + +=head2 Non-string passed as bitmask + +This is a new warning, produced when number has been passed as a argument to +select(), instead of a bitmask. + + # Wrong, will now warn + $rin = fileno(STDIN); + ($nfound,$timeleft) = select($rout=$rin, undef, undef, $timeout); + + # Should be + $rin = ''; + vec($rin,fileno(STDIN),1) = 1; + ($nfound,$timeleft) = select($rout=$rin, undef, undef, $timeout); + +=head2 Search pattern not terminated or ternary operator parsed as search pattern + +This syntax error indicates that the lexer couldn't find the final +delimiter of a C<?PATTERN?> construct. Mentioning the ternary operator in +this error message makes it easier to diagnose syntax errors. + +=head1 Changed Internals + +There has been a fair amount of refactoring of the C<C> source code, partly to +make it tidier and more maintainable. The resulting object code and the +C<perl> binary may well be smaller than 5.8.7, in particular due to a change +contributed by Dave Mitchell which reworked the warnings code to be +significantly smaller. Apart from being smaller and possibly faster, there +should be no user-detectable changes. + +Andy Lester supplied many improvements to determine which function +parameters and local variables could actually be declared C<const> to the C +compiler. Steve Peters provided new C<*_set> macros and reworked the core to +use these rather than assigning to macros in LVALUE context. + +Dave Mitchell improved the lexer debugging output under C<-DT> + +Nicholas Clark changed the string buffer allocation so that it is now rounded +up to the next multiple of 4 (or 8 on platforms with 64 bit pointers). This +should reduce the number of calls to C<realloc> without actually using any +extra memory. + +The C<HV>'s array of C<HE*>s is now allocated at the correct (minimal) size, +thanks to another change by Nicholas Clark. Compile with +C<-DPERL_USE_LARGE_HV_ALLOC> to use the old, sloppier, default. + +For XS or embedding debugging purposes, if perl is compiled with +C<-DDEBUG_LEAKING_SCALARS_FORK_DUMP> in addition to +C<-DDEBUG_LEAKING_SCALARS> then a child process is C<fork>ed just before +global destruction, which is used to display the values of any scalars +found to have leaked at the end of global destruction. Without this, the +scalars have already been freed sufficiently at the point of detection that +it is impossible to produce any meaningful dump of their contents. This +feature was implemented by the indefatigable Nicholas Clark, based on an idea +by Mike Giroux. + +=head1 Platform Specific Problems + +The optimiser on HP-UX 11.23 (Itanium 2) is currently partly disabled (scaled +down to +O1) when using HP C-ANSI-C; the cause of problems at higher +optimisation levels is still unclear. + +There are a handful of remaining test failures on VMS, mostly due to +test fixes and minor module tweaks with too many dependencies to +integrate into this release from the development stream, where they have +all been corrected. The following is a list of expected failures with +the patch number of the fix where that is known: + + ext/Devel/PPPort/t/ppphtest.t #26913 + ext/List/Util/t/p_tainted.t #26912 + lib/ExtUtils/t/PL_FILES.t #26813 + lib/ExtUtils/t/basic.t #26813 + t/io/fs.t + t/op/cmp.t + +=head1 Reporting Bugs + +If you find what you think is a bug, you might check the articles +recently posted to the comp.lang.perl.misc newsgroup and the perl +bug database at http://bugs.perl.org. There may also be +information at http://www.perl.org, the Perl Home Page. + +If you believe you have an unreported bug, please run the B<perlbug> +program included with your release. Be sure to trim your bug down +to a tiny but sufficient test case. Your bug report, along with the +output of C<perl -V>, will be sent off to perlbug@perl.org to be +analysed by the Perl porting team. You can browse and search +the Perl 5 bugs at http://bugs.perl.org/ + +=head1 SEE ALSO + +The F<Changes> file for exhaustive details on what changed. + +The F<INSTALL> file for how to build Perl. + +The F<README> file for general stuff. + +The F<Artistic> and F<Copying> files for copyright information. + +=cut |