pcre2_jit_compile
Name
pcre2_jit_compile - process a compiled pattern with the JIT compiler
Synopsis
#include <pcre2.h>
int pcre2_jit_compile(pcre2_code *code, uint32_t options);Description
This function requests JIT compilation, which, if the just-in-time compiler is
available, further processes a compiled pattern into machine code that executes
much faster than the pcre2_match() interpretive matching function. Full
details are given in the
pcre2jit
documentation.
The availability of JIT support can be tested by calling
pcre2_jit_compile() with a single option PCRE2_JIT_TEST_ALLOC (the
code argument is ignored, so a NULL value is accepted). Such a call
returns zero if JIT is available and has a working allocator. Otherwise
it returns PCRE2_ERROR_NOMEMORY if JIT is available but cannot allocate
executable memory, or PCRE2_ERROR_JIT_UNSUPPORTED if JIT support is not
compiled.
Otherwise, the first argument must be a pointer that was returned by a
successful call to pcre2_compile(), and the second must contain one or
more of the following bits:
There is also an obsolete option called PCRE2_JIT_INVALID_UTF, which has been
superseded by the pcre2_compile() option PCRE2_MATCH_INVALID_UTF. The old
option is deprecated and may be removed in the future.
The yield of the function when called with any of the three options above is 0
for success, or a negative error code otherwise. In particular,
PCRE2_ERROR_JIT_BADOPTION is returned if JIT is not supported or if an unknown
bit is set in options. The function can also return PCRE2_ERROR_NOMEMORY
if JIT is unable to allocate executable memory for the compiler, even if it was
because of a system security restriction. In a few cases, the function may
return with PCRE2_ERROR_JIT_UNSUPPORTED for unsupported features.
There is a complete description of the PCRE2 native API in the
pcre2api
page and a description of the POSIX API in the
pcre2posix
page.