A new week, a new p5p summary. This week, the porters were busy with small bugs, compilation problems, and a few interesting new ideas. Read on.
Jarkko Hietaniemi introduced his new idea by saying I have a task for someone. The purpose is to speed up string handling functions (length(), substr(), index(), etc.) on Unicode strings. Various technical solutions (involving different types of caching) were proposed in the discussion, but nobody volunteered yet to begin experimentation and implementation.
Well, this is not strictly perl-core-related, but interesting nonetheless. Autrijus Tang reported that Module::Signature begins to be usable and deployed. This module allows to PGP-sign CPAN modules, via a special SIGNATURE file. http://search.cpan.org/ now lists the signature on the module information pages, and the development version of CPANPLUS recognizes it optionally.
Jerome Quelin wondered why
perl -Tle '$cmd="print q(foo)";$cmd.=".q(bar)" if pop; eval $cmd' foo
fails with an insecure dependency error (bug #17867), while it doesn't fail when the regular form of
if is used. Benjamin Goldberg explains that this construct is strictly equivalent to the expression
pop and ($cmd.=".q(bar)")
and an expression is tainted whenever one of its parts is tainted. Michael Schwern still thinks that's is a weird behavior, from a control modifier (tainting affects data, not control flow).
The newest version patches (by J. Peacock) made a new test failure appear (on ext/Storable/t/code.t). Apparently, when a module is required from XS code, using a bare floating point value as the required version, the usual rounding of floats may transform the required version in a higher version number -- hence the require() failure.
Slaven Rezic remarked that the new safe signals may cause problems, when one wants to timeout an operation that involves a C library function. Hence some code that used alarm() for this purpose may stop working with perl 5.8.0. (See also bug #17341.) But this code was fragile anyway, being at risk of the SIGALRM perl handler being called in a manner which could segfault.
Paul Johnson reported that the
for statement modifier, used inside a
map, segfaults (bug #17771). Fixed.
Nicholas Clark improved the error reporting and the documentation on
pack "w" (compressed integers) (bug #17772).
Nicholas Clark provided a few patches to Storable (version 2.06 should appear on CPAN in the near future.)
Simon Cozens provided a patch to perldoc, to remove the annoying message Superuser must not run perldoc without security audit and taint checks. Applied with a few tweaks by Hugo, who added : patches to make it run securely under tainting would also be welcome.
H.Merijn Brand reported that DB_File doesn't compile with db-4.1.24. He investigated the problem with Paul Marquess, but apparently it's not completely solved yet.
Dan Sugalski uploaded the helpful module
Devel::Size to CPAN, to find the memory usage of Perl variables.
Tommy Wareing reported that the precompiled regular expression
qr/##/x corrupts memory (bug #17776). Fixed.
Nicholas Clark reported that
tr/// stringifies its argument, even when it's used to count occurrences of a character (bug #17823). Fixed.
Brian Ingerson reported that
$/ is not initialized at compile-time by the -0 command-line switch. Fixed.
This summary brought to you by Rafael Garcia-Suarez. It's also available via a mailing list, which subscription address is firstname.lastname@example.org. Comments and corrections are, as always, welcome.