Subject: Re: [PATCH 22/25] Remove unused kwset.[ch]

From: Ævar Arnfjörð Bjarmason <[email-masked]>
Date: Wed, 03 Feb 2021 15:13:16 +0100

On Wed, Feb 03 2021, Carlo Arenas wrote:

> this is still being used in Linux without Glibc (ex: alpine or void that
> use musl), and other OS that rely on the compat layer by default for legacy
> reasons (ex: macOS and Windows) or where PCRE2 is not widely used/available
> (ex: OpenBSD, NetBSD)

Are you perhaps confusing kwset with NO_REGEX=1 and compat/regex/*? I
just say that because that's a common "Linux without Glibc" && musl
fallback.

The kwset is not a fallback, we use it unconditionally on all platforms
regardless of libc etc., until this series.

Anyway, as far as PCRE v2 and compatibility go there's no compatibility
concerns here we didn't address already & have in in-the-wild git
releases since Since 48de2a768c (grep: remove the kwset optimization,
2019-07-01) and b65abcafc7 (grep: use PCRE v2 for optimized fixed-string
search, 2019-07-01).

I.e. we haven't used kwset at all in the more commonly used grep code,
just C library regex + PCRE if it's available.

FWIW I think the commonly used packages on Windows and MacOS build with
PCRE v2, but that's just from memory, I don't use those myself.

> PS. hadn't yet tested this series, but thought it was a good idea to at
> least mention this as a FYI to make sure tradeoffs are well known and
> testing done as well.

Indeed, and a glance at the log & past list traffic shows we had a lot
of such portability fixes around pcre2 in the past.

But in this case we're just directing the pickaxe to use the existing
grep codepath, so I think we should be fine, sans small stuff like (sent
a reply to the cover letter about this) me screwing up shell portability
in the v1 etc.