From 90ae0ae01e0650afa37f3226eedda4d4a889d774 Mon Sep 17 00:00:00 2001 From: "Philip.Hazel" Date: Tue, 15 Oct 2019 15:23:31 +0000 Subject: [PATCH] Fix minor test issues and tidies/updates for 10.34-RC1 testing release. --- ChangeLog | 4 ++-- NEWS | 21 +++++++++++++++++++-- README | 8 ++++---- RunGrepTest | 4 ++-- configure.ac | 10 +++++----- doc/html/README.txt | 16 +++++++++------- doc/html/pcre2api.html | 2 +- doc/pcre2.txt | 2 +- maint/ManyConfigTests | 5 ++++- 9 files changed, 47 insertions(+), 25 deletions(-) diff --git a/ChangeLog b/ChangeLog index e5973c4..1bada0a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,8 +2,8 @@ Change Log for PCRE2 -------------------- -Version 10.34 22-April-2019 ---------------------------- +Version 10.34-RC1 15-October-2019 +--------------------------------- 1. The maximum number of capturing subpatterns is 65535 (documented), but no check on this was ever implemented. This omission has been rectified; it fixes diff --git a/NEWS b/NEWS index bd0df86..70a25ce 100644 --- a/NEWS +++ b/NEWS @@ -2,8 +2,25 @@ News about PCRE2 releases ------------------------- -Version 10.33-RC1 16-April-2019 -------------------------------- +Version 10.34 15-October-2019 +----------------------------- + +Another release with a few enhancements as well as bugfixes and tidies. The +main new features are: + +1. There is now some support for matching in invalid UTF strings. + +2. Non-atomic positive lookarounds are implemented in the pcre2_match() +interpreter, but not in JIT. + +3. Added two new functions: pcre2_get_match_data_size() and +pcre2_maketables_free(). + +4. Upgraded to Unicode 12.1.0. + + +Version 10.33 16-April-2019 +--------------------------- Yet more bugfixes, tidies, and a few enhancements, summarized here (see ChangeLog for the full list): diff --git a/README b/README index 329e856..8ce6f96 100644 --- a/README +++ b/README @@ -5,11 +5,11 @@ PCRE2 is a re-working of the original PCRE1 library to provide an entirely new API. Since its initial release in 2015, there has been further development of the code and it now differs from PCRE1 in more than just the API. There are new features and the internals have been improved. The latest release of PCRE2 is -always available in three alternative formats from: +available in three alternative formats from: - ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre2-xxx.tar.gz - ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre2-xxx.tar.bz2 - ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre2-xxx.zip +https://ftp.pcre.org/pub/pcre/pcre2-10.xx.tar.gz +https://ftp.pcre.org/pub/pcre/pcre2-10.xx.tar.bz2 +https://ftp.pcre.org/pub/pcre/pcre2-10.xx.tar.zip There is a mailing list for discussion about the development of PCRE (both the original and new APIs) at pcre-dev@exim.org. You can access the archives and diff --git a/RunGrepTest b/RunGrepTest index b6974a1..5b27da6 100755 --- a/RunGrepTest +++ b/RunGrepTest @@ -686,12 +686,12 @@ if [ $utf8 -ne 0 ] ; then echo "---------------------------- Test U4 ------------------------------" >>testtrygrep printf 'A\341\200\200\200CD\342\200\200Z\n' >testtemp1grep - (cd $srcdir; $valgrind $vjs $pcre2grep -u -o '....' testtemp1grep) >>testtrygrep 2>&1 + (cd $srcdir; $valgrind $vjs $pcre2grep -u -o '....' $builddir/testtemp1grep) >>testtrygrep 2>&1 echo "RC=$?" >>testtrygrep echo "---------------------------- Test U5 ------------------------------" >>testtrygrep printf 'A\341\200\200\200CD\342\200\200Z\n' >testtemp1grep - (cd $srcdir; $valgrind $vjs $pcre2grep -U -o '....' testtemp1grep) >>testtrygrep + (cd $srcdir; $valgrind $vjs $pcre2grep -U -o '....' $builddir/testtemp1grep) >>testtrygrep echo "RC=$?" >>testtrygrep $cf $srcdir/testdata/grepoutput8 testtrygrep diff --git a/configure.ac b/configure.ac index 170cde8..2e140c8 100644 --- a/configure.ac +++ b/configure.ac @@ -11,16 +11,16 @@ dnl be defined as -RC2, for example. For real releases, it should be empty. m4_define(pcre2_major, [10]) m4_define(pcre2_minor, [34]) m4_define(pcre2_prerelease, [-RC1]) -m4_define(pcre2_date, [2019-04-22]) +m4_define(pcre2_date, [2019-10-15]) # NOTE: The CMakeLists.txt file searches for the above variables in the first # 50 lines of this file. Please update that if the variables above are moved. # Libtool shared library interface versions (current:revision:age) -m4_define(libpcre2_8_version, [8:0:8]) -m4_define(libpcre2_16_version, [8:0:8]) -m4_define(libpcre2_32_version, [8:0:8]) -m4_define(libpcre2_posix_version, [2:2:0]) +m4_define(libpcre2_8_version, [9:0:9]) +m4_define(libpcre2_16_version, [9:0:9]) +m4_define(libpcre2_32_version, [9:0:9]) +m4_define(libpcre2_posix_version, [2:3:0]) AC_PREREQ(2.57) AC_INIT(PCRE2, pcre2_major.pcre2_minor[]pcre2_prerelease, , pcre2) diff --git a/doc/html/README.txt b/doc/html/README.txt index ff9a6af..8ce6f96 100644 --- a/doc/html/README.txt +++ b/doc/html/README.txt @@ -5,11 +5,11 @@ PCRE2 is a re-working of the original PCRE1 library to provide an entirely new API. Since its initial release in 2015, there has been further development of the code and it now differs from PCRE1 in more than just the API. There are new features and the internals have been improved. The latest release of PCRE2 is -always available in three alternative formats from: +available in three alternative formats from: - ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre2-xxx.tar.gz - ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre2-xxx.tar.bz2 - ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre2-xxx.zip +https://ftp.pcre.org/pub/pcre/pcre2-10.xx.tar.gz +https://ftp.pcre.org/pub/pcre/pcre2-10.xx.tar.bz2 +https://ftp.pcre.org/pub/pcre/pcre2-10.xx.tar.zip There is a mailing list for discussion about the development of PCRE (both the original and new APIs) at pcre-dev@exim.org. You can access the archives and @@ -164,9 +164,11 @@ library. They are also documented in the pcre2build man page. will be a compile time error. If in doubt, use --enable-jit=auto, which enables JIT only if the current hardware is supported. -. If you are enabling JIT under SELinux you may also want to add - --enable-jit-sealloc, which enables the use of an execmem allocator in JIT - that is compatible with SELinux. This has no effect if JIT is not enabled. +. If you are enabling JIT under SELinux environment you may also want to add + --enable-jit-sealloc, which enables the use of an executable memory allocator + that is compatible with SELinux. Warning: this allocator is experimental! + It does not support fork() operation and may crash when no disk space is + available. This option has no effect if JIT is disabled. . If you do not want to make use of the default support for UTF-8 Unicode character strings in the 8-bit library, UTF-16 Unicode character strings in diff --git a/doc/html/pcre2api.html b/doc/html/pcre2api.html index 7d18727..fc0d98c 100644 --- a/doc/html/pcre2api.html +++ b/doc/html/pcre2api.html @@ -3461,7 +3461,7 @@ capture groups and letters within \Q...\E quoted sequences. Note that case forcing sequences such as \U...\E do not nest. For example, the result of processing "\Uaa\LBB\Ecc\E" is "AAbbcc"; the final \E has no effect. Note also that the PCRE2_ALT_BSUX and PCRE2_EXTRA_ALT_BSUX options do -not apply to not apply to replacement strings. +not apply to replacement strings.

The second effect of setting PCRE2_SUBSTITUTE_EXTENDED is to add more diff --git a/doc/pcre2.txt b/doc/pcre2.txt index 6befb0b..b43a6d5 100644 --- a/doc/pcre2.txt +++ b/doc/pcre2.txt @@ -3345,7 +3345,7 @@ CREATING A NEW STRING WITH SUBSTITUTIONS Note that case forcing sequences such as \U...\E do not nest. For exam- ple, the result of processing "\Uaa\LBB\Ecc\E" is "AAbbcc"; the final \E has no effect. Note also that the PCRE2_ALT_BSUX and PCRE2_EX- - TRA_ALT_BSUX options do not apply to not apply to replacement strings. + TRA_ALT_BSUX options do not apply to replacement strings. The second effect of setting PCRE2_SUBSTITUTE_EXTENDED is to add more flexibility to capture group substitution. The syntax is similar to diff --git a/maint/ManyConfigTests b/maint/ManyConfigTests index 9784971..2d92dc5 100755 --- a/maint/ManyConfigTests +++ b/maint/ManyConfigTests @@ -28,6 +28,8 @@ # The -v option causes a call to 'pcre2test -C' to happen for each # configuration. +# Currently -fsanitize=undefined is not working (locks machine). + useasan=1 useusan=1 usedebug=1 @@ -293,9 +295,10 @@ if [ $ISGCC -ne 0 -a $usemain -ne 0 ]; then opts="--disable-shared $enable_jit --enable-pcre2-16 --enable-pcre2-32" runtest fi +# This also seems to be the case for sanitize undefined. if [ $useusan -ne 0 ]; then echo "------- Maximally configured test with -fsanitize=undefined -fno-sanitize=shift -fno-sanitize=alignment -std=gnu99 -------" - CFLAGS="$OFLAGS $SAVECFLAGS -fsanitize=undefined -fno-sanitize=shift -fno-sanitize=alignment -std=gnu99" + CFLAGS="$OFLAGS $SAVECFLAGS -no-pie -fno-PIE -fsanitize=undefined -fno-sanitize=shift -fno-sanitize=alignment -std=gnu99" echo "CFLAGS=$CFLAGS" opts="--disable-shared $enable_jit --enable-pcre2-16 --enable-pcre2-32" runtest