[commit: ghc] supercompiler: Fiddle with memo_how check fruitlessly (2c1419e)

Max Bolingbroke <[email protected]>
Newsgroups gmane.comp.lang.haskell.cvs.ghc
Message-ID <[email protected]>
Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : supercompiler

http://hackage.haskell.org/trac/ghc/changeset/2c1419efa0183726a29502cce2065799c0e1ee2a

>---------------------------------------------------------------

commit 2c1419efa0183726a29502cce2065799c0e1ee2a
Author: Max Bolingbroke <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.