summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-12-03 07:55:54 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-12-03 07:55:54 +0000
commit59a8609a64ebb75cb4ba2f80b79f46ad597dd862 (patch)
treef533981e70f40f4a4da3a089ad75fcd81599ad56
parentb099d79ccc4a52634e35dd67c73d0c5439cb21ac (diff)
downloadruby-59a8609a64ebb75cb4ba2f80b79f46ad597dd862.tar.gz
ruby-59a8609a64ebb75cb4ba2f80b79f46ad597dd862.tar.xz
ruby-59a8609a64ebb75cb4ba2f80b79f46ad597dd862.zip
* configure.in (AC_PROG_YACC): AC_DEFINE(OLD_YACC) if Yacc is found
instead of Bison or byacc. * parse.y: If OLD_YACC is defined, ensure that YYMAXDEPTH is at least 10000 (Bison's default) since some old versions of Yacc define it as low as 150 by default, which is too low for Ruby to parse some files, such as date/format.rb. Among other issues, the parse problem causes "make test" to fail. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@5093 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog11
-rw-r--r--configure.in4
-rw-r--r--defines.h2
-rw-r--r--parse.y9
4 files changed, 25 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 0420ebd9e..bd5546e2f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -40,6 +40,17 @@ Tue Dec 2 21:31:42 2003 Nobuyoshi Nakada <nobu.nakada@nifty.ne.jp>
* test/runner.rb: exit with the test result.
+Tue Dec 2 20:18:48 2003 Eric Sunshine <sunshine@sunshineco.com>
+
+ * configure.in (AC_PROG_YACC): AC_DEFINE(OLD_YACC) if Yacc is found
+ instead of Bison or byacc.
+
+ * parse.y: If OLD_YACC is defined, ensure that YYMAXDEPTH is at least
+ 10000 (Bison's default) since some old versions of Yacc define it as
+ low as 150 by default, which is too low for Ruby to parse some files,
+ such as date/format.rb. Among other issues, the parse problem causes
+ "make test" to fail.
+
Tue Dec 2 20:03:20 2003 Minero Aoki <aamine@loveruby.net>
* test/fileutils/test_fileutils.rb: check if Pathnames are usable
diff --git a/configure.in b/configure.in
index a23831c5a..23149915e 100644
--- a/configure.in
+++ b/configure.in
@@ -157,6 +157,10 @@ AC_SUBST(OUTFLAG)
RUBY_MINGW32
AC_PROG_YACC
+if test "$YACC" = "yacc"; then
+ AC_DEFINE([OLD_YACC])
+fi
+
AC_CHECK_TOOL(RANLIB, ranlib, :)
AC_CHECK_TOOL(AR, ar)
if test -z "$AR"; then
diff --git a/defines.h b/defines.h
index ca7cd8e1e..6d9a7013c 100644
--- a/defines.h
+++ b/defines.h
@@ -180,7 +180,7 @@ flush_register_windows(void)
#define PATH_ENV "PATH"
#endif
-#if defined(DOSISH) && !defined(__human68k__)
+#if defined(DOSISH) && !defined(__human68k__) && !defined(__EMX__)
#define ENV_IGNORECASE
#endif
diff --git a/parse.y b/parse.y
index 79bdc15db..a2c21aa25 100644
--- a/parse.y
+++ b/parse.y
@@ -177,6 +177,15 @@ static void top_local_setup();
#define nd_paren(node) (char)((node)->u2.id >> CHAR_BIT*2)
#define nd_nest u3.id
+/* Older versions of Yacc set YYMAXDEPTH to a very low value by default (150,
+ for instance). This is too low for Ruby to parse some files, such as
+ date/format.rb, therefore bump the value up to at least Bison's default. */
+#ifdef OLD_YACC
+#ifndef YYMAXDEPTH
+#define YYMAXDEPTH 10000
+#endif
+#endif
+
%}
%union {