This Week on perl5-porters (24-30 March 2003)

This Week on perl5-porters (24-30 March 2003)

This week was a rather interesting week among the Perl 5 porters. Read about pattern matching extensions, CPAN distribution issues, and various bugs and problems.

New regexp flag proposed

Yitzchak Scott-Thoennes proposed a new flag, /w, to modify the return value of the pattern match operator in list context. Basically it prepends the value of $& to the list of returned values ($1..$n).

Rafael Garcia-Suarez and Merijn Brand asked about the implied constructs qr//w and /(?w)/ : these shouldn't be allowed since /w affects the return value of the match, not the pattern itself.

Tim Conrow pointed out that /w conflicts with the Perl 6 switch of the same name. Jos Boumans proposed /r instead. A new version of the patch is in the works.

A for old perls

Nicholas Clark forwards to P5P an idea of Simon Wistow : to release a dummy warnings module to CPAN, so that using lexical warnings in a module doesn't also mandate at least perl 5.6.0. Stas Bekman then proposes to create a Perl-Backport distribution, aimed at installing various back-compatibility stubs based on the current perl's version. As he says, CPAN module authors just need to include Perl::Backport in their PREREQ_PM and it'll do the rest of the job.

A generic solution for dual-life CPAN packages

Stas Bekman made a proposal to help the CPAN indexer to distinguish between the different distributions that provide a specific package, and to decide which one should be installed by / CPANPLUS. His idea is to introduce a new variable, say $CPAN_MASTER_PACKAGE, to hold the name of the master distribution containing a module. An alternative option would be to include a file BUNDLED in the distribution, to list all packages that are to be ignored by the indexer.

Andreas Koenig points out that the contents of the inc/ subdirectories of CPAN distributions are currently ignored by the indexer. For example, only-0.26 and PAR-0.66 come with Autrijus Tang's Module::Install distributed under inc/. Autrijus notes that the inc name is not yet definitive and should not be relied upon. He also liked Stas' BUNDLED file idea and suggested that this file could use the MANIFEST.SKIP syntax (i.e. ^inc/ to excludes files from inc/).

In brief

John L. Allen has problems compiling Perl 5.8.0 on AIX with long doubles with the latest version of IBM's compiler (vac). Apparently Configure isn't getting right the modfl support. He's working on this with Merijn.

Doug Thayer reports a case of segfault, using GDBM in a threaded program (bug #21699). Arthur Bergman says that the fix is probably to make GDBM thread aware.

Jean Forget reminds us that he put on CPAN an alpha version of an enhanced diagnostics module, containing bug fixes and support for internationalization. Wolfgang Laun announces that he'll have a look at it.

Michael G Schwern announced a new alpha release of MakeMaker (version 6.06_03, then 6.06_04). Testers welcome.

He also reported bug #21742 : encountering a require Foo::Bar statement invoked in void context and from an eval(STRING) statement, perl 5.8.0 isn't able to compute correctly the module's return value, because it provides a wrong context for it. (The correct context to be provided would be scalar context, and perl actually provides void context in this case.)

Juerd reports bug #21744 about B::Deparse. A code snippet is worth a dozen words :

    $ perl -MO=Deparse -e'print "${foo}::bar"'
    print "$foo::bar";

Enache Adrian (which I haven't already mentioned, although he posted a load of bug fixes this week, as usual) provides a fix.

About this summary

This summary was brought to you by Rafael Garcia-Suarez. Weekly summaries are available on and/or via a mailing list, which subscription address is Comments, corrections, additions, and suggestions are welcome.

Special thanks to the folks for providing this short url service, and to Iain Truskett for WWW::Shorten.