Hi Naden, I was thinking about supporting them. However, the remaining ones are the most difficult ones.
callouts: JIT has a totally different internal representation that pcre_exec, and it cannot provide all values which pcre_exec can. However, we can define an own callout function for JIT, but that would require an API change. mark and skip: I will probably start with them after the 16 bit work is finished, they don't seem that difficult. apart from (*THEN), JIT probably can support all backtracking control verbs. (*ACCEPT) and (*FAIL) are already supported. Partial matching can also be supported, but through different study options. I am thinking about adding new options like: PCRE_STUDY_JIT_COMPILE_SOFT_PARTIAL, PCRE_STUDY_JIT_COMPILE_HARD_PARTIAL and you could combine them: pcre_study(..., PCRE_STUDY_JIT_COMPILE | PCRE_STUDY_JIT_COMPILE_SOFT_PARTIAL | PCRE_STUDY_JIT_COMPILE_HARD_PARTIAL, ...). This case the compilation would run 3 times, and you get 3 different machine code, one for normal match, one for soft, and another for partial match. Of course, if you need only one of them, you could specify only a single flag. pcre_exec would be clever enough to choose the appropriate function depending on the flags, and fallback if that particular function is not available. This also need (minor) API change, and I need to search for all end of buffer checks, but doesn't seem so difficult (at the moment xD) Regards, Zoltan ND <[email protected]> írta: >Hi, Zoltan!> > > Supporting OP_NCREF, OP_RREF and OP_NRREF by the JIT compiler> > It's significant step. But callouts and backtracking control verbs are > stay needed for complex data analyzing. Is there plans to support them in > JIT?> -- ## List details at https://lists.exim.org/mailman/listinfo/pcre-dev
