I just wanted to report that the erroneous and tiny
program added below can not be compiled within 6MB of
heap (Admitted it can be compiled with a bigger heap).
It was part of a bigger program that could not be
compiled within 20MB of heap.
Regards,
Marc van Dongen
[EMAIL PROTECTED]
**********************************************************
ghc-2.02 -c tmp.lhs -H6M -K10M -recomp -v -fglasgow-exts -cpp -hi-diffs
-ansi -syslib ghc
The Glorious Glasgow Haskell Compilation System, version 2.02, patchlevel 0
literate pre-processor:
echo '#line 1 "tmp.lhs"' > /tmp/ghc6307.lpp && /usr/local/lib/ghc-2.02/unlit
tmp.lhs - >> /tmp/ghc6307.lpp
real 0.1
user 0.0
sys 0.0
Haskellised C pre-processor:
echo '#line 1 "tmp.lhs"' > /tmp/ghc6307.cpp && /usr/local/lib/ghc-2.02/hscpp
-v -D__HASKELL1__=4 -D__GLASGOW_HASKELL__=202 -I. -I/usr/local/lib/ghc-2.02/includes
-I/usr/local/lib/ghc-2.02/includes /tmp/ghc6307.lpp >> /tmp/ghc6307.cpp
real 0.0
user 0.0
sys 0.0
hscpp:CPP invoked: /usr/local/lib/gcc-lib/sparc-sun-solaris2.5/2.7.2/cpp -traditional
-D__HASKELL1__=4 -D__GLASGOW_HASKELL__=202 -I. -I/usr/local/lib/ghc-2.02/includes
-I/usr/local/lib/ghc-2.02/includes /tmp/ghc6307.lpp
Haskell compiler:
/usr/local/lib/ghc-2.02/hsc ,-N ,-W ,/tmp/ghc6307.cpp -fglasgow-exts
-hisuf-prelude=.hi -hisuf=.hi -fignore-interface-pragmas -fomit-interface-pragmas
-fsimplify \( -ffloat-lets-exposing-whnf -ffloat-primops-ok -fcase-of-case
-freuse-con -fpedantic-bottoms -fsimpl-uf-use-threshold0 -fessential-unfoldings-only
-fmax-simplifier-iterations4 \)
-himap=.:/usr/local/lib/ghc-2.02/hslibs/ghc/imports:/usr/local/lib/ghc-2.02/hslibs/ghc/imports:/usr/local/lib/ghc-2.02/imports
-v -hifile=/tmp/ghc6307.hi -S=/tmp/ghc6307.s +RTS -H6000000 -K10000000
Glasgow Haskell Compiler, version 2.02, for Haskell 1.3
GHC's heap exhausted;
while trying to allocate 12 bytes in a 6000000-byte heap;
use the `-H<size>' option to increase the total heap size.
real 34.0
user 18.0
sys 0.1
deleting... /tmp/ghc6307.hi /tmp/ghc6307.s
rm -f /tmp/ghc6307*
make: *** [tmp.o] Error 1
**********************************************************
> module Too_Kuch( too_much ) where
> too_much :: [Int] -> [(Int,Int)] -> [(Int,[Int])] -> Bool
> too_much ds ((k,m):q1) s0
> = case (list1,list2) of
> [] -> too_much ds q2m s2m
> where list1 = [k' | k' <- ds, k == k']
> list2 = [k' | k' <- ds, m == k']
> s1 = aas s0 k
> raM = []
> raKM = listUnion (\a b -> a) [] []
> s1k = s1
> q1k = raM
> s2k = s1
> q2k = raM
> s2m = s1
> q2m = raM
> s2km = foldr (flip aas) s1 raKM
> q2km = raKM
> listUnion :: (v -> v -> Bool) -> [v] -> [v] -> [v]
> listUnion _ _ _
> = []
> aas :: (a,b) -> a -> (a,b)
> aas s _
> = s