3 ms·
iirc, Github uses (used?) my old project (https://github.com/intel/hyperscan https://github.com/intel/hyperscan) at Intel. It's probably faster than the alterna
by glangdale 7y ago
iirc, Github uses (used?) my old project (https://github.com/intel/hyperscan https://github.com/intel/hyperscan) at Intel. It's probably faster than the alternatives, although if you want to support all types of regex you'll need to use Hyperscan as a prefilter for a richer regex engine like PCRE.
This project looks like it pulls literal factors out of the regex that I type in, maybe to an index a la that Russ Cox blog post a while back about Code Search. It seems to Not Like things that have very open-ended character classes (e.g. \w) unless there is a decent length literal involved somewhere.
It seems to have a very rudimentary literal extraction routine, as it decides to give a partial result set when fed an alternation between two literals that it handles pretty well on their own.
- glangdale 7y agopattern is, btw: (teakettle\w|abcd) Either pattern in alternation works fine, but even a simple alternation of the two goes back to the behavior that you might expect to get from awful patterns like \d..\d..\w...\s...\d (i.e. reporting only a partial set of matches).
- michaelmior 7y agoDid you mean either patter in "isolation"?
- glangdale 7y agoYup, you're right - I wound up saying the opposite of what I meant!