|
NAME | SYNOPSIS | DESCRIPTION | COLOPHON |
|
|
|
PCRE2_JIT_COMPILE(3) Library Functions Manual PCRE2_JIT_COMPILE(3)
PCRE2 - Perl-compatible regular expressions (revised API)
#include <pcre2.h>
int pcre2_jit_compile(pcre2_code *code, uint32_t options);
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_compile_jit() 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:
PCRE2_JIT_COMPLETE compile code for full matching
PCRE2_JIT_PARTIAL_SOFT compile code for soft partial matching
PCRE2_JIT_PARTIAL_HARD compile code for hard partial matching
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.
This page is part of the PCRE (Perl Compatible Regular
Expressions) project. Information about the project can be found
at ⟨http://www.pcre.org/⟩. If you have a bug report for this
manual page, see
⟨http://bugs.exim.org/enter_bug.cgi?product=PCRE⟩. This page was
obtained from the tarball fetched from
⟨https://github.com/PhilipHazel/pcre2.git⟩ on 2025-08-11. If you
discover any rendering problems in this HTML version of the page,
or you believe there is a better or more up-to-date source for the
page, or you have corrections or improvements to the information
in this COLOPHON (which is not part of the original manual page),
send a mail to [email protected]
PCRE2 10.46-DEV 22 August 2024 PCRE2_JIT_COMPILE(3)