These Weeks on perl5-porters (9-29 August 2004)

These Weeks on perl5-porters (9-29 August 2004)

This is an olympic summary: it jumps over three full weeks!

Tainting PATH on Windows

Discussing about a new test failing in the smoke tests for Windows, Steve Hay found that the following one-liner:

    perl -T -e "qx(unqualified)"

doesn't produce the familiar error Insecure $ENV{PATH} while running with -T switch; and all perls since 5.6.0 behave similarly on Windows. This is probably a bug, although an old one (and the failing test was marked TODO).

Delenda est the module list

What should be done with the CPAN module list? This discussion is perhaps a bit off-topic for p5p, but anyway; Andy Lester began to suggest that the document known as the Long Module List ( is obsolescent and should be suppressed, and explained why. Various opinions where then expressed, more or less vocally. Graham Barr (who wrote and runs, at least, has no objection.


James Mastros plays with the idea of optimising accesses to the @_ array, maybe by introducing a new opcode for it. Commenters make good points and raise difficulties.

Meanwhile, Jim Cromie is digging optrees. For example, he suggested to remove some of the null ops that serve no purpose in optimized optrees; but this doesn't raise performance significatively.

The speed of BigInt

Tels, who maintains Math::BigInt, says that it's too slow, because it's implemented in pure perl. He proposes several solutions: either add a replacement library to the core, or add an optional XS part to Math::BigInt. Of course, benchmarks are needed.


It was proposed to make perlbug capable of sending mail directly (mostly for Windows users), maybe by opening a direct connection to some known SMTP server, of by using LWP to post something on perl's bug tracking system Robert Spier, grand sysadmin, disliked both ideas, so they're not going to be implemented. As he says, sending the perlbug-generated report by email directly to the perlbug adress at perl dot org works very well.

Ternary conditional and tainting

Andy Lester added various regression tests to the core test suite for features that were neither documented nor tested. Notably, he remarked that the expression

    $x = $tainted_data ? "Foo" : "Bar";

never results in $x being tainted. The general opinion being that this is the right behaviour, Andy wrote a test and doc patch for it.


Yuval Kogman noted that the fields and base pragma don't allow multiple inheritence of fields. Discussion follows; Yuval sent a patch to fix this situation (against the CPAN version of base). Nicholas Clark pointed out that the divergence of the core and CPAN versions of base really ought to be fixed some day.

Meanwhile, Rick Delaney sent a patch to optimize the fields pragma in bleadperl (the no-pseudo-hash implementation of it.)

exec and die warnings

Stas Bekman notes that:

    exec "echo OK"; die "shouldn't be reached";

doesn't produce a warning Statement unlikely to be reached, since die() is allowed in this position. However, if die() is overriden, the warning is still produced. This effect is a bit annoying.

In Brief

Alan Burlison discovered a small scoping issue with my used in a while condition, where the while loop has a redo. Dave Mitchell says it's a known issue, and that it's on his long to-do list.

Dave Mitchell seems to have understood, for a limited period of time, perl's internal exception handling mechanism (and used this knowledge to produce a patch.) See for yourself:

Dave also fixed a case of segmentation fault with UNIVERSAL::AUTOLOAD() (yes, it's evil), regular expressions and threads.

Hugo found a case of deep recursion involving the goto &function construct. This was fixed by Dave (again).

Yitzchak Scott-Thoennes wants a method to tell whether fork() is supported (by the system or via perl's emulation).

Todd C. Miller says that perl should be built on OpenBSD for the ppc and arm architectures with the gcc flag -fno-delete-null-pointer-checks, when using gcc 3. If not, perl segfaults randomly (and for a reason that hasn't been tracked down).

Dan Jacobson complains that perl has no no-op. It turns out that it does: 0 and 1, used in void contect, don't generate warnings as other numerical constants do. Long thread ensues.

Eventually this long thread leads to other subjects: should the .. and ... be overloadable, and how to achieve this?

Pavel Fedin is porting perl 5.6.1 to MorphOS.

Selected doc patches

Kirrily "Skud" Robert sent a patch to update the perlnewmod manpage to the current CPAN module authoring best practices.

Jos Boumans proposed a patch to document some of the global configuration variables of Carp.

Steve Hay updated the README.win32 document with information about building perl with the MS VC++ Toolkit 2003.

Patches that are in the queue

Welcome to the new section of the P5P summary, where the summarizer tells everything about the patches he lets shamefully sleep in his mailbox because he says he's running out of tuits.

Jarkko Hietaniemi sent a patch that fixes two problems in the encoding pragma and the open pragma, notably with the open ':locale' subpragma.


Tels pre-released Math::BigInt 1.72.

Marcus Holland-Moritz released new alphas of Devel::PPPort, culminating in version 3.00, with 90 new API functions and macros supported.

About this summary

This summary was written by Rafael Garcia-Suarez. Summaries are published at irregular intervals on and posted on a mailing list, which subscription address is Comments and corrections welcome. Oh, and google groups are breaking, apparently.