summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@gmail.com>2012-06-13 19:50:35 +0000
committerMorgan Deters <mdeters@gmail.com>2012-06-13 19:50:35 +0000
commit4b3ce37b3d5245d8827d04e4f459c32631083613 (patch)
tree61a4ab0e9c0d39656b02f668bfed4217b088ecb0 /config
parent0f0f135f98372e32dafb0e70aa918f92b57ae8c7 (diff)
Don't use the "inlined" feature of ANTLR 3.2, which causes a buffer overflow condition when reading from stdin. This should completely resolve bug #319.
However, on large inputs especially (like the stp/testcase benchmarks), this inlining feature can speed parsing by 5-10%, at the cost of not supporting interactive sessions on stdin (like in the SMT-COMP application track). So I updated the submission script and competition build so that * a competition build with antlr-inlining is built for the main and parallel tracks * a competition build without antlr-inlining is built for the application track Again, the effect is only when reading the stdin stream (but that's how SMT-COMP works). For normal (non-competition) builds, we need to support interactive sessions (from e.g. KIND) on stdin, so this inlining is off for all builds except main- and parallel-track competition builds. Also added a "get-antlr-3.4" script that automatically downloads and locally installs a copy of libantlr3c and the antlr parser generator inside the CVC4 source tree. Closing bug #319.
Diffstat (limited to 'config')
-rw-r--r--config/antlr.m414
1 files changed, 14 insertions, 0 deletions
diff --git a/config/antlr.m4 b/config/antlr.m4
index 18b2eff73..674feaed6 100644
--- a/config/antlr.m4
+++ b/config/antlr.m4
@@ -25,6 +25,14 @@ AC_DEFUN([AC_PROG_ANTLR], [
[No usable antlr3 script found. Make sure that the parser code has
been generated already. To obtain ANTLR see <http://www.antlr.org/>.]
)
+ ANTLR_VERSION=
+ else
+ ANTLR_VERSION="`$ANTLR -version 2>&1 | sed 's,.*\<Version *\([[0-9.]]*\).*,\1,'`"
+ case "$ANTLR_VERSION" in
+ 3.2|3.2.*) ANTLR_VERSION=3.2 ;;
+ 3.4|3.4.*) ANTLR_VERSION=3.4 ;;
+ *) AC_MSG_WARN([unknown version of antlr: $ANTLR_VERSION]);;
+ esac
fi
])
@@ -94,6 +102,9 @@ AC_DEFUN([AC_LIB_ANTLR],[
])],
[
AC_MSG_RESULT([found it (must be antlr3 3.2 or similar)])
+ if test -n "$ANTLR_VERSION" -a "$ANTLR_VERSION" != 3.2; then
+ AC_MSG_WARN([your antlr parser generator is version $ANTLR_VERSION, which doesn't match the library!])
+ fi
CVC4CPPFLAGS="${CVC4CPPFLAGS:+$CVC4CPPFLAGS }-DCVC4_ANTLR3_OLD_INPUT_STREAM"
],
[
@@ -111,6 +122,9 @@ AC_DEFUN([AC_LIB_ANTLR],[
])],
[
AC_MSG_RESULT([found it (must be antlr3 3.4 or similar)])
+ if test -n "$ANTLR_VERSION" -a "$ANTLR_VERSION" != 3.4; then
+ AC_MSG_WARN([your antlr parser generator is version $ANTLR_VERSION, which doesn't match the library!])
+ fi
],
[
AC_MSG_ERROR([cannot figure out how to create an antlr3 input stream, bailing..])
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback