X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/74bb26f25df7bfc57b10270ad96fb9c88eedde31..54e0f05ce4bb904f953dde352028f27b07cb1fdf:/pod/perl595delta.pod diff --git a/pod/perl595delta.pod b/pod/perl595delta.pod index 76ff668..246b2cc 100644 --- a/pod/perl595delta.pod +++ b/pod/perl595delta.pod @@ -1,6 +1,6 @@ =head1 NAME -perldelta - what is new for perl v5.9.5 +perl595delta - what is new for perl v5.9.5 =head1 DESCRIPTION @@ -35,6 +35,11 @@ anyway.) The regular expression construct C<(?p{})>, which was deprecated in perl 5.8, has been removed. Use C<(??{})> instead. (Rafael) +=head2 Pseudo-hashes have been removed + +Support for pseudo-hashes has been removed from Perl 5.9. (The C +pragma remains here, but uses an alternate implementation.) + =head2 Removal of the bytecode compiler and of perlcc C, the byteloader and the supporting modules (B::C, B::CC, @@ -52,6 +57,15 @@ B::Concise). The JPL (Java-Perl Linguo) has been removed from the perl sources tarball. +=head2 Recursive inheritance detected earlier + +Perl will now immediately throw an exception if you modify any package's +C<@ISA> in such a way that it would cause recursive inheritance. + +Previously, the exception would not occur until Perl attempted to make +use of the recursive inheritance while resolving a method or doing a +C<$foo-Eisa($bar)> lookup. + =head1 Core Enhancements =head2 Regular expressions @@ -163,6 +177,15 @@ that can now be converted to which is much more efficient. (Yves Orton) +=item Vertical and horizontal whitespace, and linebreak + +Regular expressions now recognize the C<\v> and C<\h> escapes, that match +vertical and horizontal whitespace, respectively. C<\V> and C<\H> +logically match their complements. + +C<\R> matches a generic linebreak, that is, vertical whitespace, plus +the multi-character sequence C<"\x0D\x0A">. + =back =head2 The C<_> prototype @@ -220,11 +243,69 @@ to, 5.9.5. A new pragma, C (for Method Resolution Order) has been added. It permits to switch, on a per-class basis, the algorithm that perl uses to -find inherited methods in case of a mutiple inheritance hierachy. The +find inherited methods in case of a multiple inheritance hierarchy. The default MRO hasn't changed (DFS, for Depth First Search). Another MRO is available: the C3 algorithm. See L for more information. (Brandon Black) +Note that, due to changes in the implementation of class hierarchy search, +code that used to undef the C<*ISA> glob will most probably break. Anyway, +undef'ing C<*ISA> had the side-effect of removing the magic on the @ISA +array and should not have been done in the first place. + +=head2 bignum, bigint, bigrat + +The three numeric pragmas C, C and C are now +lexically scoped. (Tels) + +=head2 Math::BigInt/Math::BigFloat + +Many bugs have been fixed; noteworthy are comparisons with NaN, which +no longer warn about undef values. + +The following things are new: + +=over 4 + +=item config() + +The config() method now also supports the calling-style +C<< config('lib') >> in addition to C<< config()->{'lib'} >>. + +=item import() + +Upon import, using C<< lib => 'Foo' >> now warns if the low-level library +cannot be found. To suppress the warning, you can use C<< try => 'Foo' >> +instead. To convert the warning into a die, use C<< only => 'Foo' >> +instead. + +=item roundmode common + +A rounding mode of C is now supported. + +=back + +Also, support for the following methods has been added: + +=over 4 + +=item bpi(), bcos(), bsin(), batan(), batan2() + +=item bmuladd() + +=item bexp(), bnok() + +=item from_hex(), from_oct(), and from_bin() + +=item as_oct() + +=back + +In addition, the default math-backend (Calc (Perl) and FastCalc (XS)) now +support storing numbers in parts with 9 digits instead of 7 on Perls with +either 64bit integer or long double support. This means math operations +scale better and are thus faster for really big numbers. + =head2 New Core Modules =over 4 @@ -275,6 +356,11 @@ C provide a simple generic file fetching mechanism. =item * +C and C are used by the log facility +of C. + +=item * + C is a generic archive extraction mechanism for F<.tar> (plain, gziped or bzipped) or F<.zip> files. @@ -289,6 +375,13 @@ mirrors. =over 4 +=item C + +The C pragma, its submodules C and +C and the B<-A> command-line switch have been removed. +The interface was not judged mature enough for inclusion in a stable +release. + =item C The C pragma now warns if a class tries to inherit from itself. @@ -337,6 +430,13 @@ ben Jore) =for p5p XXX document this in B.pm too +=item C + +As the old 5005thread threading model has been removed, in favor of the +ithreads scheme, the C module is now a compatibility wrapper, to +be used in old code only. It has been removed from the default list of +dynamic extensions. + =back =head1 Utility Changes @@ -347,6 +447,11 @@ C, the CPANPLUS shell, has been added. (C, an helper for CPANPLUS operation, has been added too, but isn't intended for direct use). +=head2 C + +C is a new utility, that comes with CPANPLUS. It's a tool to +create distributions (or packages) from CPAN modules. + =head2 C The output of C has been enhanced to be more customizable via @@ -359,8 +464,6 @@ CSS. Some formatting problems were also corrected. (Jari Aalto) A new manual page, L (the Perl Unicode FAQ), has been added (Juerd Waalboer). -=head1 Performance Enhancements - =head1 Installation and Configuration Improvements =head2 C++ compatibility @@ -369,16 +472,48 @@ Efforts have been made to make perl and the core XS modules compilable with various C++ compilers (although the situation is not perfect with some of the compilers on some of the platforms tested.) +=head2 Visual C++ + +Perl now can be compiled with Microsoft Visual C++ 2005. + =head2 Static build on Win32 It's now possible to build a C that doesn't depend on C on Win32. See the Win32 makefiles for details. (Vadim Konovalov) +=head2 win32 builds + +All win32 builds (MS-Win, WinCE) have been merged and cleaned up. + +=head2 C and C + +A new configuration variable, available as C<$Config{d_pseudofork}> in +the L module, has been added, to distinguish real fork() support +from fake pseudofork used on Windows platforms. + +A new configuration variable, C, has been added, +to see if printf-like formats are allowed to be NULL. + +=head2 Help + +C has been extended with the most used option. + +Much less 'Whoa there' messages. + +=head2 64bit systems + +Better detection of 64bit(only) systems, and setting all the (library) +paths accordingly. + =head2 Ports Perl has been reported to work on MidnightBSD. +Support for Cray XT4 Catamount/Qk has been added. + +Vendor patches have been merged for RedHat and GenToo. + =head1 Selected Bug Fixes PerlIO::scalar will now prevent writing to read-only scalars. Moreover, @@ -403,6 +538,10 @@ up what categories of warnings are activated or not. (Rafael) Duping a filehandle which has the C<:utf8> PerlIO layer set will now properly carry that layer on the duped filehandle. (Rafael) +Localizing an hash element whose key was given as a variable didn't work +correctly if the variable was changed while the local() was in effect (as +in C). (Bo Lindbergh) + =head1 New or Changed Diagnostics =head2 Deprecations @@ -422,10 +561,6 @@ an hash/array when the op is flagged with OPf_SPECIAL (Nicholas Clark). =for p5p XXX new BIND SV type, #29544, #29642 -=head1 Known Problems - -=head2 Platform Specific Problems - =head1 Reporting Bugs If you find what you think is a bug, you might check the articles