From: Rafael Garcia-Suarez Date: Mon, 14 Aug 2006 21:58:15 +0000 (+0000) Subject: More perldelta entries and fixes X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=b7d9123412a4aeaae645a882cd38b483d2796744;p=p5sagit%2Fp5-mst-13.2.git More perldelta entries and fixes p4raw-id: //depot/perl@28717 --- diff --git a/pod/perl594delta.pod b/pod/perl594delta.pod index 77a111e..ff28abd 100644 --- a/pod/perl594delta.pod +++ b/pod/perl594delta.pod @@ -18,7 +18,7 @@ Earlier releases interpreted the bareword as a directory name. =head2 Handling of pmc files -And old feature of perl is that before C or C look for a +An old feature of perl was that before C or C look for a file with a F<.pm> extension, they will first look for a similar filename with a F<.pmc> extension. If this file is found, it will be loaded in place of any potentially existing file ending in a F<.pm> extension. @@ -71,15 +71,47 @@ See L<< UNIVERSAL/"$obj->DOES( ROLE )" >>. 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. -(Nicholas Clark) +(Nicholas Clark, Dave Mitchell) + +=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 MAD + +MAD, which stands for I, is a +still-in-development work leading to a Perl 5 to Perl 6 convertor. To +enable it, it's necessary to pass the argument C<-Dmad> to Configure. The +obtained perl isn't binary compatible with a regular perl 5.9.4, and has +space and speed penalties; moreover not all regression tests still pass +with it. (Larry Wall, Nicholas Clark) =head1 Modules and Pragmata +=over 4 + +=item * + C is now a lexical pragma. (Although on older perls, which don't have support for lexical pragmas, it keeps its global behaviour.) (Audrey Tang) -C +=item * + +C is now a dual-life module, also available on CPAN. It has been +expanded in many ways. A kill() method is available for thread signalling. +One can get thread status, or the list of running or joinable threads. + +A new C<< threads->exit() >> method is used to exit from the application +(this is the default for the main thread) or from the current thread only +(this is the default for all other threads). On the other hand, the exit() +built-in now always causes the whole application to terminate. (Jerry +D. Hedden) + +=back =head2 New Core Modules @@ -98,8 +130,8 @@ C to build and install perl modules. =item * -C, by Jos Boumans, has been added. It's used to load -indistinctively modules and files. +C, by Jos Boumans, has been added. It provides a single +interface to load Perl modules and F<.pl> files. =item * @@ -171,20 +203,21 @@ explanations, or run to completion, which, since they were able to blow the stack before, will likely take a very long time to happen. If you were experiencing the occasional stack overflow (or segfault) and upgrade to discover that now perl apparently hangs instead, look for a degenerate -regex. +regex. (Dave Mitchell) =item Single char char-classes treated as literals -Classes of a single character are now treated the same as if the -character had been used as a literal, meaning that code that uses -char-classes as an escaping mechanism will see a speedup. +Classes of a single character are now treated the same as if the character +had been used as a literal, meaning that code that uses char-classes as an +escaping mechanism will see a speedup. (Yves Orton) =item Trie optimisation of literal string alternations Alternations, where possible, are optimised into more efficient matching structures. String literal alternations are merged into a trie and are matched simultaneously. This means that instead of O(N) time for matching -N alternations at a given point the new code performs in O(1) time. +N alternations at a given point the new code performs in O(1) time. (Yves +Orton) B Much code exists that works around perl's historic poor performance on alternations. Often the tricks used to do so will disable @@ -196,7 +229,7 @@ released. When a pattern starts with a trie-able alternation and there aren't better optimisations available the regex engine will use Aho-Corasick -matching to find the start point. +matching to find the start point. (Yves Orton) =back @@ -204,7 +237,16 @@ matching to find the start point. =head2 Relocatable installations -TODO +There is now Configure support for creating a relocatable perl tree. If +you Configure with C<-Duserelocatableinc>, then the paths in @INC (and +everything else in %Config) can be optionally located via the path of the +perl executable. + +That means that, if the string C<".../"> is found at the start of any +path, it's substituted with the directory of $^X. So, the relocation can +be configured on a per-directory basis, although the default with +C<-Duserelocatableinc> is that everything is relocated. The initial +install is done to the original configured prefix. =head2 Ports @@ -267,13 +309,16 @@ the perl core, but that remain around because modules out there might still use them. They come from a factorization effort: for example, many PP functions are now shared for several ops. +The implementation of the special variables $^H and %^H has changed, to +allow implementing lexical pragmas in pure perl. + =head1 Known Problems One warning test (number 263 in F) fails under UTF-8 locales. -Bytecode tests fails under several platforms. Support for byteloader and -compiler is considered to be removed before the 5.10.0 release. +Bytecode tests fails under several platforms. We are considering removing +support for byteloader and compiler before the 5.10.0 release. =head2 Platform-specific Problems