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

On branch  : 

http://hackage.haskell.org/trac/ghc/changeset/27a163ef8f286ab8327350e8579f3e2f03bc8915

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

commit 27a163ef8f286ab8327350e8579f3e2f03bc8915
Author: Max Bolingbroke <batterseapo...@hotmail.com>
Date:   Wed Oct 26 19:11:26 2011 +0100

    Remove redundancies from Process2, fix a bug

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

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

diff --git a/compiler/supercompile/Supercompile/Drive/Process2.hs 
b/compiler/supercompile/Supercompile/Drive/Process2.hs
index 0a48859..956ac7c 100644
--- a/compiler/supercompile/Supercompile/Drive/Process2.hs
+++ b/compiler/supercompile/Supercompile/Drive/Process2.hs
@@ -1,5 +1,5 @@
-{-# LANGUAGE GADTs, ScopedTypeVariables #-}
-module Supercompile.Drive.Process2 () where
+{-# LANGUAGE GADTs #-}
+module Supercompile.Drive.Process2 (supercompile) where
 
 import Supercompile.Drive.Match
 import Supercompile.Drive.Split
@@ -7,56 +7,24 @@ import Supercompile.Drive.Process
 
 import Supercompile.Core.FreeVars
 import Supercompile.Core.Renaming
---import Supercompile.Core.Size
 import Supercompile.Core.Syntax
 import Supercompile.Core.Tag
 
 import Supercompile.Evaluator.Deeds
-import Supercompile.Evaluator.Evaluate
-import Supercompile.Evaluator.FreeVars
 import Supercompile.Evaluator.Residualise
 import Supercompile.Evaluator.Syntax
 
 import Supercompile.Termination.Combinators
---import Supercompile.Termination.Extras
---import Supercompile.Termination.TagSet
-import Supercompile.Termination.TagBag
---import Supercompile.Termination.TagGraph
-import Supercompile.Termination.Generaliser
-
-import Supercompile.StaticFlags
-import Supercompile.Utilities hiding (Monad(..))
-
-import Var        (isTyVar, isId)
-import Id         (idType, mkLocalId, isDeadBinder, idOccInfo, setIdOccInfo, 
zapIdOccInfo, zapFragileIdInfo)
-import Type       (isUnLiftedType, mkTyVarTy)
-import Coercion   (isCoVar, mkCoVarCo)
+
+import Supercompile.Utilities
+
+import Id         (mkLocalId)
 import Name       (Name, mkSystemVarName)
 import FastString (mkFastString)
 import CoreUtils  (mkPiTypes)
 import qualified State as State
-import State hiding (State, mapAccumLM)
-import BasicTypes (OccInfo(..))
-
-import Text.XHtml hiding (text)
 
-import qualified Control.Monad as Monad
-import Control.Exception (handleJust, AsyncException(UserInterrupt))
-import qualified Data.Foldable as Foldable
-import qualified Data.Traversable as Traversable
 import qualified Data.Map as M
-import Data.Monoid
-import Data.Ord
-import qualified Data.Set as S
-
-
-
-import Control.Applicative (Applicative(..), (<$>), liftA2)
-import Control.Monad (liftM2)
-
-import Data.Foldable (Foldable(..))
-import Data.Traversable (Traversable(..))
-import qualified Data.Traversable as Traversable
 
 
 data Stream a = a :< Stream a
@@ -153,8 +121,9 @@ traceRenderScpM msg x = pprTraceSC msg (pPrint x) $ return 
() -- TODO: include d
 runScpM :: MemoT HistoryThreadM (ScpM a) -> MemoT HistoryThreadM a
 runScpM mx = mx >>= runDelayM eval_strat
   where
-    --eval_strat = depthFirst
-    eval_strat = breadthFirst
+    -- Doing things this way prevents GHC bleating about depthFirst being 
unused
+    eval_strat | False     = depthFirst
+               | otherwise = breadthFirst
 
 
 type ProcessHistory = History (State, RollbackScpM)
@@ -190,8 +159,10 @@ instance Monad m => Monad (StateT s m) where
     return x = ST $ \s -> return (x, s)
     mx >>= fxmy = ST $ \s -> unST mx s >>= \(x, s) -> unST (fxmy x) s
 
+{-
 liftStateT :: Functor m => m a -> StateT s m a
 liftStateT mx = ST $ \s -> fmap (flip (,) s) mx
+-}
 
 delayStateT :: Functor m => m (StateT s (DelayM m) a) -> StateT s (DelayM m) a
 delayStateT mx = ST $ \s -> delay (fmap (($ s) . unST) mx)
@@ -254,7 +225,7 @@ runFulfilmentT mx = liftM (\(e, fs) -> letRec (fulfilments 
fs) e) $ unST mx (FS
 
 
 promise :: State -> MemoState -> (Promise, MemoState)
-promise state ms = (p, ms)
+promise state ms = (p, ms')
   where vs_list = stateAbsVars state
         h_name :< h_names' = hNames ms
         x = mkLocalId h_name (vs_list `mkPiTypes` stateType state)



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

Reply via email to