[Pcre-svn] [1706] code/trunk: Final file tidies for 8.41 rel…

Top Page
Delete this message
Author: Subversion repository
Date:  
To: pcre-svn
Subject: [Pcre-svn] [1706] code/trunk: Final file tidies for 8.41 release.
Revision: 1706
          http://vcs.pcre.org/viewvc?view=rev&revision=1706
Author:   ph10
Date:     2017-07-05 16:45:39 +0100 (Wed, 05 Jul 2017)
Log Message:
-----------
Final file tidies for 8.41 release.


Modified Paths:
--------------
    code/trunk/ChangeLog
    code/trunk/configure.ac
    code/trunk/doc/html/pcrejit.html
    code/trunk/doc/pcre.txt


Modified: code/trunk/ChangeLog
===================================================================
--- code/trunk/ChangeLog    2017-07-05 10:29:42 UTC (rev 1705)
+++ code/trunk/ChangeLog    2017-07-05 15:45:39 UTC (rev 1706)
@@ -4,7 +4,7 @@
 Note that the PCRE 8.xx series (PCRE1) is now in a bugfix-only state. All
 development is happening in the PCRE2 10.xx series.


-Version 8.41 13-June-2017
+Version 8.41 05-July-2017
-------------------------

1. Fixed typo in CMakeLists.txt (wrong number of arguments for

Modified: code/trunk/configure.ac
===================================================================
--- code/trunk/configure.ac    2017-07-05 10:29:42 UTC (rev 1705)
+++ code/trunk/configure.ac    2017-07-05 15:45:39 UTC (rev 1706)
@@ -10,8 +10,8 @@


m4_define(pcre_major, [8])
m4_define(pcre_minor, [41])
-m4_define(pcre_prerelease, [-RC1])
-m4_define(pcre_date, [2017-06-13])
+m4_define(pcre_prerelease, [])
+m4_define(pcre_date, [2017-07-05])

# 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.

Modified: code/trunk/doc/html/pcrejit.html
===================================================================
--- code/trunk/doc/html/pcrejit.html    2017-07-05 10:29:42 UTC (rev 1705)
+++ code/trunk/doc/html/pcrejit.html    2017-07-05 15:45:39 UTC (rev 1706)
@@ -82,8 +82,9 @@
 than 8.20, but you want to use JIT when it is available, you can test the
 values of PCRE_MAJOR and PCRE_MINOR, or the existence of a JIT macro such as
 PCRE_CONFIG_JIT, for compile-time control of your code. Also beware that the
-<b>pcre_jit_exec()</b> function was not available before 8.32. See "JIT FAST
-PATH API" section below for details.
+<b>pcre_jit_exec()</b> function was not available at all before 8.32,
+and may not be available at all if PCRE isn't compiled with
+--enable-jit. See the "JIT FAST PATH API" section below for details.
 </P>
 <br><a name="SEC4" href="#TOC1">SIMPLE USE OF JIT</a><br>
 <P>
@@ -121,6 +122,20 @@
   PCRE_STUDY_JIT_PARTIAL_HARD_COMPILE
   PCRE_STUDY_JIT_PARTIAL_SOFT_COMPILE
 </pre>
+If using <b>pcre_jit_exec()</b> and supporting a pre-8.32 version of
+PCRE, you can insert:
+<pre>
+   #if PCRE_MAJOR &#62;= 8 && PCRE_MINOR &#62;= 32
+   pcre_jit_exec(...);
+   #else
+   pcre_exec(...)
+   #endif
+</pre>
+but as described in the "JIT FAST PATH API" section below this assumes
+version 8.32 and later are compiled with --enable-jit, which may
+break.
+<br>
+<br>
 The JIT compiler generates different optimized code for each of the three
 modes (normal, soft partial, hard partial). When <b>pcre_exec()</b> is called,
 the appropriate code is run if it is available. Otherwise, the pattern is
@@ -436,6 +451,30 @@
 that old you must either use the slower <b>pcre_exec()</b>, or switch between
 the two codepaths by checking the values of PCRE_MAJOR and PCRE_MINOR.
 </P>
+<P>
+Due to an unfortunate implementation oversight, even in versions 8.32
+and later there will be no <b>pcre_jit_exec()</b> stub function defined
+when PCRE is compiled with --disable-jit, which is the default, and
+there's no way to detect whether PCRE was compiled with --enable-jit
+via a macro.
+</P>
+<P>
+If you need to support versions older than 8.32, or versions that may
+not build with --enable-jit, you must either use the slower
+<b>pcre_exec()</b>, or switch between the two codepaths by checking the
+values of PCRE_MAJOR and PCRE_MINOR.
+</P>
+<P>
+Switching between the two by checking the version assumes that all the
+versions being targeted are built with --enable-jit. To also support
+builds that may use --disable-jit either <b>pcre_exec()</b> must be
+used, or a compile-time check for JIT via <b>pcre_config()</b> (which
+assumes the runtime environment will be the same), or as the Git
+project decided to do, simply assume that <b>pcre_jit_exec()</b> is
+present in 8.32 or later unless a compile-time flag is provided, see
+the "grep: un-break building with PCRE &#62;= 8.32 without --enable-jit"
+commit in git.git for an example of that.
+</P>
 <br><a name="SEC12" href="#TOC1">SEE ALSO</a><br>
 <P>
 <b>pcreapi</b>(3)
@@ -451,7 +490,7 @@
 </P>
 <br><a name="SEC14" href="#TOC1">REVISION</a><br>
 <P>
-Last updated: 13 June 2017
+Last updated: 05 July 2017
 <br>
 Copyright &copy; 1997-2017 University of Cambridge.
 <br>


Modified: code/trunk/doc/pcre.txt
===================================================================
--- code/trunk/doc/pcre.txt    2017-07-05 10:29:42 UTC (rev 1705)
+++ code/trunk/doc/pcre.txt    2017-07-05 15:45:39 UTC (rev 1706)
@@ -8366,8 +8366,10 @@
        older than 8.20, but you want to use JIT when it is available, you  can
        test the values of PCRE_MAJOR and PCRE_MINOR, or the existence of a JIT
        macro such as PCRE_CONFIG_JIT, for compile-time control of  your  code.
-       Also  beware that the pcre_jit_exec() function was not available before
-       8.32. See "JIT FAST PATH API" section below for details.
+       Also  beware that the pcre_jit_exec() function was not available at all
+       before 8.32, and may not be available at all  if  PCRE  isn't  compiled
+       with  --enable-jit.  See  the  "JIT  FAST  PATH  API" section below for
+       details.



 SIMPLE USE OF JIT
@@ -8409,6 +8411,18 @@
          PCRE_STUDY_JIT_PARTIAL_HARD_COMPILE
          PCRE_STUDY_JIT_PARTIAL_SOFT_COMPILE


+       If using pcre_jit_exec() and supporting a pre-8.32 version of PCRE, you
+       can insert:
+
+          #if PCRE_MAJOR >= 8 && PCRE_MINOR >= 32
+          pcre_jit_exec(...);
+          #else
+          pcre_exec(...)
+          #endif
+
+       but  as described in the "JIT FAST PATH API" section below this assumes
+       version 8.32 and later are compiled with --enable-jit, which may break.
+
        The JIT compiler generates different optimized code  for  each  of  the
        three  modes  (normal, soft partial, hard partial). When pcre_exec() is
        called, the appropriate code is run if it is available. Otherwise,  the
@@ -8704,7 +8718,28 @@
        between  the  two  codepaths  by  checking the values of PCRE_MAJOR and
        PCRE_MINOR.


+       Due to an unfortunate implementation oversight, even in  versions  8.32
+       and  later  there will be no pcre_jit_exec() stub function defined when
+       PCRE is compiled with --disable-jit, which is the default, and  there's
+       no  way  to  detect  whether  PCRE was compiled with --enable-jit via a
+       macro.


+       If you need to support versions older than 8.32, or versions  that  may
+       not   build   with   --enable-jit,  you  must  either  use  the  slower
+       pcre_exec(), or switch between the two codepaths by checking the values
+       of PCRE_MAJOR and PCRE_MINOR.
+
+       Switching  between the two by checking the version assumes that all the
+       versions being targeted are built with --enable-jit.  To  also  support
+       builds that may use --disable-jit either pcre_exec() must be used, or a
+       compile-time check for JIT via pcre_config() (which assumes the runtime
+       environment  will  be  the  same), or as the Git project decided to do,
+       simply assume that pcre_jit_exec() is present in 8.32 or later unless a
+       compile-time  flag  is  provided, see the "grep: un-break building with
+       PCRE >= 8.32 without --enable-jit" commit in git.git for an example  of
+       that.
+
+
 SEE ALSO


        pcreapi(3)
@@ -8719,7 +8754,7 @@


REVISION

-       Last updated: 13 June 2017
+       Last updated: 05 July 2017
        Copyright (c) 1997-2017 University of Cambridge.
 ------------------------------------------------------------------------------