-
Notifications
You must be signed in to change notification settings - Fork 242
Description
I've asked before a few things (like the "NATIVE_ZOS" and VMS support). Those have stayed.
Here are a few more to consider:
-
CUSTOM_SUBJECT_PTR. The comments say it's never even been tested with PCRE2. Either I test it... or remove it without testing. It's not doing any good as it is (given it's highly unlikely to work).
-
The HAVE_MEMMOVE fallbacks. Really? We have raised our minimum compiler support to C99 in release 10.43, and for example some files now include a handful of
//comments. No-one has complained, so clearly we don't have customers with C89 compilers - or at least, we surely don't have any with pre-C89 compilers. The last systems without memmove were SunOS4 (1988) and BSD 4.3 (1990). Ever since BSD 4.4 (1992) and Solaris (also 1992), everyone has had memmove. It's mandated by C89.My suggestion is to remove the HAVE_MEMMOVE check from CMake and Autoconf. I guess we could keep the fallback code in one place, perhaps, but the customer would have to pass in "NO_MEMMOVE" explicitly (we wouldn't try and automatically detect this configuration).
Why do I care? Because I know that people take the source files from PCRE2 and put them in their own build systems. It's all pretty portable C99. The only caveat is that you need to know to pass in HAVE_MEMMOVE, or you get an old fallback. This is a burden that our build macros are imposing on actual modern systems. Better to invert HAVE_MEMMOVE to NO_MEMMOVE.
Or better still... just remove it?
-
The mentions of "UTF-21". There is no such thing. I can hardly find any record that it was even seriously proposed. If it was proposed, it never got very far. I don't think there ever has been or ever will be a UTF-21. GNU iconv has a ludicrous number of text encodings, but no UTF-21.