Merge pull request #4814 from scriptum/rpg-pcre-jit

Enable JIT in PCRE to improve regular expressions performance
This commit is contained in:
Andreas Rumpf 2016-10-24 19:07:30 +02:00 • committed by GitHub
commit 3715a5ac91
2 changed files with 13 additions and 4 deletions

View file

@ -431,8 +431,12 @@ proc initRegex(pattern: string, flags: int, study = true): Regex =
raise SyntaxError(msg: $errorMsg, pos: errOffset, pattern: pattern)
if study:
# XXX investigate JIT
result.pcreExtra = pcre.study(result.pcreObj, 0x0, addr errorMsg)
var options: cint = 0
var hasJit: cint
if pcre.config(pcre.CONFIG_JIT, addr hasJit) == 0:
if hasJit == 1'i32:
options = pcre.STUDY_JIT_COMPILE
result.pcreExtra = pcre.study(result.pcreObj, options, addr errorMsg)
if errorMsg != nil:
raise StudyError(msg: $errorMsg)