Re: git diff looping?
- From
Andreas Ericsson <ae@op5.se>
- Date
- Jun 17, 2009, 11:31 UTC
- Message-ID
- <4A38D408.7000302@op5.se>
- In-Reply-To
- <20090617102332.GA32353@coredump.intra.peff.net>
Jeff King wrote:
Show 10 quoted lines
> > 3. Replace compat/regex with something faster. It still produces > exponential behavior in complex cases where glibc does not, and it > seems to be about 1/3 as fast on Paolo's regex. > > I haven't looked at how large or how portable the glibc > implementation is. Another alternative is that we could provide a > simple compat/ as now, and have better support for linking against > an external library like pcre, if it is available. >
The glibc implementation is quite large. Cutting the library-specific cruft it still sits at about 10k LOC.
Using PCRE is a no-go, as it uses perl-compatible regexes even for the posix-compatible API, as per pcreposix(3):
When PCRE is called via these functions, it is only the API that is
POSIX-like in style. The syntax and semantics of the regular expres-
sions themselves are still those of Perl, subject to the setting of
various PCRE options, as described below. "POSIX-like in style" means
that the API approximates to the POSIX definition; it is not fully
POSIX-compatible, and in multi-byte encoding domains it is probably
even less compatible.This would probably surprise some "git grep" users quite a lot, I think.
I like your other two suggestions though. The stuff already in compat/ seems to work well enough, so with Paolo's improved pattern it should be fine.
-- Andreas Ericsson andreas.ericsson@op5.se OP5 AB www.op5.se Tel: +46 8-230225 Fax: +46 8-230231 Considering the successes of the wars on alcohol, poverty, drugs and terror, I think we should give some serious thought to declaring war on peace.