[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: MAXTABLE & Serious issues with bison 1.30
From: |
Tim Van Holder |
Subject: |
Re: MAXTABLE & Serious issues with bison 1.30 |
Date: |
03 Jan 2002 12:50:58 +0100 |
On Thu, 2002-01-03 at 11:19, Akim Demaille wrote:
> >>>>> "Akim" == Akim Demaille <address@hidden> writes:
>
> Akim> Sorry, I was pretty unclear: I meant what Bison limit is hit?
> Akim> Number of rules, number of items, number of symbols, number of
> Akim> gotos etc. But you seem to have given a grammar, I'll have a
> Akim> look myself, thanks!
>
> Well, CVS Bison seems to be OK with it :)
>
> ~/src/bison-exp % LANG=C tests/bison /tmp/i4gl.y nostromo Err
> 1
> /tmp/i4gl.y contains 31 useless nonterminals and 52 useless rules
> /tmp/i4gl.y contains 1059 shift/reduce conflicts and 617 reduce/reduce
> conflicts.
Yes, but now try with 'bison -d'; plain bison did work with 1.30 as
well. IIRC CVS bison also crashed with -k or -t (not sure which).
It seems to be pretty rare (other grammars I tried had no such problem),
so my guess is that this grammar's utter crappyness is somehow
triggering rare behavior.
> /tmp/i4gl.y:4110: fatal error: maximum table size (32767) exceeded
>
> Wow, it is a limitation I had never seen hit before:
Neither did I.
> We are in trouble... OTOH, since you seem to say doubling is enough,
> we might be OK just by moving to unsigned.
I thought loc was an int (but I could be wrong). Another option would
be to make MAXTABLE a variable, and double this (followed by a realloc
of the two or three relevant arrays) if needed. This would allow for
(probably rare) grammars that need even more than 64K.
> Are you in a hurry?
Not particularly; we're only using this grammar (it's from the aubit4gl
project on sourceforge, it seems) as a starting point for writing our
own, so getting this one to work isn't a high priority.
> How was this grammar handled before?
You mean bison flags? We usually use 'bison -dkvt'
> ~/src/bison-1.29 % tests/bison /tmp/i4gl.y nostromo
> 11:17
> /tmp/i4gl.y contient 31 useless nonterminals et 52 useless rules
non-terminaux inutils/re`gles inutiles (*)
> /tmp/i4gl.y contient 1059 shift/reduce conflicts and 617 reduce/reduce
> conflicts.
conflits de shifter/reduire (*)
(*) Ok, so my French isn't great either :-)