This Week on perl5-porters (8-14 December 2003)

This Week on perl5-porters (8-14 December 2003)

In two words, this was a busy week. Various topics were discussed, from the low-level C portability stuff to the Perl language considerations.


Paul Marquess brings to the general attention that the implementation of delete() in the DBM modules does not what the man page says what it should do. This implementation glitch was due to efficiency reasons. He wonders what's the right solution for this -- interface change or doc change.

Concat slowdown

Stas Bekman notices that some form of concatenation of strings was impressively slowed down after the release of perl 5.8.2. This change is due to the removal of an aggressive optimization that went wrong on some cases. No replacement for this optimization has been worked out yet.

Benchmark and bigint

Tels reports (bug #24622) that you can't use Benchmark when you've loaded bigint. Hugo van der Sanden remarks that bigint interferes with Benchmark's use of floating point numbers. Tels then proposes a patch to Benchmark to cope with this, but Hugo believes that a more correct solution would be to fix bigint so its effect is lexical and no more global. (And we're back to this old TODO item : fix lexical pragmas.)

Tieing stashes

Tassilo von Parseval remarks that perl lets you tie stashes (symbol table hashes). However, once tied, they don't work quite as expected. So it's maybe a good idea to forbid tying stashes (unless we can make them work correctly, for some acceptable value of correctly.)

On the other hand, one can mark stashes as read only, and this seems to behave.

A void context warning in boolean context

Gisle Aas reports that the following code :

    if ("") { do_something() }

produces a warning, Useless use of a constant in void context. Rafael comments and thinks that this one will be difficult to fix. (Bug #24646).

In Brief

Scott Walters announces that he might have an occasion to add a Perl 5 backend to parrot.

Tels posted a abstract of the current state of Math::BigInt and Math::BigFloat (and pre-released Math::BigInt 1.68).

Steve Hay proposed to add a function Win32::IsAdminUser(). Michael Schwern proposes to put it in libwin32 instead. No Windows guru comments.

Paul Marquess works on the DB_File and utf8 issue reported last week.

Enache Adrian works on old and new memory leaks. (E.g. bug #24624 for a memory leak related to the new version object code.)

Enache also fixed a bug related to mishandling of utf8 strings by substr().

Bug #24615 is, for once, about a case where perl's taint checks are too zealous.

Alan Burlison has problems building perl with a C99-compliant compiler. This has something to do with #include guards and obscure predefined compiler symbols, that are in the source code of perl from ages. Some cleanup is in order.

Nicholas Clark, integrating changes to the perl 5.8 branch, remarks that the recent fixes made to the $0 variable break PAR.

Nicholas also released a snapshot of perl 5.8.x at the very end of the week.

Quote of the week

This is the "camel grooming club" - we have to make the hair as unhairy as possible while making things work. -- Nick Ing-Simmons, speaking about P5P.

About this summary

This summary was compiled by Rafael Garcia-Suarez. Weekly summaries are published on and posted on a mailing list, which subscription address is Corrections and comments are welcome. (Yes, mixed archives. Baroque style.)