Grouse Grep is a text search program for Linux, similar to
GNU Grep. The program features a new and powerful software
architecture to provide a speed increase over GNU Grep for
many common simple searches. Case-insensitive searches in
particular are 10-20% faster than GNU (benchmarking against
version 2.3). However, the program can't handle extended RE
syntax (parenthesis, alternation, {n,m} iteration), and it
uses an NFA algorithm instead of a DFA algorithm, which can
lead to exponentially slow search times for more complex
searches (GNU uses a DFA).
This release includes all source (C, plus a little Perl),
and a pair of test rigs to perform regression and flog
testing.
The new architecture is the Grouse FSA, which is a merger
of table-driven finite-state machines and threaded assembly.
This architecture runs extremely quickly, and has huge
potential to be used to optimise new and existing
applications. Grouse Grep includes some tools to help build
and maintain these machines.
Simple string searching benefits from using the new
Self-Tuning Boyer-Moore algorithm, which is a minor
improvement to the Tuned Boyer-Moore algorithm.
Another new feature is Tracery: A trace/debug facility that
gives extremely fine control over what is to be observed,
and which is built to be highly portable and reusable. Even
better, each module that implements its traces with Tracery
becomes more reusable. Make sure you use Tracery on your
current and next project!