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

Reply via email to