On Fri, Mar 14, 2014 at 04:09:41PM +0000, ph10@??? wrote:
> A first release candidate for 8.35 is now available here:
[...]
> Please test as much as you can. The code has quite a few changes - as
> always, look in ChangeLog for details.
>
I performed tests on Linux with glibc with JIT enabled where supported with
following results:
PPC: passed
s390: passed
amd64: passed
PPC64: passed
i686: passed
s390x: passed
n32 MIPS64: passed
aarch64: failed
ARMv6j: passed
The aarch64 fails at two test suites:
(1) pcre_jit_test:
Running JIT regression tests
target CPU of SLJIT compiler: ARM-64 64bit (little endian + unaligned)
in 8 bit mode with UTF-8 enabled and ucp enabled:
in 16 bit mode with UTF-16 enabled and ucp enabled:
in 32 bit mode with UTF-32 enabled and ucp enabled:
............................................................
............................................................
............................................................
............................................................
............................................................
............................................................
............................................................
............................................................
................................................
8 and 16 bit: Ovector[0] value differs(J8:-4219968,I8:0,J16:-2164020,I16:0): [529] 'ab' @ 'a'
8 and 32 bit: Ovector[0] value differs(J8:-4219968,I8:0,J32:-1077914,I32:0): [529] 'ab' @ 'a'
16 and 16 bit: Ovector[0] value differs(J16:-2164020,I16:0,J32:-2164020,I32:0): [529] 'ab' @ 'a'
..
8 and 16 bit: Ovector[0] value differs(J8:-4219968,I8:0,J16:-2164020,I16:0): [532] '\b#' @ 'a'
8 and 32 bit: Ovector[0] value differs(J8:-4219968,I8:0,J32:-1077914,I32:0): [532] '\b#' @ 'a'
16 and 16 bit: Ovector[0] value differs(J16:-2164020,I16:0,J32:-2164020,I32:0): [532] '\b#' @ 'a'
8 and 16 bit: Ovector[0] value differs(J8:-4219968,I8:0,J16:-2164020,I16:0): [533] '(?<=a)b' @ 'a'
8 and 32 bit: Ovector[0] value differs(J8:-4219968,I8:0,J32:-1077914,I32:0): [533] '(?<=a)b' @ 'a'
16 and 16 bit: Ovector[0] value differs(J16:-2164020,I16:0,J32:-2164020,I32:0): [533] '(?<=a)b' @ 'a'
8 and 16 bit: Ovector[0] value differs(J8:-4223416,I8:2,J16:-2164020,I16:2): [534] 'abc|(?<=xxa)bc' @ 'xxab'
8 and 32 bit: Ovector[0] value differs(J8:-4223416,I8:2,J32:-1077914,I32:2): [534] 'abc|(?<=xxa)bc' @ 'xxab'
16 and 16 bit: Ovector[0] value differs(J16:-2164020,I16:2,J32:-2164020,I32:2): [534] 'abc|(?<=xxa)bc' @ 'xxab'
8 and 16 bit: Ovector[0] value differs(J8:-4219968,I8:0,J16:-2164020,I16:0): [535] 'a\B' @ 'a'
8 and 32 bit: Ovector[0] value differs(J8:-4219968,I8:0,J32:-1077914,I32:0): [535] 'a\B' @ 'a'
16 and 16 bit: Ovector[0] value differs(J16:-2164020,I16:0,J32:-2164020,I32:0): [535] 'a\B' @ 'a'
...........................
8 and 16 bit: Ovector[0] value differs(J8:-4219968,I8:0,J16:-2164020,I16:0): [563] 'a(*PRUNE)a|m' @ 'a'
8 and 32 bit: Ovector[0] value differs(J8:-4219968,I8:0,J32:-1077914,I32:0): [563] 'a(*PRUNE)a|m' @ 'a'
16 and 16 bit: Ovector[0] value differs(J16:-2164020,I16:0,J32:-2164020,I32:0): [563] 'a(*PRUNE)a|m' @ 'a'
..........................................
Successful test ratio: 99% (6 failed)
(2) RunTest gets aborted by glibc stack protector or segfaults:
PCRE C library tests using test data from ./testdata
PCRE version 8.35-RC1 2014-03-14
---- Testing 8-bit library ----
Test 1: Main functionality (Compatible with Perl >= 5.10)
OK
OK with study
./RunTest: line 425: 8914 Segmentation fault $sim $valgrind ./pcretest -q $bmode $opt $testdata/testinput1 testtry
This happens with the JIT mode (./pcretest -q -8 -s+ testdata/testinput2).
If I disable JIT, tests pass on aarch64.
Please do not consider the aarch64 tests seriously. The software (kernel,
glibc, GCC) and the hardware (emulator) are still changing.
-- Petr