On Fri, Dec 16, 2022 at 3:09 PM Junio C Hamano <gitster@xxxxxxxxx> wrote: > > Mathias Krause <minipli@xxxxxxxxxxxxxx> writes: > > > ... However, from a user's point of view a fall back to > > interpreter mode might still be desired in this case, as a failing > > 'git grep' is simply not acceptable, IMHO. > > "git grep" that silently produces a wrong result (by falling back > after a problem is detected) would not be acceptable, either. except that an error at this point only invalidates the use of JIT, so calling pcre2_jit_match() is invalid but calling pcre2_match() is not. the later is setup to be used later by the code that is added, > Receiving BADOPTION could be a sign that there is something wrong in > the input, not from the end-user but from the code, in which case > stopping with BUG() may be a more appropriate? The way PCRE handles this kind of errors internally is to instruct pcre2_match() to use the interpreter. While a BUG() might be a way to ensure the code is using the right set of options I would expect that the failure will be reported by pcre2_compile instead, with the only cases left, only being interna to PCRE (ex: JIT can't yet support a feature the interpreter has) Carlo