This Week on perl5-porters (14-20 October 2002)

rafael on 2002-10-21T20:12:41

This week, folks, I've written a low-fat summary. Not that I'm especially tired, but the bulk of messages in perl5-porters were bug reports and small fixes, and not really summarizable discussions. This makes arguably the summary more concise, but not less interesting, do I hope.

charnames patch follow-up

H.Merijn Brand submitted a new version of his patch that enhances the charnames pragma to allow user-defined aliases. Not yet applied. Your summarizer noticed that loading the files that define the aliases via require() instead of do() would be an improvement, but unfortunately it appeared that require() is always forced to be called in scalar context, (for an unclear reason), which makes this solution not applicable.

How to leak scalars with threads

Marc Shapiro noticed (bug #17964) that using the Switch module in a multi-threaded program triggers a Scalars leaked: 1 error message. Elizabeth Mattijsen replied that there are currently many ways to produce this message, one of them being to do funky stuff in BEGIN blocks.

In brief

Steve Grazzini submitted a patch (bug #17830) to make the three argument form of open() behave correctly when the mode argument is <&= (i.e. open a file descriptor via number). Applied.

Bug #17892 is about mkdir() not internally removing trailing slashes from directory names. This makes mkdir() fail in this case on NetBSD (and possibly other BSD variants). This was fixed by Slaven Rezic.

Michael G Schwern noticed that prototype() doesn't warn in void context. This was fixed by Rafael Garcia-Suarez (bug #17933).

Nicholas Clark reported that a tied STDERR doesn't catch lexical warning messages. Bug #17934, still pending, on which nobody commented.

Stéphane Payrard submitted a patch to the IO module, to deprecate the form use IO without an import list, and to document what goes in this import list (that is, the names of the modules in the IO:: namespace to be loaded.) Applied.

Ilya Sandler reported that clearing a large hash may be very slow (bug #17971). As Andreas J. Koenig found out, this is a malloc() bug, reproducible with libc-2.2.5, but not with libc-2.3.* that provides a new implementation of malloc().

Graham Crookham reported that with perl 5.8.0, AUTOLOAD is failing to get called for sub calls of the form Xxxx-new when the class Xxxx has never been seen before> (bug #17967). This behavior differs from perl 5.6.1. Nobody commented.

Marty Pauley provided a patch for Class::Struct to allow declaration of a structure via the use Class::Struct statement, with an implicit class name. He also wondered why Class::Struct doesn't allow its structures to have an @ISA. Nobody seemed to remember.

Gavin Estey reported that a test for Locale::Codes failed for him when compiling perl 5.8.0. This bug was already known and fixed, but it's not harmful to repeat the cause here, in case some of my gentle readers run into the same problem : he was using an UTF8 locale, which the buggy test wasn't handling properly.

H.Merijn Brand applied his chainsaw-patch to remove the old 5005-threads. Further reviewing and adjustments are probably needed (but apparently no regression was introduced.)

Ton Hospel reported a case of regex overoptimization (bug #18019), which was promptly fixed by Hugo.

Perl 5 turned eight years old.

About this summary

This summary brought to you by Rafael Garcia-Suarez, who began to use Perl less than eight years ago. It's also available via a mailing list, which subscription address is perl5-summary-subscribe@perl.org . Comments and corrections are, as always, welcome.