Author: kevans
Date: Fri May  4 03:13:25 2018
New Revision: 333236
URL: https://svnweb.freebsd.org/changeset/base/333236

Log:
  bsdgrep: annihilate our in-tree TRE, previously disabled by default
  
  It was an old TRE that had plenty of bugs and no performance gain over
  regex(3). I disabled it by default in r323615, and there was some confusion
  about what the knob does- likely due to poor naming on my part- to the tune
  of "well, it sounds like it should speed things up" (mentioned by multiple
  people).
  
  To compound this, I have no intention of maintaining a second regex
  implementation. If someone would like to step up and volunteer to maintain a
  lean-and-mean implementation for grep, this is OK, but we have very few
  volunteers to maintain even our primary regex implementation.

Deleted:
  head/tools/build/options/WITHOUT_BSD_GREP_FASTMATCH
  head/tools/build/options/WITH_BSD_GREP_FASTMATCH
  head/usr.bin/grep/regex/
Modified:
  head/share/mk/bsd.prog.mk
  head/share/mk/src.opts.mk
  head/usr.bin/grep/Makefile
  head/usr.bin/grep/grep.c
  head/usr.bin/grep/grep.h
  head/usr.bin/grep/util.c

Modified: head/share/mk/bsd.prog.mk
==============================================================================
--- head/share/mk/bsd.prog.mk   Fri May  4 01:36:49 2018        (r333235)
+++ head/share/mk/bsd.prog.mk   Fri May  4 03:13:25 2018        (r333236)
@@ -271,6 +271,7 @@ SCRIPTSGRP_${script:T}?=    ${SCRIPTSGRP}
 SCRIPTSMODE_${script:T}?=      ${SCRIPTSMODE}
 STAGE_AS_${script:T}=          
${SCRIPTSDIR_${script:T}}/${SCRIPTSNAME_${script:T}}
 _scriptsinstall: _SCRIPTSINS_${script:T}
+       echo ">SFD>F>DF YES"
 _SCRIPTSINS_${script:T}: ${script}
        ${INSTALL} ${TAG_ARGS} -o ${SCRIPTSOWN_${.ALLSRC:T}} \
            -g ${SCRIPTSGRP_${.ALLSRC:T}} -m ${SCRIPTSMODE_${.ALLSRC:T}} \

Modified: head/share/mk/src.opts.mk
==============================================================================
--- head/share/mk/src.opts.mk   Fri May  4 01:36:49 2018        (r333235)
+++ head/share/mk/src.opts.mk   Fri May  4 03:13:25 2018        (r333236)
@@ -187,7 +187,6 @@ __DEFAULT_YES_OPTIONS = \
 
 __DEFAULT_NO_OPTIONS = \
     BSD_GREP \
-    BSD_GREP_FASTMATCH \
     CLANG_EXTRAS \
     DTRACE_TESTS \
     GNU_GREP_COMPAT \

Modified: head/usr.bin/grep/Makefile
==============================================================================
--- head/usr.bin/grep/Makefile  Fri May  4 01:36:49 2018        (r333235)
+++ head/usr.bin/grep/Makefile  Fri May  4 03:13:25 2018        (r333236)
@@ -17,15 +17,6 @@ bsdgrep.1: grep.1
 .endif
 SRCS=  file.c grep.c queue.c util.c
 
-.if ${MK_BSD_GREP_FASTMATCH} == "yes"
-# Extra files ported backported for some regex improvements
-.PATH: ${.CURDIR}/regex
-SRCS+= fastmatch.c hashtable.c tre-compile.c tre-fastmatch.c
-CFLAGS+=-I${.CURDIR}/regex
-.else
-CFLAGS+= -DWITHOUT_FASTMATCH
-.endif
-
 SCRIPTS=       zgrep.sh
 LINKS=         ${BINDIR}/zgrep ${BINDIR}/zfgrep \
                ${BINDIR}/zgrep ${BINDIR}/zegrep \

Modified: head/usr.bin/grep/grep.c
==============================================================================
--- head/usr.bin/grep/grep.c    Fri May  4 01:36:49 2018        (r333235)
+++ head/usr.bin/grep/grep.c    Fri May  4 03:13:25 2018        (r333236)
@@ -51,9 +51,6 @@ __FBSDID("$FreeBSD$");
 #include <string.h>
 #include <unistd.h>
 
-#ifndef WITHOUT_FASTMATCH
-#include "fastmatch.h"
-#endif
 #include "grep.h"
 
 #ifndef WITHOUT_NLS
@@ -96,9 +93,6 @@ unsigned int   patterns;
 static unsigned int pattern_sz;
 struct pat     *pattern;
 regex_t                *r_pattern;
-#ifndef WITHOUT_FASTMATCH
-fastmatch_t    *fg_pattern;
-#endif
 
 /* Filename exclusion/inclusion patterns */
 unsigned int   fpatterns, dpatterns;
@@ -712,9 +706,6 @@ main(int argc, char *argv[])
                usage();
        }
 
-#ifndef WITHOUT_FASTMATCH
-       fg_pattern = grep_calloc(patterns, sizeof(*fg_pattern));
-#endif
        r_pattern = grep_calloc(patterns, sizeof(*r_pattern));
 
        /* Don't process any patterns if we have a blank one */
@@ -725,15 +716,6 @@ main(int argc, char *argv[])
 #endif
                /* Check if cheating is allowed (always is for fgrep). */
                for (i = 0; i < patterns; ++i) {
-#ifndef WITHOUT_FASTMATCH
-                       /*
-                        * Attempt compilation with fastmatch regex and
-                        * fallback to regex(3) if it fails.
-                        */
-                       if (fastncomp(&fg_pattern[i], pattern[i].pat,
-                           pattern[i].len, cflags) == 0)
-                               continue;
-#endif
                        c = regcomp(&r_pattern[i], pattern[i].pat, cflags);
                        if (c != 0) {
                                regerror(c, &r_pattern[i], re_error,

Modified: head/usr.bin/grep/grep.h
==============================================================================
--- head/usr.bin/grep/grep.h    Fri May  4 01:36:49 2018        (r333235)
+++ head/usr.bin/grep/grep.h    Fri May  4 03:13:25 2018        (r333236)
@@ -38,10 +38,6 @@
 #include <stdio.h>
 #include <zlib.h>
 
-#ifndef WITHOUT_FASTMATCH
-#include "fastmatch.h"
-#endif
-
 #ifdef WITHOUT_NLS
 #define        getstr(n)        errstr[n]
 #else
@@ -131,9 +127,6 @@ extern unsigned int dpatterns, fpatterns, patterns;
 extern struct pat *pattern;
 extern struct epat *dpattern, *fpattern;
 extern regex_t *er_pattern, *r_pattern;
-#ifndef WITHOUT_FASTMATCH
-extern fastmatch_t *fg_pattern;
-#endif
 
 /* For regex errors  */
 #define        RE_ERROR_BUF    512

Modified: head/usr.bin/grep/util.c
==============================================================================
--- head/usr.bin/grep/util.c    Fri May  4 01:36:49 2018        (r333235)
+++ head/usr.bin/grep/util.c    Fri May  4 03:13:25 2018        (r333236)
@@ -52,9 +52,6 @@ __FBSDID("$FreeBSD$");
 #include <wchar.h>
 #include <wctype.h>
 
-#ifndef WITHOUT_FASTMATCH
-#include "fastmatch.h"
-#endif
 #include "grep.h"
 
 static bool     first_match = true;
@@ -512,14 +509,8 @@ procline(struct parsec *pc)
                                r = litexec(&pattern[i], pc->ln.dat, 1, 
&pmatch);
                        else
 #endif
-#ifndef WITHOUT_FASTMATCH
-                       if (fg_pattern[i].pattern)
-                               r = fastexec(&fg_pattern[i],
-                                   pc->ln.dat, 1, &pmatch, leflags);
-                       else
-#endif
-                               r = regexec(&r_pattern[i], pc->ln.dat, 1,
-                                   &pmatch, leflags);
+                       r = regexec(&r_pattern[i], pc->ln.dat, 1, &pmatch,
+                           leflags);
                        if (r != 0)
                                continue;
                        /* Check for full match */
@@ -527,11 +518,7 @@ procline(struct parsec *pc)
                            (size_t)pmatch.rm_eo != pc->ln.len))
                                continue;
                        /* Check for whole word match */
-#ifndef WITHOUT_FASTMATCH
-                       if (wflag || fg_pattern[i].word) {
-#else
                        if (wflag) {
-#endif
                                wbegin = wend = L' ';
                                if (pmatch.rm_so != 0 &&
                                    sscanf(&pc->ln.dat[pmatch.rm_so - 1],
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to