From: Rafael Garcia-Suarez Date: Mon, 22 Oct 2007 08:32:46 +0000 (+0000) Subject: More delta info from Perl 5.9.5 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=f0e260b8c240ed66604d3cecfcae2cb770b02e66;p=p5sagit%2Fp5-mst-13.2.git More delta info from Perl 5.9.5 p4raw-id: //depot/perl@32158 --- diff --git a/pod/perl5100delta.pod b/pod/perl5100delta.pod index d33f189..7d9dacf 100644 --- a/pod/perl5100delta.pod +++ b/pod/perl5100delta.pod @@ -488,15 +488,6 @@ subroutine is defined. The C<:unique> attribute has been made a no-op, since its current implementation was fundamentally flawed and not threadsafe. -=head2 Scoping of the C pragma - -The C pragma is now lexically scoped. Its effect used to be global. - -=head2 Scoping of C, C, C - -The three numeric pragmas C, C and C are now -lexically scoped. (Tels) - =head2 Effect of pragmas in eval The compile-time value of the C<%^H> hint variable can now propagate into @@ -599,6 +590,60 @@ C<$foo-Eisa($bar)> lookup. =head1 Modules and Pragmata +=head2 Pragmata Changes + +=over 4 + +=item C + +The new pragma C is used to enable new features that might break +old code. See L pragma"> above. + +=item C + +This new pragma enables to change the algorithm used to resolve inherited +methods. See L"> above. + +=item Scoping of the C pragma + +The C pragma is now lexically scoped. Its effect used to be global. + +=item Scoping of C, C, C + +The three numeric pragmas C, C and C are now +lexically scoped. (Tels) + +=item C + +The C pragma now warns if a class tries to inherit from itself. +(Curtis "Ovid" Poe) + +=item C and C + +C and C will now complain loudly if they are loaded via +incorrect casing (as in C). (Johan Vromans) + +=item C + +The C pragma doesn't load C anymore. That means that code +that used C routines without having loaded it at compile time might +need to be adjusted; typically, the following (faulty) code won't work +anymore, and will require parentheses to be added after the function name: + + use warnings; + require Carp; + Carp::confess "argh"; + +=item C + +C now does something useful (or at least it tries to). In fact, it +has been turned into a lexical pragma. So, in your modules, you can now +test whether your users have requested to use less CPU, or less memory, +less magic, or maybe even less fat. See L for more. (Joshua ben +Jore) + +=back + =head2 New modules =over 4 @@ -677,6 +722,95 @@ C, by Tye McQueen, has been added (for Windows builds). This module provides low-level access to Win32 system API calls for files/dirs. +=item * + +C, needed by CPANPLUS, is a simple wrapper around +C. Note that C isn't +included in the perl core; the behaviour of C +gracefully degrades when the later isn't present. + +=item * + +C implements a generic input parsing/checking mechanism. It +is used by CPANPLUS. + +=item * + +C simplifies the task to ask questions at a terminal prompt. + +=item * + +C provides an interface to create per-object accessors. + +=item * + +C is a simple framework to create modules that accept +pluggable sub-modules. + +=item * + +C provides simple ways to query and possibly +load installed modules. + +=item * + +C provides an object oriented interface to time functions, +overriding the built-ins localtime() and gmtime(). + +=item * + +C helps to find and run external commands, possibly +interactively. + +=item * + +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. + +=item * + +C provides an API and a command-line tool to access the CPAN +mirrors. + +=back + +=head2 Selected Changes to Core Modules + +=over 4 + +=item C + +C can now report the caller's file and line number. +(David Feldman) + +=item C + +C is now based on C, and so can be extended +with plugins. (Joshua ben Jore) + +=item C + +It's now possible to access the lexical pragma hints (C<%^H>) by using the +method B::COP::hints_hash(). It returns a C object, which in turn +can be used to get a hash reference via the method B::RHE::HASH(). (Joshua +ben Jore) + +=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 @@ -750,6 +884,22 @@ that use Module::Build's framework of configurability (that is, C<*::ConfigData> modules that contain local configuration information for their parent modules.) +=head2 C + +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 +CSS. Some formatting problems were also corrected. (Jari Aalto) + =back =head1 New Documentation @@ -767,6 +917,9 @@ Perl regular expression engine. The L manpage is an tutorial for programming with Unicode and string encodings in Perl, courtesy of Juerd Waalboer. +A new manual page, L (the Perl Unicode FAQ), has been added +(Juerd Waalboer). + The long-existing feature of C regexps setting C<$_> and pos() is now documented. @@ -840,8 +993,6 @@ the link count and update attributes that may have been changed through hard links. Setting ${^WIN32_SLOPPY_STAT} to a true value speeds up stat() by not performing this operation. (Jan Dubois) -=back - =head2 Regular expressions optimisations =over 4 @@ -918,6 +1069,19 @@ available. When they are not available, perl's own version is used (from Russ Allbery's public domain implementation). Various places in the perl interpreter now use them. (Steve Peters) +=item 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. + +=item Configure help + +C has been extended with the most commonly used options. + =back =head2 Compilation improvements @@ -937,14 +1101,23 @@ compilers and at least one C compiler internal error. =item Static build on Windows -Perl extensions on Windows now can be statically built into the Perl DLL, -thanks to a work by Vadim Konovalov. +Perl extensions on Windows now can be statically built into the Perl DLL. + +Also, it's now possible to build a C that doesn't depend +on the Perl DLL on Win32. See the Win32 makefiles for details. +(Vadim Konovalov) =item pport.h files All F files in the XS modules bundled with perl are now autogenerated at build time. (Marcus Holland-Moritz) +=item C++ compatibility + +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.) + =item Building XS extensions on Windows Support for building XS extension modules with the free MinGW compiler has @@ -956,6 +1129,14 @@ VC++ compiler. (ActiveState) Support for building perl with Microsoft's 64-bit compiler has been improved. (ActiveState) +=item Visual C++ + +Perl now can be compiled with Microsoft Visual C++ 2005. + +=item Win32 builds + +All win32 builds (MS-Win, WinCE) have been merged and cleaned up. + =back =head2 Installation improvements @@ -977,14 +1158,15 @@ information. Many improvements have been made towards making Perl work correctly on z/OS. -Perl has been reported to work on DragonFlyBSD. +Perl has been reported to work on DragonFlyBSD and MidnightBSD. The VMS port has been improved. See L. -DynaLoader::dl_unload_file() now works on Windows. +Support for Cray XT4 Catamount/Qk has been added. -Portability of Perl on various recent compilers on Windows has been -improved (Borland C++, Visual C++ 7.0). +Vendor patches have been merged for RedHat and Gentoo. + +DynaLoader::dl_unload_file() now works on Windows. =head1 Selected Bug Fixes @@ -1078,6 +1260,46 @@ setuid scripts and for scripts run with B<-T>. Moreover, with a thread-enabled perl, using C could lead to an internal buffer overflow. This has been fixed. +=item PerlIO::scalar and read-only scalars + +PerlIO::scalar will now prevent writing to read-only scalars. Moreover, +seek() is now supported with PerlIO::scalar-based filehandles, the +underlying string being zero-filled as needed. (Rafael, Jarkko Hietaniemi) + +=item study() and UTF-8 + +study() never worked for UTF-8 strings, but could lead to false results. +It's now a no-op on UTF-8 data. (Yves Orton) + +=item Critical signals + +The signals SIGILL, SIGBUS and SIGSEGV are now always delivered in an +"unsafe" manner (contrary to other signals, that are deferred until the +perl interpreter reaches a reasonably stable state; see +L). (Rafael) + +=item @INC-hook fix + +When a module or a file is loaded through an @INC-hook, and when this hook +has set a filename entry in %INC, __FILE__ is now set for this module +accordingly to the contents of that %INC entry. (Rafael) + +=item C<-t> switch fix + +The C<-w> and C<-t> switches can now be used together without messing +up what categories of warnings are activated or not. (Rafael) + +=item Duping UTF-8 filehandles + +Duping a filehandle which has the C<:utf8> PerlIO layer set will now +properly carry that layer on the duped filehandle. (Rafael) + +=item Localisation of hash elements + +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) + =back =head1 New or Changed Diagnostics @@ -1128,6 +1350,13 @@ now gives a C<"our" variable %s redeclared> warning. These new warnings are now emitted when a dirhandle is used but is either closed or not really a dirhandle. +=item Opening dirhandle/filehandle %s also as a file/directory + +Two deprecation warnings have been added: (Rafael) + + Opening dirhandle %s also as a file + Opening filehandle %s also as a directory + =item perl -V C has several improvements, making it more useable from shell @@ -1206,6 +1435,16 @@ allow implementing lexical pragmas in pure perl. The inheritance hierarchy of C modules has changed; C now inherits from C (it used to inherit from C). +=head2 Anonymous hash and array constructors + +The anonymous hash and array constructors now take 1 op in the optree +instead of 3, now that pp_anonhash and pp_anonlist return a reference to +an hash/array when the op is flagged with OPf_SPECIAL (Nicholas Clark). + +=for p5p XXX have we some docs on how to create regexp engine plugins, since that's now possible ? (perlreguts) + +=for p5p XXX new BIND SV type, #29544, #29642 + =head1 New Tests =head1 Known Problems