This Week on perl5-porters (25-31 August 2003)

This Week on perl5-porters (25-31 August 2003)

  Perl gait and post rate,
  The summarizer watches.
  Read it all below.

Cwd, XSLoader, CPAN

Ken Williams, who is going to release the Cwd module on CPAN, wants to backport it to perl 5.005. However, this involves replacing XSLoader, that it uses, by the older DynaLoader -- or, to use a backward compatible boilerplate -- or, ultimately, to release on CPAN XSLoader itself, as Michael Schwern suggested.

In fact, Michael even provided a small tarball of XSLoader, repackaged for CPAN. He also wrote tests for it and cleaned it up a bit.

While we're at it : Randal L. Schwartz reported that the version of the base module on CPAN (in the Class-Fields distribution) was higher than the one currently included in perl 5.8.1.

Michael Schwern says that a backport of base and fields must remain on CPAN. It's important to note that the CPAN and core versions of those modules are functionally equivalent, their only difference being purely internal. He added that Class::Field is a failure and should be left dying slowly. Nevertheless, he separated the CPAN version of base and fields from Class::Fields, which is going to CPAN as base-2.0. He also mentions that he's bored with those modules and would welcome someone to take over the CPAN version.

next $label

Mark-Jason Dominus wishes (bug #23614) that next could support dynamic labels, specified via a variable. (goto supports this.) Enache Adrian remarks that this isn't probably worth the performance penalty. Schwern quotes Larry.


Nicholas Clark posted the code of spambench, a simple script aimed at benchmarking a perl interpreter against SpamAssassin and a known email corpus.

His results so far : copy-on-write doesn't seem to make a difference in speed (perhaps in memory usage ? there aren't memory statistics), and a perl interpreter compiled with ithread support is slower by 4/5%.

Parsing pod fast

Mark-Jason Dominus proposed a patch to improve the performance of Pod::Parser. However, Marek Rouchal (who maintains Pod::Parser) rejected it, for reasons pertaining to the correctness of the algorithm : he wants the parse tree to contain no empty nodes and no consecutive text nodes. Marek also says that Pod::Simple is nowadays considered a better alternative to write pod parsers backends.

tell() in append mode

Martyn Pearce reports bug #23645 : tell() returns 0 after having opened a file in append mode with perl 5.8.x ; but perl 5.6.x returns the real file position. Andreas Koenig finds that the patch that changed the behaviour of tell() is a patch to the Linux compilation hints file, and indeed the bug disappears if perl is configured with -Dd_stdstdio=define. Jarkko commited a fix, but labels it as probably wrong.

In Brief

Tim Jenness released File::Temp 0.14 (last week, in fact).

Lukas Mai reported that the prototypes for shift() and pop() should be ;\@ instead of \@. Rafael fixed this, and added a regression test for the prototypes of built-ins. (bug #23572.)

David Coppit reported (bug #23578) that the delete_package() function provided by the Symbol module is sometimes so zealous that the deleted package can't be reloaded efficiently. Rafael explained this (and why it won't probably be fixed in a near future.)

Nicholas Clark filed a couple of bugs that were uncovered by valgrind (#23753, #23576). One of them involves matching something against a regular expression, and then introducing $& at run-time via an eval('').

Tassilo von Parseval found a strange bug involving the scoping of @- and @+, used in a tied hash, accessed from the right-hand side of a substitution (bug #23624). But the workaround is even stranger.

About this summary

This week's summary was written by Rafael Garcia-Suarez. Summaries are published weekly on and on a mailing list, which subscription address is Comments and corrections are welcome. Yes I know, I'm not good at haikus.