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