For my OSC 2.0 talk/book chapter in addition to what's new in Apache/mod_perl, I've also added a section on what's new in Perl 5.6.0 - 5.8.0, only things that have had an impact on mod_perl 2.0. Can you please review if I've missed something or added something which is irrelevant to mod_perl 2.0. At the end this will make its way to the docs.
Also besides APR::PerlIO, are there any other things in mod_perl 2.0 that require 5.8.0? I don't recall anything else. =head1 What's new in Perl 5.6.0 - 5.8.0 As we have mentioned earlier Perl 5.6.0 is the minimum requirement for mod_perl 2.0. Though as we will see later certain new features work only with Perl 5.8.0 and higher. These are the important changes in the recent Perl versions that had an impact on mod_perl. For a complete list of changes see the corresponding to the used version I<perldelta> manpage. The 5.6 Perl generation has introduced the following features: =over =item * The beginnings of support for running multiple interpreters concurrently in different threads. In conjunction with the perl_clone() API call, which can be used to selectively duplicate the state of any given interpreter, it is possible to compile a piece of code once in an interpreter, clone that interpreter one or more times, and run all the resulting interpreters in distinct threads. See the I<perlembed> and I<perl561delta> manpages. =item * The core support for declaring subroutine attributes, which is used by mod_perl 2.0's I<method handlers>. See the I<attributes> manpage. =item * The I<warnings> pragma, which allows to force the code to be super clean, via the setting: use warnings FATAL => 'all'; which will abort any code that generates warnings. This pragma also allows a fine control over what warnings should be reported. See the I<perllexwarn> manpage. =item * Certain C<CORE::> functions now can be overriden via C<CORE::GLOBAL::> namespace. For example mod_perl now can override C<CORE::exit()> via C<CORE::GLOBAL::exit>. See the I<perlsub> manpage. =item * The C<XSLoader> extension as a simpler alternative to C<DynaLoader>. See the I<XSLoader> manpage. =item * The large file support. If you have filesystems that support "large files" (files larger than 2 gigabytes), you may now also be able to create and access them from Perl. See the I<perl561delta> manpage. =item * Multiple performance enhancements were made. See the I<perl561delta> manpage. =item * Numerous memory leaks were fixed. See the I<perl561delta> manpage. =item * Improved security features: more potentially unsafe operations taint their results for improved security. See the I<perlsec> and I<perl561delta> manpages. =item * Available on new platforms: GNU/Hurd, Rhapsody/Darwin, EPOC. =back Overall multiple bugs and problems very fixed in the Perl 5.6.1, so if you plan on running the 5.6 generation, you should run at least 5.6.1. It is possible that when this book is released 5.6.2 will be out. The Perl 5.8.0 has introduced the following features: =over =item * The introduced in 5.6.0 experimental PerlIO layer has been stabilized and become the default IO layer in 5.8.0. Now the IO stream can be filtered through multiple layers. See the I<perlapio> and I<perliol> manpages. For example this allows mod_perl to inter-operate with the APR IO layer and even use the APR IO layer in Perl code. See the I<APR::PerlIO> manpage. Another example of using the new feature is the extension of the open() functionality to create anonymous temporary files via: open my $fh, "+>", undef or die $!; That is a literal undef(), not an undefined value. See the open() entry in the I<perlfunc> manpage. =item * More overridable via C<CORE::GLOBAL::> keywords. See the I<perlsub> manpage. =item * The signal handling in Perl has been notoriously unsafe because signals have been able to arrive at inopportune moments leaving Perl in inconsistent state. Now Perl delays signal handling until it is safe. =item * C<File::Temp> was added to allow a creation of temporary files and directories in an easy, portable, and secure way. See the I<File::Temp> manpage. =item * A new command-line option, C<-t> is available. It is the little brother of C<-T>: instead of dying on taint violations, lexical warnings are given. This is only meant as a temporary debugging aid while securing the code of old legacy applications. B<This is not a substitute for C<-T>.> See the I<perlrun> manpage. A new special variable C<${^TAINT}> was introduced. It indicates whether taint mode is enabled. See the I<perlvar> manpage. =item * Threads implementation is much improved since 5.6. =item * A much better support for Unicode. =item * Numerous bugs and memory leaks fixed. For example now you can localize the tied C<Apache::DBI> filehandles without leaking memory. =item * Available on new platforms: AtheOS, Mac OS Classic, Mac OS X, MinGW, NCR MP-RAS, NonStop-UX, NetWare and UTS. The following platforms are again supported: BeOS, DYNIX/ptx, POSIX-BC, VM/ESA, z/OS (OS/390). =back __________________________________________________________________ Stas Bekman JAm_pH ------> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]