This Week on p5p 2000/05/14
- 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
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.
Regex Stress Testing
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 Finkel’s
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 rattlesnakes.
Another Thread-Safing Patch
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.
perldocdiscussion winds up
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.
Build patches for OS/2
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.
Method calls on unblessed references
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.
Version Tuples Broken?
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 (2188.8.131.527.258.259)
Sarathy said that this is because
eq is broken; it’ll be fixed in 5.6.1.
Negative Subscripts for Tied Arrays
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 had. 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,
Something wrong with this article? Help us out by opening an issue or pull request on GitHub