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.
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.
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.
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.
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.
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
$* (which was deprecated) has been removed from bleadperl, but its internal counterpart should be suppressed as well. (Bug #27028.)
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).
Ton Hospel finds a new way to leak memory, combining
continue (bug #27206).
Ton also found a bug regarding the interpolation of array subscripts involving
$& in the right-hand side of substitutions. Tricky. (bug #26986).
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.
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.
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@example.com. Corrections and comments are welcome.