Unsurprisingly, this was one of the quietest weeks since I subscribed to P5P. Perl 5.8.0 has just been released, and the Perl 5.9 development track has yet to begin. So the bulk of the discussion was about small bugs and adjustments. Here's my subjective and arbitrary selection.
Jeff ``japhy'' Pinyan proposed a new regex pseudo-anchor, \K
(which
stands for Keep) that basically fools the engine into thinking it
just started matching. In other words,/pat1\Kpat2/
acts as a kind of
look-behind assertion/(?<=pat1)pat2/
(the only difference being when a/g
modifier is used. Check the actual thread for the details.) Also,
the pattern that precedes \K
doesn't need to be constant-width, unlike
what is currently required for look-behind assertions.
The way this pseudo-anchor is implemented makes it quite efficient.
Japhy gives another example of its usefulness
$str =~ s/(.*)\..*/$1/;
can be written, using \K
, as
$str =~ s/.*\K\..*//;
Brent Dax (who submitted last week a patch to, hm, forward-port a Perl 6 construct in Perl 5) remarked that Japhy should mention this idea to Larry. Obviously we don't want Perl 5 and Perl 6 to diverge.
Japhy also provided the corresponding \F
pseudo-anchor that tells the
regex engine it has stopped matching -- this one being equivalent to a
look-ahead assertion. About this one, he says I'm not 100% sure we need
\F, and also I'm sure there's a need for \F, but I haven't quite
figured it out yet.
The idea : http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2002-07/msg01324.html
The patch : http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2002-07/msg01380.html
binmode()
bugElizabeth Mattijsen, who continues to experiment with PerlIO::via
,
found that binmode()
passes incorrect mode and handle parameters to
PerlIO::via::PUSHED()
when it's used to push a new PerlIO layer on an
existing filehandle. Nick Ing-Simmons corrected this bug.
Bug #15283 : http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2002-07/msg01294.html
Abigail reported that some tests fail during perl's build when a Configure
option of -Dprefix=/some/dir/
(with a trailing slash) was used. This is
a known problem, but those who haven't dug through the INSTALL instructions
may loose some time to find out the cause. H. Merijn Brand provided a
patch to correct the problem.
Bug #15326 : http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2002-07/msg01311.html
Randy J. Ray reported that he couldn't build the Crypt::SSLeay
module with
perl 5.8.0. This problem does not appear with recent openssl libraries ;
it can also be solved by forcing the C preprocessor symbol PERL5
to be
defined in Crypt::SSLeay
's Makefile.PL. However the precise cause of this
problem is still not known.
Randy also reported a problem on building Gtk-Perl, but nobody replied.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2002-07/msg01346.html
H. Merijn Brand, eminent smoke tester (on AIX, HP-UX and Cygwin platforms), decided to remove the non-perlio configurations from his tests.
Elizabeth Mattijsen decided to run some benchmarks on memory usage of
threaded programs; in particular, the memory usage of our
, my
and
global variables, without attributes or with:unique
or:shared
. I
won't summarize her results here, please refer to the relevant threads for
the details.
Some threaded memory benchmarks : http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2002-07/msg01422.html
More memory benchmarks http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2002-07/msg01438.html
More memory/processing benchmarks http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2002-07/msg01467.html
qq(\Q\E)
Philip Hazel noticed that perl refuses to parse empty escape sequences in
double-quoted strings, such as "\Q\E"
, "\u\E"
, "\L\E"
, etc.
Fixing this bug involves playing with some of the darkest magic you can
find in the tokenizer. Nicholas Clark commented : it's far too scary to
work out what to do right now.
Bug #15549 : http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2002-07/msg01502.html
This summary brought to you by Rafael Garcia-Suarez, enduring high summer
temperatures. This report is also available via a mailing list, which
subscription address is perl5-summary-subscribe@perl.org