Hi Will, Will Ness wrote: > Will Ness <will_n48 <at> yahoo.com> writes: > > CORRECTION: just with "gaps" (but not the other ones), changing the "g" > > function from composed pieces into a "normal" code, it did it! (probably > > some ghc version-specific stuff at play): > > > > g xs = 3 : gaps 5 > > ( foldi (\(x:xs) -> (x:) . union xs) > > [[x*x, x*x+2*x..] | x <- xs] ) > > addition: with > gaps k xs = minus [k,k+2..] xs > it also runs without the space leak, but with > gaps k = minus [k,k+2..] > the leak reappears.
I'm not sure that I tried the same code as you did, but for me both these versions were leaky. I cannot explain why, but I see that in the resulting core (ghc ... -ddump-simpl) the [5,7..] list ends up as a top level constant, despite -fno-full-laziness. So the cause of the space leak remains the same -- the [5,7..] list is being shared among several invocations of g. Tricky. Bertram _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users