- Regex Stress Testing
- Another Thread-Safing Patch
perldocdiscussion winds up
- Build patches for OS/2
- Regex Engine
- Method calls on unblessed references
- Version Tuples Broken?
- Negative Subscripts for Tied Arrays
- Upcoming corrections
You can subscribe to an email version of this summary by sending an empty message to email@example.com.
Please send corrections and additions to
YYYYMM is the current year and month.
It was tempting to just post `nothing happened this week'. Lots of small patches to fix various 5.6.0 misbehaviors, and reports of new 5.6.0 misbehaviors. An unusual number of people who should have known better posting requests for dumb trivial features. Low traffic. Few big discussions.
Jarkko Hietaniemi wrote a module called
Regex::PreSuf which accepts a list of words and builds a regex that recognizes only
those words. Mike Giroux suggested that the large regexes generated
by this module could be used to stress-test the regex engine. (Avi
String::REPartition module might be used similarly.)
Ilya said it would be better to add the trie code from
Regex::PreSuf to the regex engine. Jarkko replied that he would prefer to eat live
Dan Sugalski sent a replacement for his patch that makes the
lock() function thread-safe. It also exposes
lock() functionality to XS subroutines, and some other things.
Also in thread news: A user posted a message asking why threads weren't fully supported, and Dan replied at some length. (Summary: Because it's hard.)
Marek Rouchal: Bottom line: I'd be very happyabout fully working threads in Perl 5.6.1
Dan Sugalski:You and me both. :) I wouldn't hold my breath.
As quickly as it arrived, last week's discussion of docmuentation issues has ended. The only discussion of note this week was a message from Mark Fisher with a reference to a 1971 paper that compared automatic indexing with manual indexing. Would-be indexers should probably take a look at this.
Rocco Caputo made some changes to fix the build process on OS/2.
In the course of trying to investigate a bug in the regex engine, Hugo van der Sanden critiqued the code style and comments. This led to a brief but interesting discussion about the code there.
John Tobey submitted a patch to enable
$r is unblessed. If I understand correctly, the method is looked up in
a package named
ARRAY or whatever.
Randal said that this had come up some years ago, and the consensus was not to do it, since it would make erroneous method calls harder to catch.
I was not able to find this discussion. John found a 1996 message from Tim Bunce that referred to an even earlier discussion of this same idea. (Tim submitted a patch similar to John's.) If anyone can dig up a pointer to the original discussion, please let me know.
Ian Phillipps pointed out two problems with version tuples. But Ilya
said that no, the problem was not with the tuples, but with the
results produced by the
(256.255.254 . 257.258.259) eq (2184.108.40.2067.258.259)
Sarathy said that this is because
eq is broken; it'll be fixed in 5.6.1.
Michael Schwern complained that if you have a tied array, and you do
Perl does not call
$o->FETCH(-1), but rather instead it calls
$o->FETCHSIZE() to find out how long the array is, say 80 elements, and then invokes
$o->FETCH(79) to get the last element. Nick Ing-Simmons, the author of the tied
array implementation, said that
that was how it
was supposed to work, and changing it will break existing code.
Brad Appleton, the author of the
Pod::Parser module suite, felt that some of my comments from the previous report
were unfair. In particular, he says that the current
Pod::Parser implementation is incomplete, was designed for flexibility rather
than speed, and he is sure that large speed gains could be easily
Brad is preparing a long and informative reply, which I
expect to include in next week's report.
A large collection of bug reports, bug fixes, non-bug reports, questions, answers, and a small amaount of flamage and spam.
Until next week I remain, your humble and obedient servant,