rurban / re-engine-PCRE2

use pcre-jit instead of slow perl regex

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

remaining core test failures

rurban opened this issue · comments

check core-test failures, esp. /g anchor failures, and locale posix tables on some
platforms. e.g. [:digit:] with pure ascii fails on travis.

see @pcre_fail in t/perl/regexp.t

About 95% of all core tests and cpan modules do work with re::engine::PCRE2.

As of 0.04 the following core regression tests still fail:

    perl -C -Mblib t/perl/regexp.t | grep -a TODO

    301: '^'i:ABC:y:$&: => `'', match=
    353: '(a+|b){0,1}?'i:AB:y:$&-$1:- => `A-A', match=1
    357: 'a*'i::y:$&: => `'', match=
    497: a(?{"{"})b:-:c:-:Sequence (?{...}) not terminated or not {}-balanced => `-', match=
    589:(utf8::upgrade($subject)) ([[:^alnum:]]+):ABcd01Xy__--  ${nulnul}${ffff}:y:$1:__--  ${nulnul}${ffff} => `__--  \0\0ÿÿ', match=1
    590:(utf8::upgrade($subject)) ([[:^ascii:]]+):ABcd01Xy__--  ${nulnul}${ffff}:y:$1:${ffff} => `ÿÿ', match=1
    594:(utf8::upgrade($subject)) ([[:^print:]]+):ABcd01Xy__--  ${nulnul}${ffff}:y:$1:${nulnul}${ffff} => `\0\0ÿÿ', match=1
    597:(utf8::upgrade($subject)) ([[:^word:]]+):ABcd01Xy__--  ${nulnul}${ffff}:y:$1:--  ${nulnul}${ffff} => `--  \0\0ÿÿ', match=1
    599:(utf8::upgrade($subject)) ([[:^xdigit:]]+):ABcd01Xy__--  ${nulnul}${ffff}:y:$1:Xy__--  ${nulnul}${ffff} => `Xy__--  \0\0ÿÿ', match=1
    606: a{37,17}:-:c:-:Can't do {n,m} with n > m => `-', match=
    813:.X(.+)+X:bbbbXcXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:y:-:- => error `PCRE2 error -47'
    814:.X(.+)+XX:bbbbXcXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:y:-:- => error `PCRE2 error -47'
    815:.XX(.+)+X:bbbbXXcXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:y:-:- => error `PCRE2 error -47'
    816:.X(.+)+X:bbbbXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:n:-:- => error `PCRE2 error -47'
    817:.X(.+)+XX:bbbbXXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:n:-:- => error `PCRE2 error -47'
    818:.XX(.+)+X:bbbbXXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:n:-:- => error `PCRE2 error -47'
    819:.X(.+)+[X]:bbbbXcXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:y:-:- => error `PCRE2 error -47'
    820:.X(.+)+[X][X]:bbbbXcXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:y:-:- => error `PCRE2 error -47'
    821:.XX(.+)+[X]:bbbbXXcXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:y:-:- => error `PCRE2 error -47'
    822:.X(.+)+[X]:bbbbXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:n:-:- => error `PCRE2 error -47'
    823:.X(.+)+[X][X]:bbbbXXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:n:-:- => error `PCRE2 error -47'
    824:.XX(.+)+[X]:bbbbXXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:n:-:- => error `PCRE2 error -47'
    825:.[X](.+)+[X]:bbbbXcXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:y:-:- => error `PCRE2 error -47'
    826:.[X](.+)+[X][X]:bbbbXcXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:y:-:- => error `PCRE2 error -47'
    827:.[X][X](.+)+[X]:bbbbXXcXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:y:-:- => error `PCRE2 error -47'
    828:.[X](.+)+[X]:bbbbXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:n:-:- => error `PCRE2 error -47'
    829:.[X](.+)+[X][X]:bbbbXXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:n:-:- => error `PCRE2 error -47'
    830:.[X][X](.+)+[X]:bbbbXXXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:n:-:- => error `PCRE2 error -47'
    867: ^(a(b)?)+$:aba:y:-$1-$2-:-a-- => `-a-b-', match=1
    868: ^(aa(bb)?)+$:aabbaa:y:-$1-$2-:-aa-- => `-aa-bb-', match=1
    873: ^(a\1?){4}$:aaaaaa:y:$1:aa => `', match=
    931:(??{}):x:y:-:- => error `Eval-group not allowed at runtime, use re 'eval' in regex m/(??{})/ at (eval 5345) line 2.'
    1021: ^(<(?:[^<>]+|(?3)|(?1))*>)()(!>!>!>)$:<<!>!>!>><>>!>!>!>:y:$1:<<!>!>!>><>> => `', match=
    1051: /^(?'main'<(?:[^<>]+|(?&crap)|(?&main))*>)(?'empty')(?'crap'!>!>!>)$/:<<!>!>!>><>>!>!>!>:y:$+{main}:<<!>!>!>><>> => `', match=
    1291:(utf8::upgrade($subject)) foo(\R+)bar:foo\r
    1293:(utf8::upgrade($subject)) (\R+)(\V):foo\r
    1294:(utf8::upgrade($subject)) foo(\R)bar:foo\x{85}bar:y:$1:\x{85} => `', match=
    1295:(utf8::upgrade($subject)) (\V)(\R):foo\x{85}bar:y:$1-$2:o-\x{85} => `Â-�', match=1
    1307:(utf8::upgrade($subject)) foo(\v+)bar:foo\r
    1309:(utf8::upgrade($subject)) (\v+)(\V):foo\r
    1310:(utf8::upgrade($subject)) foo(\v)bar:foo\x{85}bar:y:$1:\x{85} => `', match=
    1311:(utf8::upgrade($subject)) (\V)(\v):foo\x{85}bar:y:$1-$2:o-\x{85} => `Â-�', match=1
    1318:(utf8::upgrade($subject)) foo(\h+)bar:foo\t\x{A0}bar:y:$1:\t\x{A0} => `', match=
    1320:(utf8::upgrade($subject)) (\h+)(\H):foo\t\x{A0}bar:y:$1-$2:\t\x{A0}-b => `	-Â', match=1
    1321:(utf8::upgrade($subject)) foo(\h)bar:foo\x{A0}bar:y:$1:\x{A0} => `', match=
    1322:(utf8::upgrade($subject)) (\H)(\h):foo\x{A0}bar:y:$1-$2:o-\x{A0} => `Â- ', match=1