Re: [pcre-dev] 8.33-RC1 is available for testing

Page principale
Supprimer ce message
Auteur: Petr Pisar
Date:  
À: pcre-dev
Sujet: Re: [pcre-dev] 8.33-RC1 is available for testing
On Wed, May 01, 2013 at 05:51:40PM +0100, ph10@??? wrote:
> I have put a release candidate for the 8.33 release here:
>

This release is not good. Tests fail on 64-bit PowerPC (they pass on 32-bit
PowerPC):

pcre-8.33-RC1 configuration summary:

    Install prefix .................. : /usr
    C preprocessor .................. : gcc -E
    C compiler ...................... : gcc
    C++ preprocessor ................ : g++ -E
    C++ compiler .................... : g++
    Linker .......................... : /usr/bin/ld -m elf64ppc
    C preprocessor flags ............ :
    C compiler flags ................ : -pthread -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4  -m64 -fvisibility=hidden
    C++ compiler flags .............. : -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4  -m64 -fvisibility=hidden -fvisibility-inlines-hidden
    Linker flags .................... : -Wl,-z,relro
    Extra libraries ................. :


    Build 8 bit pcre library ........ : yes
    Build 16 bit pcre library ....... : yes
    Build 32 bit pcre library ....... : yes
    Build C++ library ............... : yes
    Enable JIT compiling support .... : yes
    Enable UTF-8/16/32 support ...... : yes
    Unicode properties .............. : yes
    Newline char/sequence ........... : lf
    \R matches only ANYCRLF ......... : no
    EBCDIC coding ................... : no
    EBCDIC code for NL .............. : n/a
    Rebuild char tables ............. : no
    Use stack recursion ............. : yes
    POSIX mem threshold ............. : 10
    Internal link size .............. : 2
    Match limit ..................... : 10000000
    Match limit recursion ........... : MATCH_LIMIT
    Build shared libs ............... : yes
    Build static libs ............... : yes
    Use JIT in pcregrep ............. : yes
    Buffer size for pcregrep ........ : 20480
    Link pcregrep with libz ......... : no
    Link pcregrep with libbz2 ....... : no
    Link pcretest with libedit ...... : no
    Link pcretest with libreadline .. : yes
    Valgrind support ................ : no
    Code coverage ................... : no
[...]
PCRE C library tests using test data from ./testdata
PCRE version 8.33-RC1 2013-04-28


---- Testing 8-bit library ----

Test 1: Main functionality (Compatible with Perl >= 5.10)
  OK
  OK with study
  OK with JIT study
Test 2: API, errors, internals, and non-Perl stuff (not UTF-8)
--- ./testdata/testoutput2      2013-04-24 08:07:18.000000000 -0400
+++ testtry     2013-05-02 10:03:41.919693185 -0400
@@ -12582,7 +12582,7 @@


/(*LIMIT_RECURSION=4294967280)abc/I
Capturing subpattern count = 0
-Recursion limit = 4294967280
+Recursion limit = 0
No options
First char = 'a'
Need char = 'c'
@@ -12599,7 +12599,7 @@

/(*LIMIT_MATCH=3000)(a+)*zz/I
Capturing subpattern count = 1
-Match limit = 3000
+Match limit = 0
No options
No first char
Need char = 'z'
@@ -12610,7 +12610,7 @@

/(*LIMIT_MATCH=60000)(*LIMIT_MATCH=3000)(a+)*zz/I
Capturing subpattern count = 1
-Match limit = 3000
+Match limit = 0
No options
No first char
Need char = 'z'
@@ -12619,7 +12619,7 @@

/(*LIMIT_MATCH=60000)(a+)*zz/I
Capturing subpattern count = 1
-Match limit = 60000
+Match limit = 0
No options
No first char
Need char = 'z'
@@ -12630,7 +12630,7 @@

/(*LIMIT_RECURSION=10)(a+)*zz/IS-
Capturing subpattern count = 1
-Recursion limit = 10
+Recursion limit = 0
No options
No first char
Need char = 'z'
@@ -12643,7 +12643,7 @@

/(*LIMIT_RECURSION=10)(*LIMIT_RECURSION=1000)(a+)*zz/IS-
Capturing subpattern count = 1
-Recursion limit = 10
+Recursion limit = 0
No options
No first char
Need char = 'z'
@@ -12654,7 +12654,7 @@

/(*LIMIT_RECURSION=1000)(a+)*zz/IS-
Capturing subpattern count = 1
-Recursion limit = 1000
+Recursion limit = 0
No options
No first char
Need char = 'z'
FAIL: RunTest

Testing pcregrep version 8.33-RC1 2013-04-28
Testing pcregrep main features
Testing pcregrep UTF-8 features
Testing pcregrep newline settings
PASS: RunGrepTest
===================
1 of 6 tests failed
===================

It seems like the match limit is not stored properly.

Also I get these compiler warnings on 64-bit PowerPC only (but that's not
a regression and I reported them before):

  CC       libpcre_la-pcre_tables.lo
pcre_jit_compile.c: In function 'compile_ref_matchingpath':
pcre_jit_compile.c:5138:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
pcre_jit_compile.c: In function 'compile_callout_matchingpath':
pcre_jit_compile.c:5489:1: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
pcre_jit_compile.c: In function 'compile_bracket_matchingpath':
pcre_jit_compile.c:6463:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
pcre_jit_compile.c:6513:7: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
pcre_jit_compile.c: In function 'compile_control_verb_backtrackingpath':
pcre_jit_compile.c:8530:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
pcre_jit_compile.c: In function '_pcre_jit_compile':
pcre_jit_compile.c:9308:1: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]


The tests do not pass on S390x too, but there are no warnings because JIT is
not enabled on S390x. Both are 64-bit big-endian machines.

-- Petr