>Basically, I see a black-box being built in the interests of speed. >Voodoo array formats, bitmaps, and other such things to avoid actually >spelling out what the regular expression is doing *in parrot code*. [snip] >What I see is that rx_literal is a speed hack to avoid compiling this >into parrot code: [snip] >I think that's exactly what you should be doing! Neither parrot nor the >rx engine should try to be a full compiler. The rx engine definitely >should have opcodes in the virtual machine, but those opcodes should [snip] >Once you squash rx_literal and friends, any attempt to benchmark the >"rx" engine really becomes a benchmark of parrot itself. When you speed >up parrot, you speed up regular expressions. Voila, no more black box. >If Parrot is just too damn slow for you, whip out libmylang and do the
This is a serious reply, I'm not taking potshots, but correct me if I'm wrong: by your argument, we should implement lots of other black boxes in "parrot" rather than C such as anything that is not a basic low level call (for example upper layer IO system, buffering, etc.). Otherwise I'm unsure where you think a black box is appropriate and where it isn't. -Melvin