PCRE2_JIT_COMPILE(3) Introduction to Library Functions PCRE2_JIT_COMPILE(3)

NAME


PCRE2 - Perl-compatible regular expressions (revised API)

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_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.

PCRE2 10.45 22 August 2024 PCRE2_JIT_COMPILE(3)

tribblix@gmail.com :: GitHub :: Privacy