Repository : ssh://darcs.haskell.org//srv/darcs/ghc On branch : supercompiler
http://hackage.haskell.org/trac/ghc/changeset/2c1419efa0183726a29502cce2065799c0e1ee2a >--------------------------------------------------------------- commit 2c1419efa0183726a29502cce2065799c0e1ee2a Author: Max Bolingbroke <batterseapo...@hotmail.com> Date: Tue Jul 17 16:50:21 2012 +0100 Fiddle with memo_how check fruitlessly >--------------------------------------------------------------- .../supercompile/Supercompile/Drive/Process3.hs | 9 +++++---- 1 files changed, 5 insertions(+), 4 deletions(-) diff --git a/compiler/supercompile/Supercompile/Drive/Process3.hs b/compiler/supercompile/Supercompile/Drive/Process3.hs index 26f04c8..509754e 100644 --- a/compiler/supercompile/Supercompile/Drive/Process3.hs +++ b/compiler/supercompile/Supercompile/Drive/Process3.hs @@ -667,7 +667,7 @@ memo opt init_state = {-# SCC "memo'" #-} memo_opt init_state -- 2. Otherwise, check and remember (we can't Skip if the state is reducible because otherwise [f] will diverge) -- -- This can only be used when eagerly splitting values or examples like [b] will diverge (note that [c] will still converge) - --memo_how = CheckAndRemember + -- I've disabled all this nonsense because it is causing non-termination with the new evaluator. Consider: -- let a:1 = I# ago1 -- ago1 = a:1 : a:2 @@ -675,8 +675,10 @@ memo opt init_state = {-# SCC "memo'" #-} memo_opt init_state -- With eager value splitting on, this splits to exactly the same term. -- -- TODO: think about if it actualy makes sense to fix and reenable this - {--} - memo_how | dUPLICATE_VALUES_EVALUATOR || not iNSTANCE_MATCHING + memo_how | {- False -} True + = CheckAndRemember + + | dUPLICATE_VALUES_EVALUATOR || not iNSTANCE_MATCHING = CheckAndRemember -- Do the simple thing in this case, it worked great until we introduced instance matching! | (_, _, k, qa) <- state -- NB: not safe to use reduced_state! @@ -686,7 +688,6 @@ memo opt init_state = {-# SCC "memo'" #-} memo_opt init_state | otherwise = if state_did_reduce || eAGER_SPLIT_VALUES then CheckAndRemember else Skip - {--} data MemoHow = Skip | CheckOnly | CheckAndRemember _______________________________________________ Cvs-ghc mailing list Cvs-ghc@haskell.org http://www.haskell.org/mailman/listinfo/cvs-ghc