Evaluation order, ghc versus hugs, lazy vs. strict
Dylan Thurston
dpt@math.harvard.edu
Mon, 19 Aug 2002 18:41:27 -0400
On Mon, Aug 19, 2002 at 11:19:41PM +0200, Jan Kybic wrote:
> Hello,
> I am wrestling with having Haskell (using ghc(i) version 5.02.2)
> evaluate things in good order and to garbage collect what he no longer
> needs. I could simplify the problem to this simple example:
>
> main = print $ sum [0..1000000]
>
> When you use a sufficiently large number (perhaps 10000000 instead of
> 1000000), both ghci and ghc terminate with "Stack space overflow".
> On the other hand, Hugs (dated December 2001) runs the example OK
> and produces the result of 500000500000.
ghc -O2 seems to run the program above in constant space. I guess
strictness analysis (which knows how to evaluate the foldl) only
happens at -O2 or above?
Best,
Dylan Thurston