On Fri, 15 Apr 2005 12:03:01 -0400
ChrisK <[EMAIL PROTECTED]> wrote:

> You are correct.  Moand.Cont yield even runs without -O optimizing, 
> just slower:
> 
> Monad.Writer counts 10^9 zeros in 99 seconds (user time)
> Monad.Cont counts 10^8 zero in 35 seconds user time.
> So the writer is 3.5 times faster without '-O'
> 
> With -O
> Monad.Writer counts 10^9 zeros in 105 seconds
> Monad.Cont counts 10^8 zeros in 11 seconds, 10^9 zeros in 110 seconds.
> 
> So with '-O' they are the same speed.  Nice.
> 
> Anyone have an idea why ghci can't garbage collect it?
> Is this an actual bug or an innate quirk of the REPL ?

GHCi does not "compile" with optimizations, without -O the strictness analyzer
isn't run.  The difference is most likely due to strictness analysis.  A well
placed strictness annotation or two should be able to make it work in GHCi as
well.  A similar situation occurs with sum: in GHCi for large inputs it
overflows the stack, but when compiled with -O it works correctly, this is
because sum is defined with foldl and not foldl' in GHC.
_______________________________________________
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to