Re: [pcre-dev] 8.35 Release candidate available

Top Page
Delete this message
Author: Zoltán Herczeg
Date:  
To: Petr Pisar
CC: pcre-dev
Subject: Re: [pcre-dev] 8.35 Release candidate available
Hi Petr,

thank you very much for the testing! This is really a great help for us.

Could you try the MIPS-64 port as well?

You are the first one who actually has an ARM-64 hardware :) The developer branch of qemu A64 does not support all instructions, so it fails when SLJIT_CACHE_FLUSH is called with undefined instruction. I commented out these calls to run my code on quemu. Could you reenable them in sljitNativeARM_64.c (there are 3 of them) and rerun the tests? Just remove the /* */ around them.

Regards,
Zoltan

Petr Pisar <ppisar@???> írta:
>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
>--
>## List details at https://lists.exim.org/mailman/listinfo/pcre-dev