[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: SableCC hangs when 'compiling' a grammar

On Tue, 22 May 2001, Etienne M. Gagnon wrote:

> "Etienne M. Gagnon" wrote:
> > main:
> >   [1] java.util.Vector.elementAt (Vector.java:419)
> >   [2] org.sablecc.sablecc.DFA.match (DFA.java:96)
> There is no reason why SableCC should still be using "Vector", as it is
> "synchonized" and SableCC is not meant to be multithreaded.  I think the
> Collection API provides an ArrayList (or something similar) which
> provides the functionality of Vector, but without synchronization.
> I haven't fixed this because I don't have the time to do it.  If you
> want (or anybody else) to implement this modification, please free to do
> so using the current CVS snapshot.(See http://sf.net/projects/sablecc/).


I have just moved all the dependencies from synchronized Vectors to
not synchronized Lists (ArrayList). Seems to compile examples a little
faster, but I do not have any numerical statistics. Code is in CVS, I have
run tests on all the grammars we have and it works ok.

> Maybe this could get you past the VM bug (if it is really a bug related
> to locks).

I have run the "new" version of SableCC on this test grammar, and
unfortunatelly the problem is not fixed. Normally I am getting OutOfMemory
exception, and with the increased memory for Java and gc verbose I am

<AF[32]: Allocation Failure. need 96 bytes, 9299 ms since last AF>
<AF[32]: managing allocation failure, action=1 (0/234421240) (3145728/3145728)>
<GC: Wed May 23 10:20:55 2001

and my JVM freezes in here. I am using Java(TM) 2 Runtime Environment,
Standard Edition (build 1.3.0) Classic VM (build 1.3.0, J2RE 1.3.0 IBM
build cx130-20010329 (JIT enabled: jitc))

The problematic thing is that it freezes after consuming about 400 MB of
memory (I have 512MB together RAM+swap), which means whatever it is, it is
really memory consuming thing ;o)   To make sure that something is wrong,
would be good to run it on a machine with >1GB of virtual memory ;o)

best regards