This Week on p5p 2000/05/14
- Notes
- Regex Stress Testing
- Another Thread-Safing Patch
- Enormous
perldoc
discussion winds up - Build patches for OS/2
- Regex Engine
- Method calls on unblessed references
- Version Tuples Broken?
- Negative Subscripts for Tied Arrays
- Upcoming corrections
- Various
Notes
You can subscribe to an email version of this summary by sending an empty message to p5p-digest-subscribe@plover.com
.
Please send corrections and additions to mjd-perl-thisweek-YYYYMM@plover.com
where 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.
Enormous
perldoc
discussion 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.
Regex Engine
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->method(arg, ...)
when $r
is unblessed. If I understand correctly, the method is looked up in a package named HASH
or 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 unpack
and print
functions when extracting the result. Mike Guy then pointed out that
(256.255.254 . 257.258.259) eq (256.255.254.257.258.259)
is false.
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
$array[-1]
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.
Upcoming corrections
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.
Various
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,
Tags
Feedback
Something wrong with this article? Help us out by opening an issue or pull request on GitHub