This week on perl5-porters (22-28 July 2002)
[email protected] (Rafael Garcia-Suarez) Mon, 29 Jul 2002 09:59:16 +0200
| Newsgroups | perl.perl5.porters,perl.perl5.summary |
|---|---|
| Message-ID | <[email protected]> |
This week on perl5-porters (22-28 July 2002)
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.
New regexp metacharacters
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
A PerlIO / binmode() bug
Elizabeth 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
Trailing slash problem
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
Crypt::SSLeay build problems
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
No non-perlio smoke tests anymore
H. Merijn Brand, eminent smoke tester (on AIX, HP-UX and Cygwin
platforms), decided to remove the non-perlio configurations from his
tests.
Memory benchmarks on threads
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
Finally
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 [email protected].