Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : 

http://hackage.haskell.org/trac/ghc/changeset/e7e1af8e46d2d4a934084e1003286e6ad7e46d84

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

commit e7e1af8e46d2d4a934084e1003286e6ad7e46d84
Author: Max Bolingbroke <batterseapo...@hotmail.com>
Date:   Mon Nov 14 18:35:19 2011 +0000

    Tracing only

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

 .../supercompile/Supercompile/Drive/Process2.hs    |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/compiler/supercompile/Supercompile/Drive/Process2.hs 
b/compiler/supercompile/Supercompile/Drive/Process2.hs
index 720bf3b..9be8d9c 100644
--- a/compiler/supercompile/Supercompile/Drive/Process2.hs
+++ b/compiler/supercompile/Supercompile/Drive/Process2.hs
@@ -305,10 +305,10 @@ instance MonadStatics LevelM where
     bindCapturedFloats _fvs mx = liftM ((,) []) mx -- FIXME: do something 
other than hope for the best
     monitorFVs = liftM ((,) emptyVarSet)
 
-memo :: (Applicative t, Monad m)
+memo :: (Applicative t, Functor m, Monad m)
      => (State -> t (FulfilmentT m (Deeds, Out FVedTerm)))
      -> State -> MemoT t (FulfilmentT m (Deeds, Out FVedTerm))
-memo opt state = StateT $ \ms ->
+memo opt state = StateT $ \ms -> traceRenderScpM "memo" state *>
      -- NB: If tb contains a dead PureHeap binding (hopefully impossible) then 
it may have a free variable that
      -- I can't rename, so "rename" will cause an error. Not observed in 
practice yet.
     case [ (p, (releaseStateDeed state, var (fun p) `applyAbsVars` map 
(renameAbsVar rn_lr) (abstracted p)))
@@ -344,8 +344,8 @@ type LevelM = FulfilmentT (SpecT ScpM)
 type ProcessM = ContT (Out FVedTerm) HistoryThreadM
 type ScpM = DelayM (MemoT ProcessM)
 
-traceRenderScpM :: (Outputable a, Monad m) => String -> a -> m ()
-traceRenderScpM msg x = pprTraceSC msg (pPrint x) $ return () -- TODO: include 
depth, refine to ScpM monad only
+traceRenderScpM :: (Outputable a, Applicative t) => String -> a -> t ()
+traceRenderScpM msg x = pprTraceSC msg (pPrint x) $ pure () -- TODO: include 
depth, refine to ScpM monad only
 
 runScpM :: (Applicative m, Monad m) => m (DelayM m a) -> m a
 runScpM mx = mx >>= runDelayM eval_strat
@@ -359,12 +359,12 @@ sc' :: Parent -> State -> ProcessM (LevelM (Deeds, Out 
FVedTerm))
 sc' parent state = callCC (\k -> try (RB k))
   where
     trce how shallow_state = pprTraceSC ("sc-stop(" ++ how ++ ")") (ppr 
(stateTags shallow_state) <+> text "<|" <+> ppr (stateTags state) $$
-                                                                    
pPrintFullState True shallow_state $$ pPrintFullState True state)
+                                                                    ppr 
shallow_state $$ pPrintFullState True shallow_state $$ ppr state $$ 
pPrintFullState True state)
     try :: RollbackScpM -> ProcessM (LevelM (Deeds, Out FVedTerm))
     try rb = terminateM parent state rb
                (\parent -> liftSpeculatedStateT speculated state $ \state' -> 
split (reduce state') (delayStateT (delayReaderT delay) . sc parent))
                -- (\_ shallow_state _ -> return $ maybe (trce "split" 
shallow_state $ split state) (trce "gen" shallow_state) (generalise 
(mK_GENERALISER shallow_state state) state) (delayStateT (delayReaderT delay) . 
sc parent))
-               (\shallow_parent shallow_state shallow_rb -> doRB shallow_rb 
(maybe (trce "split" shallow_state $ split shallow_state) (trce "gen" 
shallow_state) (generalise (mK_GENERALISER shallow_state state) shallow_state) 
(delayStateT (delayReaderT delay) . sc shallow_parent)))
+               (\shallow_parent shallow_state shallow_rb -> trace "rb" $ doRB 
shallow_rb (maybe (trce "split" shallow_state $ split shallow_state) (trce 
"gen" shallow_state) (generalise (mK_GENERALISER shallow_state state) 
shallow_state) (delayStateT (delayReaderT delay) . sc shallow_parent)))
 
 sc :: Parent -> State -> MemoT ProcessM (LevelM (Deeds, Out FVedTerm))
 sc parent = memo (sc' parent) . gc -- Garbage collection necessary because 
normalisation might have made some stuff dead



_______________________________________________
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to