From: David Mitchell Date: Tue, 12 May 2009 13:43:08 +0000 (+0100) Subject: add perl589delta.pod to blead X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=7214e7c31c99f51cf2858a0b68a932233248baf0;p=p5sagit%2Fp5-mst-13.2.git add perl589delta.pod to blead --- diff --git a/MANIFEST b/MANIFEST index e824679..c5972ce 100755 --- a/MANIFEST +++ b/MANIFEST @@ -3525,6 +3525,7 @@ pod/perl585delta.pod Perl changes in version 5.8.5 pod/perl586delta.pod Perl changes in version 5.8.6 pod/perl587delta.pod Perl changes in version 5.8.7 pod/perl588delta.pod Perl changes in version 5.8.8 +pod/perl589delta.pod Perl changes in version 5.8.9 pod/perl58delta.pod Perl changes in version 5.8.0 pod/perl590delta.pod Perl changes in version 5.9.0 pod/perl591delta.pod Perl changes in version 5.9.1 diff --git a/pod/perl589delta.pod b/pod/perl589delta.pod new file mode 100644 index 0000000..d4bafa1 --- /dev/null +++ b/pod/perl589delta.pod @@ -0,0 +1,2336 @@ +=head1 NAME + +perl589delta - what is new for perl v5.8.9 + +=head1 DESCRIPTION + +This document describes differences between the 5.8.8 release and +the 5.8.9 release. + +=head1 Notice + +The 5.8.9 release will be the last significant release of the 5.8.x +series. Any future releases of 5.8.x will likely only be to deal with +security issues, and platform build failures. Hence you should look to +migrating to 5.10.x, if you have not started already. +See L for more information. + +=head1 Incompatible Changes + +A particular construction in the source code of extensions written in C++ +may need changing. See L for more details. All +extensions written in C, most written in C++, and all existing compiled +extensions are unaffected. This was necessary to improve C++ support. + +Other than this, there are no changes intentionally incompatible with 5.8.8. +If any exist, they are bugs and reports are welcome. + +=head1 Core Enhancements + +=head2 Unicode Character Database 5.1.0. + +The copy of the Unicode Character Database included in Perl 5.8 has +been updated to 5.1.0 from 4.1.0. See +L for the +notable changes. + +=head2 stat and -X on directory handles + +It is now possible to call C and the C<-X> filestat operators on +directory handles. As both directory and file handles are barewords, there +can be ambiguities over which was intended. In these situations the file +handle semantics are preferred. Both also treat C<*FILE{IO}> filehandles +like C<*FILE> filehandles. + +=head2 Source filters in @INC + +It's possible to enhance the mechanism of subroutine hooks in @INC by +adding a source filter on top of the filehandle opened and returned by the +hook. This feature was planned a long time ago, but wasn't quite working +until now. See L for details. (Nicholas Clark) + +=head2 Exceptions in constant folding + +The constant folding routine is now wrapped in an exception handler, and +if folding throws an exception (such as attempting to evaluate 0/0), perl +now retains the current optree, rather than aborting the whole program. +Without this change, programs would not compile if they had expressions that +happened to generate exceptions, even though those expressions were in code +that could never be reached at runtime. (Nicholas Clark, Dave Mitchell) + +=head2 C + +You can now use C followed by a version number to specify that you +want to use a version of perl older than the specified one. + +=head2 Improved internal UTF-8 caching code + +The code that caches calculated UTF-8 byte offsets for character offsets for +a string has been re-written. Several bugs have been located and eliminated, +and the code now makes better use of the information it has, so should be +faster. In particular, it doesn't scan to the end of a string before +calculating an offset within the string, which should speed up some operations +on long strings. It is now possible to disable the caching code at run time, +to verify that it is not the cause of suspected problems. + +=head2 Runtime relocatable installations + +There is now F support for creating a perl tree that is relocatable +at run time. see L. + +=head2 New internal variables + +=over 4 + +=item C<${^CHILD_ERROR_NATIVE}> + +This variable gives the native status returned by the last pipe close, +backtick command, successful call to C or C, or from the +C operator. See L for details. (Contributed by Gisle Aas.) + +=item C<${^UTF8CACHE}> + +This variable controls the state of the internal UTF-8 offset caching code. +1 for on (the default), 0 for off, -1 to debug the caching code by checking +all its results against linear scans, and panicing on any discrepancy. + +=back + +=head2 C is now overridable + +The built-in function C is now overridable. Overriding it permits +also to override its operator counterpart, C (also known as C<``>). + +=head2 simple exception handling macros + +Perl 5.8.9 (and 5.10.0 onwards) now provides a couple of macros to do very +basic exception handling in XS modules. You can use these macros if you call +code that may C, but you need to do some cleanup before giving control +back to Perl. See L for more details. + +=head2 -D option enhancements + +=over + +=item * + +C<-Dq> suppresses the I message when running under C<-D> + +=item * + +C<-Dl> logs runops loop entry and exit, and jump level popping. + +=item * + +C<-Dv> displays the process id as part of the trace output. + +=back + +=head2 XS-assisted SWASHGET + +Some pure-perl code that the regexp engine was using to retrieve Unicode +properties and transliteration mappings has been reimplemented in XS +for faster execution. +(SADAHIRO Tomoyuki) + +=head2 Constant subroutines + +The interpreter internals now support a far more memory efficient form of +inlineable constants. Storing a reference to a constant value in a symbol +table is equivalent to a full typeglob referencing a constant subroutine, +but using about 400 bytes less memory. This proxy constant subroutine is +automatically upgraded to a real typeglob with subroutine if necessary. +The approach taken is analogous to the existing space optimisation for +subroutine stub declarations, which are stored as plain scalars in place +of the full typeglob. + +However, to aid backwards compatibility of existing code, which (wrongly) +does not expect anything other than typeglobs in symbol tables, nothing in +core uses this feature, other than the regression tests. + +Stubs for prototyped subroutines have been stored in symbol tables as plain +strings, and stubs for unprototyped subroutines as the number -1, since 5.005, +so code which assumes that the core only places typeglobs in symbol tables +has been making incorrect assumptions for over 10 years. + +=head1 New Platforms + +Compile support added for: + +=over + +=item * + +DragonFlyBSD + +=item * + +MidnightBSD + +=item * + +MirOS BSD + +=item * + +RISC OS + +=item * + +Cray XT4/Catamount + +=back + +=head1 Modules and Pragmata + +=head2 New Modules + +=over + +=item * + +C is a simple framework to create modules that accept +pluggable sub-modules. The bundled version is 3.8 + +=item * + +C is a hash of hashes that is keyed on perl version as +indicated in C<$]>. The bundled version is 2.17 + +=item * + +C now available in core on Microsoft Windows. The bundled +version is 0.1001_01 + +=item * + +C finds all the packages defined by a single file. It is +part of the C distribution. The bundled version is 0.3 + +=back + +=head2 Updated Modules + +=over + +=item * + +C upgraded to version 0.09 + +=item * + +C upgraded to version 5.67 + +=item * + +C upgraded to 1.06 + +=item * + +C upgraded to version 1.06 + +=item * + +C upgraded from 1.09_01 to 1.19 + +=over + +=item * + +provides new pad related abstraction macros C, +C, C, +C, which hides the difference in storage in +5.10.0 and later. + +=item * + +provides C, which exposes C + +=item * + +provides C, which on pre-5.10 perls always returns true. + +=item * + +New type C added with methods C, C and C + +=item * + +The C flag is now set correctly when a proxy +constant subroutine is imported. + +=item * + +bugs fixed in the handling of Cs. + +=item * + +C returns now C, not C. +C and C return now C on an XSUB, +C and C return 0 on a non-XSUB. + +=back + +=item * + +C upgraded to 1.05 + +=item * + +C upgraded to 0.76 + +=over + +=item * + +new option C<-src> causes the rendering of each statement (starting with +the nextstate OP) to be preceded by the first line of source code that +generates it. + +=item * + +new option C<-stash="somepackage">, Cs "somepackage", and then renders +each function defined in its namespace. + +=item * + +now has documentation of detailed hint symbols. + +=back + +=item * + +C upgraded to version 1.05 + +=item * + +C upgraded to version 0.87 + +=over 4 + +=item * + +properly deparse C. + +=item * + +now handles C<''->()>, C<::()>, C, I correctly [RT #43010]. +All bugs in parsing these kinds of syntax are now fixed: + + perl -MO=Deparse -e '"my %h = "->()' + perl -MO=Deparse -e '::->()' + perl -MO=Deparse -e 'sub :: {}' + perl -MO=Deparse -e 'package a; sub a::b::c {}' + perl -MO=Deparse -e 'sub the::main::road {}' + +=item * + +does B deparse C<$^H{v_string}>, which is automatically set by the +internals. + +=back + +=item * + +C upgraded to version 1.11 + +=item * + +C upgraded to version 1.05 + +=item * + +C upgraded to version 2.13 + +=over 4 + +=item * + +loading a module via base.pm would mask a global C<$SIG{__DIE__}> in that +module. + +=item * + +push all classes at once in C<@ISA> + +=back + +=item * + +C upgraded to version 1.10 + +=item * + +C upgraded to 0.23 + +=item * + +C upgraded to 0.23 + +=item * + +C upgraded to 0.23 + +=item * + +C upgraded to 0.04 + +=item * + +C upgraded to version 1.10 + +The argument backtrace code now shows C as C, +instead of a string I<"undef">. + +=item * + +C upgraded to version 3.42 + +=item * + +C upgraded to 1.06 + +=item * + +C upgraded to version 1.17 + +=item * + +C upgraded to version 1.9301 + +=item * + +C upgraded to version 3.29 with some platform specific +improvements (including for VMS). + +=item * + +C upgraded to version 2.121_17 + +=over + +=item * + +Fixes hash iterator current position with the pure Perl version [RT #40668] + +=item * + +Performance enhancements, which will be most evident on platforms where +repeated calls to C's C are slow, such as Win32. + +=back + +=item * + +C upgraded to version 1.817 + +=item * + +C upgraded to version 0.02 + +=item * + +C upgraded to version 20080331.00 + +=item * + +C upgraded to version 1.04 + +=item * + +C upgraded to version 3.14 + +=item * + +C upgraded to version 1.16 + +=item * + +C upgraded to version 1.15 + +=item * + +C upgraded to version 2.37 + +=item * + +C upgraded to version 1.02 + +=over + +=item * + +now localises C<$.>, C<$@>, C<$!>, C<$^E>, and C<$?> before closing the +directory handle to suppress leaking any side effects of warnings about it +already being closed. + +=back + +=item * + +C upgraded to version 1.09 + +C can now dynamically load a loadable object from a file with a +non-default file extension. + +=item * + +C upgraded to version 2.26 + +C includes a fix for encoding "646" on Solaris (better known as +ASCII). + +=item * + +C upgraded to version 1.03 + +=item * + +C upgraded to version 1.10 + +=item * + +C upgraded to version 5.63 + +=item * + +C upgraded to version 1.15 + +=item * + +C upgraded to version 0.21 + +=item * + +C upgraded to version 1.28 + +=item * + +C upgraded to version 1.50_01 + +=item * + +C upgraded to version 1.43 + +=item * + +C upgraded to version 6.48 + +=over + +=item * + +support for C and C +configuration. + +=back + +=item * + +C upgraded to version 1.55 + +=item * + +C upgraded to version 2.19 + +=item * + +C upgraded to version 1.06 + +=over + +=item * + +allows built-ins in C to be made fatal. + +=back + +=item * + +C upgraded to version 1.06 + +=item * + +C upgraded to version 2.12 + +=item * + +C upgraded to version 2.77 + +=item * + +C upgraded to version 1.07 + +=item * + +C upgraded to 1.1005 + +=item * + +C upgraded to 2.13 + +=over 4 + +=item * + +now uses 3-arg open. + +=back + +=item * + +C upgraded to 1.01 + +=item * + +C upgraded to version 1.13 + +=item * + +C upgraded to version 1.06 + +=over + +=item * + +fixes spurious results with brackets inside braces. + +=back + +=item * + +C upgraded to version 2.07_02 + +=item * + +C upgraded to version 3.29 + +=over 4 + +=item * + +improved handling of bad arguments. + +=item * + +some platform specific improvements (including for VMS and Cygwin), with +an optimisation on C when handling both relative arguments. + +=back + +=item * + +C upgraded to version 1.01 + +=item * + +C upgraded to version 0.20 + +=item * + +C upgraded to version 1.02 + +=item * + +C upgraded to version 1.07 + +=item * + +C upgraded to version 0.83 + +=item * + +C upgraded to version 1.49 + +=item * + +C upgraded to version 1.09 + +=item * + +C upgraded to version 2.37 + +=item * + +C upgraded to version 1.06 + +=item * + +C upgraded to version 0.06 + +=item * + +C upgraded to version 0.05 + +=item * + +C upgraded to version 1.23 + +Reduced number of calls to C in C + +=item * + +C upgraded to version 1.03 + +=item * + +C upgraded to version 1.03 + +=item * + +C upgraded to version 2.00 + +=item * + +C upgraded to version 0.61 + +=over + +=item * + +avoid warning about loading F<.par> files. + +=back + +=item * + +C upgraded to version 1.22 + +=item * + +C upgraded to 1.19 + +=item * + +C upgraded to 1.13 + +=item * + +C upgraded to version 1.60 + +=item * + +C upgraded to version 1.89 + +=item * + +C upgraded to version 0.22 + +=over 4 + +=item * + +implements new C method. + +=back + +=item * + +C upgraded to version 1.54. + +=item * + +C upgraded to version 1.18. + +=item * + +C upgraded to version 1.07 + +=over + +=item * + +improve F handling for systems using GDBM compatibility headers. + +=back + +=item * + +C upgraded to version 2.35 + +=item * + +C upgraded to version 0.61 + +=over + +=item * + +fix several bugs with C when working with C, C block, and +within overloaded stringification. + +=back + +=item * + +C upgraded to 1.07 + +=item * + +C upgraded to 1.06 + +=item * + +C upgraded to 1.02 + +=item * + +C upgraded to version 0.11 + +=item * + +C upgraded to version 0.06 + +=over 4 + +=item * + +[RT #40267] C doesn't respect readonly-ness. + +=back + +=item * + +C upgraded to version 0.05 + +=item * + +C upgraded to version 1.09 + +=item * + +C upgraded to version 1.35 + +=item * + +C upgraded to version 1.35 + +=item * + +C upgraded to version 1.15 + +=over + +=item * + +C constants that duplicate those in C are now imported from +C and re-exported, rather than being duplicated by C + +=item * + +C can remove empty directories. + +=item * + +C safer to call multiple times. + +=item * + +C added, which provides access to POSIX realtime signal +functionality on systems that support it. + +=back + +=item * + +C upgraded to version 0.06_01 + +=item * + +C upgraded to version 2.16 + +=item * + +C upgraded to 1.19 + +=item * + +C upgraded to version 1.06 + +=item * + +C upgraded to version 1.17 + +=item * + +C upgraded to version 0.72 + +=item * + +C upgraded to version 1.04 + +=item * + +C upgraded to version 1.81 + +=over + +=item * + +this fixes an optimistic use of C + +=back + +=item * + +C upgraded to 2.19 + +=item * + +C upgraded to version 2.13 + +=item * + +C upgraded to version 0.27 + +=item * + +C upgraded to version 1.12 + +=item * + +C upgraded to version 1.12 + +=item * + +C upgraded to version 1.03 + +=item * + +C upgraded to version 0.80 + +=item * + +C upgraded version to 2.64 + +=over + +=item * + +this makes it able to handle newlines. + +=back + +=item * + +C upgraded to version 0.80 + +=item * + +C upgraded to version 0.80 + +=item * + +C upgraded to version 1.98 + +=item * + +C upgraded to version 3.27 + +=item * + +C upgraded to version 3.03 + +=item * + +C upgraded to version 2007.1117 + +=item * + +C upgraded to version 2006.1117 + +=item * + +C upgraded to version 2.01 + +=item * + +C upgraded to version 2.09 + +=item * + +C upgraded to version 2.11 + +=over + +=item * + +added capability to add complex structures (e.g., hash of hashes) to queues. + +=item * + +added capability to dequeue multiple items at once. + +=item * + +added new methods to inspect and manipulate queues: C, C and +C + +=back + +=item * + +C upgraded to version 4.2 + +=item * + +C upgraded to version 1.03 + +=item * + +C upgraded to version 1.1 + +=over + +=item * + +C now correctly caches its results. + +=back + +=item * + +C upgraded to version 1.38 + +=item * + +C upgraded to version 1.01 + +=item * + +C upgraded to version 4.2 + +=item * + +C upgraded to version 1.03 + +=item * + +C upgraded to version 1.1901 + +=item * + +C upgraded to version 1.9715 with various build improvements +(including VMS) and minor platform-specific bug fixes (including +for HP-UX 11 ia64). + +=item * + +C upgraded to 1.71 + +=over + +=item * + +new thread state information methods: C, C +and C. C method enhanced to return running or joinable +threads. + +=item * + +new thread signal method: C + +=item * + +added capability to specify thread stack size. + +=item * + +added capability to control thread exiting behavior. Added a new C +method. + +=back + +=item * + +C upgraded to version 1.27 + +=over + +=item * + +smaller and faster implementation that eliminates one internal structure and +the consequent level of indirection. + +=item * + +user locks are now stored in a safer manner. + +=item * + +new function C creates a copy of an object leaving +shared elements as-is and deep-cloning non-shared elements. + +=item * + +added new C method. + +=back + +=item * + +C upgraded to version 1.02 + +=item * + +C upgraded to version 0.25 + +=item * + +C upgraded to version 1.05_01 + +=item * + +C upgraded to version 0.38 + +=over 4 + +=item * + +added new function C which returns the regular Windows +process identifier of the current process, even when called from within a fork. + +=back + +=item * + +C upgraded to version 0.10 + +=item * + +C and C are for internal use only and hence +no longer installed. Many more tests have been added to C. + +=back + +=head1 Utility Changes + +=head2 debugger upgraded to version 1.31 + +=over 4 + +=item * + +Andreas KEnig contributed two functions to save and load the debugger +history. + +=item * + +C no longer emits warnings under the debugger. + +=item * + +The debugger should now correctly find tty the device on OS X 10.5 and VMS +when the program Cs. + +=item * + +LVALUE subs now work inside the debugger. + +=back + +=head2 F + +Perl 5.8.9 adds a new utility F, which is a variant of F, +but for sending non-bug-reports to the authors and maintainers of Perl. +Getting nothing but bug reports can become a bit demoralising - we'll see if +this changes things. + +=head2 F + +F now checks if you're reporting about a non-core module and suggests +you report it to the CPAN author instead. + +=head2 F + +=over + +=item * + +won't define an empty string as a constant [RT #25366] + +=item * + +has examples for C + +=back + +=head2 F + +=over 4 + +=item * + +now attempts to deal sensibly with the difference in path implications +between C<""> and C<< EE >> quoting in C<#include> statements. + +=item * + +now generates correct correct code for C<#if defined A || defined B> +[RT #39130] + +=back + +=head1 New Documentation + +As usual, the documentation received its share of corrections, clarifications +and other nitfixes. More C<< X<...> >> tags were added for indexing. + +L is a tutorial written by Juerd Waalboer on Unicode-related +terminology and how to correctly handle Unicode in Perl scripts. + +L is updated in section user defined properties. + +L has been updated in the example of detecting data that is not +valid in particular encoding. + +L provides an overview of the Perl Community along with further +resources. + +L documents the pseudo-namespace for Perl's core routines. + +=head1 Changes to Existing Documentation + +L adds I and I. + +L has been updated and added resources on smoke testing. + +The Perl FAQs (F..F) have been updated. + +L is updated with better details on C<\w>, C<\d>, and C<\s>. + +L is updated with information on how to call the debugger. + +L documentation updated with I on the +argument to C and C and also several terminology updates on +warnings. + +L documents the limitation of C inside pseudo-processes. + +L: + +=over + +=item * + +Documentation is fixed in section C and C. + +=item * + +Function C now mentions C in preference +to C