This is the mail archive of the kawa@sourceware.org mailing list for the Kawa project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Kawa 1.13 compilation problem, possible regression


On 02/04/2013 01:23 PM, Per Bothner wrote:
I was not able to compile the scheme part of the Kawa project because
the compiler is getting out of Heap Space when trying to compile the
file `gui.scm`.
....
(compiling XML.scm to gnu.kawa.slib.XML)
(compiling XStrings.scm to gnu.kawa.slib.XStrings)
(compiling gui.scm to gnu.kawa.slib.gui)
gui.scm:152: internal error while compiling gui.scm
java.lang.OutOfMemoryError: Java heap space
         at java.util.Arrays.copyOf(Arrays.java:2760)
         at java.util.Arrays.copyOf(Arrays.java:2734)
         at java.util.ArrayList.ensureCapacity(ArrayList.java:167)
         at java.util.ArrayList.addAll(ArrayList.java:474)
         at gnu.expr.PushApply.forkNext(PushApply.java:276)
         at gnu.expr.PushApply.forkPop(PushApply.java:284)
         at gnu.expr.PushApply.visitIfExp(PushApply.java:138)
         at gnu.expr.PushApply.visitIfExp(PushApply.java:23)

This is something I've seen but I haven't quite been able to
pin it down: Sometimes it seems a problem, but when I try to
narrow it down to when it happens, then it disappears.

However, I have a general idea how this can be fixed.  The idea
is to replace this data-structure:
   ArrayList<HashSet<LambdaExp>> canFinishCondition
by a Map<LambdaExp,IntNum>, where the IntNum result is a
bitmap of "paths that can finish".  I have reason to believe
this would behave better, but the devil is in the details.

I implemented this "inversion" of the data structures, and
it seems to solve the problem: Kawa doesn't run out of
heap space when setting a low value for -Xmx.
--
	--Per Bothner
per@bothner.com   http://per.bothner.com/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]