This Week on perl5-porters (Nov 01-09 2004)

This Week on perl5-porters (Nov 01-09 2004)

Tests failing when core extensions not built

It's possible to configure perl without some built-in extensions, and this causes some tests to fail, so Nicholas was wondering about determining which extensions aren't enabled and skipping the corresponding tests.

Detecting strlcat() and strlcpy() in Configure

H. Merijn Brand continued working on detecting these functions, which are safer versions of strncat and strncpy. Craig Berry made it work on VMS. Adding the detection to Configure makes it easier for module writers to know if the functions are available.

Cwd test failing

Yitzchak Scott-Thoennes reported (bug #32272) this test failure, which was later found to be ignorable. Yitzchak also mentioned that Cwd and File::Spec have been repackaged as PathTools.

getXXXent functions break after recursing to grow buffer

Bug #32154, apparently caused by RedHat's patched glibc, as it didn't show up in other distributions.

Nicholas incidentally pointed out that source code is available directly

and a repository browser is at

Roadmap for 5.10

Rafael listed points in the roadmap for 5.10. Michael Schwern added that Module::Build and CPANPLUS should be put into the core, and Randy Sims pointed out some work that needs done on M::B first. Also mentioned was incorporating a minimal subset of Inline.

Peephole optimization

Tassilo von Parseval is working on optionalizing the peephole optimizer. Rafael pointed out that the intent of this is to make sure that the optree produced by the compiler is correct, and Hugo added that it could also be used for avoiding certain optimizations and allowing other aggressive optimizations.

Tassilo investigated further which peephole optimizations are currently mandatory for tests to pass. Jim Cromie suggested that he mess with B::Generate and optimizer, which are in need of work.

Undefining signals

Ben Morrow submitted, among other proposals, that

  $SIG{FOO} = undef;

try to block the signal FOO, then, failing that, IGNORE it. Nick Ing-Simmons brought up the problem of unmentioned signals being undef, and the badness of blocking them (in particular, $SIG{INT}).

Sharing hash values

Tels was dismayed by the inefficiency of the common "seen hash" idiom

  $seen{foo} = 1;
  if (exists $seen{foo}) { ... }

Even using undef doesn't save much, so he wondered how he could share the undef for all the hash values. It turns out Gisle Aas has already done this with Array::RefElem. Randy Sims suggested that we really want a set instead, for which Tels found Set::Object.

If you're like I was before doing the summaries, scanning for neat ideas, this thread is one you don't want to miss.

In brief

Allen Smith successfully trolled with an "-ize" vs. "-ise" comment (actually I found the discussion interesting).

Yitzchak Scott-Thoennes fixed do "c:/" on Cygwin.

David Nicol discussed writing a distributed (network) lock manager.

Gisle Aas fixed a stack corruption in Tk, which fixing filled H.Merijn Brand with joy.

Jim Cromie continued work on optree tests, a problem with interleaving stdout and stderr on VMS and Cygwin.

Steve Peters resuscitated at least 16 old bugs on RT, only to crush most of them beneath his shoe.


The thread for bug number $BUGNUM can be found at$BUGNUM

About this summary

This summary was written by Scott Lanning. Summaries are published weekly at and posted to a mailing list whose subscription address is The archive is at Comments and corrections are welcome.