diff options
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | configure.in | 4 | ||||
-rw-r--r-- | defines.h | 2 | ||||
-rw-r--r-- | parse.y | 9 |
4 files changed, 25 insertions, 1 deletions
@@ -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 a23831c5a5..23149915e4 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 @@ -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 @@ -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 { |