diff options
author | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2007-10-22 08:32:46 +0000 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2007-10-22 08:32:46 +0000 |
commit | f0e260b8c240ed66604d3cecfcae2cb770b02e66 (patch) | |
tree | 64a056aa3f1628fd296cae6c2d431f2eaae7055e | |
parent | 4efa5a16764cb3324df705f9698e0a426a289960 (diff) | |
download | perl-f0e260b8c240ed66604d3cecfcae2cb770b02e66.tar.gz |
More delta info from Perl 5.9.5
p4raw-id: //depot/perl@32158
-rw-r--r-- | pod/perl5100delta.pod | 273 |
1 files changed, 256 insertions, 17 deletions
diff --git a/pod/perl5100delta.pod b/pod/perl5100delta.pod index d33f189cee..7d9dacf0c0 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<sort> pragma - -The C<sort> pragma is now lexically scoped. Its effect used to be global. - -=head2 Scoping of C<bignum>, C<bigint>, C<bigrat> - -The three numeric pragmas C<bignum>, C<bigint> and C<bigrat> 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-E<gt>isa($bar)> lookup. =head1 Modules and Pragmata +=head2 Pragmata Changes + +=over 4 + +=item C<feature> + +The new pragma C<feature> is used to enable new features that might break +old code. See L</"The C<feature> pragma"> above. + +=item C<mro> + +This new pragma enables to change the algorithm used to resolve inherited +methods. See L</"New Pragma, C<mro>"> above. + +=item Scoping of the C<sort> pragma + +The C<sort> pragma is now lexically scoped. Its effect used to be global. + +=item Scoping of C<bignum>, C<bigint>, C<bigrat> + +The three numeric pragmas C<bignum>, C<bigint> and C<bigrat> are now +lexically scoped. (Tels) + +=item C<base> + +The C<base> pragma now warns if a class tries to inherit from itself. +(Curtis "Ovid" Poe) + +=item C<strict> and C<warnings> + +C<strict> and C<warnings> will now complain loudly if they are loaded via +incorrect casing (as in C<use Strict;>). (Johan Vromans) + +=item C<warnings> + +The C<warnings> pragma doesn't load C<Carp> anymore. That means that code +that used C<Carp> 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<less> + +C<less> 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<less> for more. (Joshua ben +Jore) + +=back + =head2 New modules =over 4 @@ -677,6 +722,95 @@ C<Win32API::File>, 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<Locale::Maketext::Simple>, needed by CPANPLUS, is a simple wrapper around +C<Locale::Maketext::Lexicon>. Note that C<Locale::Maketext::Lexicon> isn't +included in the perl core; the behaviour of C<Locale::Maketext::Simple> +gracefully degrades when the later isn't present. + +=item * + +C<Params::Check> implements a generic input parsing/checking mechanism. It +is used by CPANPLUS. + +=item * + +C<Term::UI> simplifies the task to ask questions at a terminal prompt. + +=item * + +C<Object::Accessor> provides an interface to create per-object accessors. + +=item * + +C<Module::Pluggable> is a simple framework to create modules that accept +pluggable sub-modules. + +=item * + +C<Module::Load::Conditional> provides simple ways to query and possibly +load installed modules. + +=item * + +C<Time::Piece> provides an object oriented interface to time functions, +overriding the built-ins localtime() and gmtime(). + +=item * + +C<IPC::Cmd> helps to find and run external commands, possibly +interactively. + +=item * + +C<File::Fetch> provide a simple generic file fetching mechanism. + +=item * + +C<Log::Message> and C<Log::Message::Simple> are used by the log facility +of C<CPANPLUS>. + +=item * + +C<Archive::Extract> is a generic archive extraction mechanism +for F<.tar> (plain, gziped or bzipped) or F<.zip> files. + +=item * + +C<CPANPLUS> provides an API and a command-line tool to access the CPAN +mirrors. + +=back + +=head2 Selected Changes to Core Modules + +=over 4 + +=item C<Attribute::Handlers> + +C<Attribute::Handlers> can now report the caller's file and line number. +(David Feldman) + +=item C<B::Lint> + +C<B::Lint> is now based on C<Module::Pluggable>, and so can be extended +with plugins. (Joshua ben Jore) + +=item C<B> + +It's now possible to access the lexical pragma hints (C<%^H>) by using the +method B::COP::hints_hash(). It returns a C<B::RHE> object, which in turn +can be used to get a hash reference via the method B::RHE::HASH(). (Joshua +ben Jore) + +=item C<Thread> + +As the old 5005thread threading model has been removed, in favor of the +ithreads scheme, the C<Thread> 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<cpanp> + +C<cpanp>, the CPANPLUS shell, has been added. (C<cpanp-run-perl>, an +helper for CPANPLUS operation, has been added too, but isn't intended for +direct use). + +=head2 C<cpan2dist> + +C<cpan2dist> is a new utility, that comes with CPANPLUS. It's a tool to +create distributions (or packages) from CPAN modules. + +=head2 C<pod2html> + +The output of C<pod2html> 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<perlunitut> manpage is an tutorial for programming with Unicode and string encodings in Perl, courtesy of Juerd Waalboer. +A new manual page, L<perlunifaq> (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<d_pseudofork> and C<d_printf_format_null> + +A new configuration variable, available as C<$Config{d_pseudofork}> in +the L<Config> module, has been added, to distinguish real fork() support +from fake pseudofork used on Windows platforms. + +A new configuration variable, C<d_printf_format_null>, has been added, +to see if printf-like formats are allowed to be NULL. + +=item Configure help + +C<Configure -h> 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<perl-static.exe> that doesn't depend +on the Perl DLL on Win32. See the Win32 makefiles for details. +(Vadim Konovalov) =item pport.h files All F<ppport.h> 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<perlvms>. -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<PERLIO_DEBUG> 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<perlipc/"Deferred Signals (Safe Signals)">). (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<local $h{$x}; ++$x>). (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<perl -V> 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<B::> modules has changed; C<B::NV> now inherits from C<B::SV> (it used to inherit from C<B::IV>). +=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 |