From ecf0e2f6a5309f514ea6ded12ffbc7d23044d191 Mon Sep 17 00:00:00 2001 From: nate Date: Tue, 29 Jun 1993 06:04:45 +0000 Subject: Gnu e?grep 1.6 --- gnu/usr.bin/grep/README | 70 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 gnu/usr.bin/grep/README (limited to 'gnu/usr.bin/grep/README') diff --git a/gnu/usr.bin/grep/README b/gnu/usr.bin/grep/README new file mode 100644 index 0000000..27f5bae --- /dev/null +++ b/gnu/usr.bin/grep/README @@ -0,0 +1,70 @@ +This README documents GNU e?grep version 1.6. All bugs reported for +previous versions have been fixed. + +See the file INSTALL for compilation and installation instructions. + +Send bug reports to bug-gnu-utils@prep.ai.mit.edu. + +GNU e?grep is provided "as is" with no warranty. The exact terms +under which you may use and (re)distribute this program are detailed +in the GNU General Public License, in the file COPYING. + +GNU e?grep is based on a fast lazy-state deterministic matcher (about +twice as fast as stock Unix egrep) hybridized with a Boyer-Moore-Gosper +search for a fixed string that eliminates impossible text from being +considered by the full regexp matcher without necessarily having to +look at every character. The result is typically many times faster +than Unix grep or egrep. (Regular expressions containing backreferencing +may run more slowly, however.) + +GNU e?grep is brought to you by the efforts of several people: + + Mike Haertel wrote the deterministic regexp code and the bulk + of the program. + + James A. Woods is responsible for the hybridized search strategy + of using Boyer-Moore-Gosper fixed-string search as a filter + before calling the general regexp matcher. + + Arthur David Olson contributed code that finds fixed strings for + the aforementioned BMG search for a large class of regexps. + + Richard Stallman wrote the backtracking regexp matcher that is + used for \ backreferences, as well as the getopt that + is provided for 4.2BSD sites. The backtracking matcher was + originally written for GNU Emacs. + + D. A. Gwyn wrote the C alloca emulation that is provided so + System V machines can run this program. (Alloca is used only + by RMS' backtracking matcher, and then only rarely, so there + is no loss if your machine doesn't have a "real" alloca.) + + Scott Anderson and Henry Spencer designed the regression tests + used in the "regress" script. + + Paul Placeway wrote the manual page, based on this README. + +If you are interested in improving this program, you may wish to try +any of the following: + +1. Replace the fast search loop with a faster search loop. + There are several things that could be improved, the most notable + of which would be to calculate a minimal delta2 to use. + +2. Make backreferencing \ faster. Right now, backreferencing is + handled by calling the Emacs backtracking matcher to verify the partial + match. This is slow; if the DFA routines could handle backreferencing + themselves a speedup on the order of three to four times might occur + in those cases where the backtracking matcher is called to verify nearly + every line. Also, some portability problems due to the inclusion of the + emacs matcher would be solved because it could then be eliminated. + Note that expressions with backreferencing are not true regular + expressions, and thus are not equivalent to any DFA. So this is hard. + +3. Handle POSIX style regexps. I'm not sure if this could be called an + improvement; some of the things on regexps in the POSIX draft I have + seen are pretty sickening. But it would be useful in the interests of + conforming to the standard. + +4. Replace the main driver program grep.c with the much cleaner main driver + program used in GNU fgrep. -- cgit v1.1