This Week on perl5-porters (23-29 February 2004)
This week's summary, a bit late, will tell about the approaching
development release, the new bugs discovered and fixed, and the
side-effects of the new warnings.
CPAN modules and bleadperl
Hoping to release perl 5.9.1 soon, Rafael asked to test CPAN modules
against it. Bugs were found (and fixed) in PAR and in XML::Twig; he
detected as well some problems with XML::Parser::PerlSAX, a module which
apparently is no longer actively maintained, but which is still widely
used.
Rafael noted also that the regression tests produce lots of warnings
"Deprecated use of my() in conditional", referring to the dubious and
now deprecated construct
my $foo = $bar if $quux;
So the warning is maybe too noisy (although it indicates a bug waiting
to happen.) Rafael and Dave Mitchell proposed some alternatives, but the
current form of the warning is likely to go into 5.9.1, even if it's
made lighter afterwards.
http://groups.google.com/groups?selm=20040226004123.245a15ad.rgarciasuarez%40free.fr
Marcus Holland-Moritz also found that Convert::Binary::C was producing a
most strange error with bleadperl, which was tracked down and fixed by
Dave Mitchell, the cause being rooted in the internals of the new bison
parser for perl.
http://groups.google.com/groups?selm=20040227201207.7584bf56.mhx-perl%40gmx.net
Storable and ithreads
Beau E. Cox is courageously trying to get Storable work thread-safely,
including under older perls. The further discussion is about ways of
using the "PERL_NO_GET_CONTEXT" is XS code, and ways of advertising it
in the perlxstut manpage.
http://groups.google.com/groups?selm=200402232243.29069.beau%40beaucox.com
Another proof that $[ is evil
Ton Hospel reported that the one-liner
$[ = 1 while $x;
makes perl segfault. (bug #27024). This is due to the pragmatic
(compile-time) nature of assignments to $[, and was fixed by Rafael.
Bugs in multiline regexps
Zefram reported that, "contrary to the documentation, /^/m does not
match after a newline that is at the end of the string" (bug #27053),
but it's not clear which one, of the documentation or the code, should
be modified.
He also reported that qr/$/ misbehaves in /.../m regexps; Hugo van
der Sanden explained that this was due to the global variable $*
interfering with the "/m" flag. $* (which was deprecated) has been
removed from bleadperl, but its internal counterpart should be
suppressed as well. (Bug #27028.)
http://groups.google.com/groups?selm=rt-3.0.8-27028-79227.10.9485947752979%40perl.org
Other Bugs
John M. Dlugosz produces the error "Attempt to free unreferenced scalar"
with the charnames module; Dave reduced it to a few lines in two
files (bug #27040).
http://groups.google.com/groups?selm=rt-3.0.8-27040-79720.3.9168168233855%40perl.org
Ton Hospel finds a new way to leak memory, combining "redo" and
"continue" (bug #27206).
http://groups.google.com/groups?selm=rt-3.0.8-27206-80174.5.18731750813757%40perl.org
Ton also found a bug regarding the interpolation of array subscripts
involving $& in the right-hand side of substitutions. Tricky. (bug
#26986).
http://groups.google.com/groups?selm=rt-3.0.8-26986-79096.12.4352684111778%40perl.org
In Brief
Tassilo von Parseval provided a patch to optimise map() used in scalar
context. (It was already optimised in void context.)
Chia-liang Kao provided a patch to Benchmark to make cmpthese() and
timestr() use time statistics for children instead of parent when the
selected benchmark style is 'nop'.
Dave Mitchell fixed the recursive "goto &f" leak noticed last week.
Nicholas Clark released a snapshot of maintperl. He plans a code freeze
for 5.8.4 at the end of March.
And now for a bit of advertisement
David Wheeler forwarded a message from the PostgreSQL community, saying
that "there's a fair bit of interest there in improving pl/Perl -- that
is, the ability to write native database functions in Perl". Help
welcomed.
http://groups.google.com/groups?selm=757FBF18-6AF0-11D8-A088-000A95972D84%40wheeler.net
About this summary
This summary was written by Rafael Garcia-Suarez. Weekly summaries are
published on http://use.perl.org/ and posted on a mailing list, which
subscription address is [EMAIL PROTECTED] Corrections
and comments are welcome.