On 06/03/2010 18:43, Antoine Latter wrote:
On Sat, Mar 6, 2010 at 11:57 AM, Joachim Breitner<nomeata@xxxxxxxxxx> wrote:
in Debian, we are having some problems building large libraries (such as
agda, highlighting-kate, xmonad-contrib) on weaker architectures (sparc,
armel, s390) which compile with -fvia-C, especially when building the
In the case of highlighting-kate, there were really issues with the
code: A huge list of words which ghc seemed to try to inline caused it
consuming a lot of memory.
But in the case of agda, it even fails with relatively small modules:
Now, looking at the memory gauge on my computer while compiling such a
program with Cabal (which compiles all modules in one ghc call), it
looks like it is steadily increasing. Iâd expect ghc to free a lot of
memory when it is done with a module, but this does not seem to be the
Is this a bug (i.e. memory leak) in ghc or expected behavior?
Can you verify that it is GHC leaking memory, and not gcc? I recommend
turning off -fvia-C in particular unless you're sure that you need it.
It is expected that a --make compilation grows in memory over time,
since the compiler accumulates information about modules that it has
loaded. Having said that, it should not be retaining the entire
compiled code of each module, only its interface. It might be hard to
tell - in any case if you have an example where --make appears to be
retaining too much memory then you should submit it as a bug.
Is there a way to make Cabal build each module on its own?
not at the moment, sorry.
>> Are there any fixes or work-arounds?
You can try using GC settings, e.g. +RTS -M<size>. It might be a good
idea to set this using an environment variable, e.g. GHCRTS=-M<size>
where <size> is roughly equal to the amount of real memory on your machine.
Haskell-Cafe mailing list