
From: Ketil Malde
Hi,
I'm observing something I find quite strange. I have a program that normally streams through a file, and it runs in the expected constant space, consuming about 5MB, according to 'top'. When I uncomment a certain block of code in the library it uses, space consumption appears to grow linearly with the input size.
This is a bit surprising to me, since the code in question isn't used by the program at all, and yesterday, Cale confirmed this behavior on a recent GHC (6.10.3, I think - mine is 6.8.2 as shipped with Ubuntu 9.04).
I can confirm this behavior on GHC 6.10.4 on OSX 10.5.7. Try adding {-# INLINE getRB #-} above the getRB definition. That fixes it for me. I think that when the rest of the code is commented out, getRB is only called in one location, so GHC inlines it automatically. Since getRB is also called in the commented-out code, it probably isn't automatically inlined when that code is available. I suspect that the inlining allows GHC to infer some strictness property it otherwise can't. Cheers, John Lato