[RFC] Replacing our regex implementation

David Schultz das at FreeBSD.ORG
Mon May 9 22:04:52 UTC 2011


On Sun, May 08, 2011, Bakul Shah wrote:
> On Sun, 08 May 2011 21:35:04 CDT Zhihao Yuan <lichray at gmail.com>  wrote:
> > 1. This lib accepts many popular grammars (PCRE, POSIX, vim, etc.),
> > but it does not allow you to change the mode.
> > http://code.google.com/p/re2/source/browse/re2/re2.h
> 
> The mode is decided when an RE2 object is instantiated so this
> is ok. You can certainly instantiate multiple objects with
> different options if so desired.
> 
> > 2. It focuses on speed and features, not stability and standardization.
> 
> Look at the open issues. Seems stable enough to me. re2 has a
> posix only mode. It also does unicode.
> 
> > 3. It uses C++. We seldom accepts C++ code in base system, and does
> > not accept it in libc.
> 
> This is the show stopper.

Use of C++ is a clear show-stopper if it introduces new runtime
requirements, e.g., dependencies on STL or exceptions.  Aside from
that, however, I can't think of any fundamental, technical reasons
why a component of libc couldn't be written in C++.  (Perhaps the
toolchain maintainers could name some, and they'd be the best
authority on the matter.)  You can expect some resistance
regardless, however, so make sure the technical merits of RE2 are
worth the trouble.

IIRC, some of the prior discussions on using more C++ in the base
system got derailed by tangents on multiple inheritance, operator
overloading, misfeatures of STL, and what subset of C++ ought to
be considered kosher in FreeBSD.  You don't have to get involved
in any of that because you'd only be proposing to import a
self-contained third-party library.


More information about the freebsd-hackers mailing list