use extendInteractiveContext instead of custom code
[ghc-hetmet.git] / compiler / ghci / GhciMonad.hs
index d56a581..5086022 100644 (file)
@@ -11,8 +11,9 @@ module GhciMonad where
 #include "HsVersions.h"
 
 import qualified GHC
-import Outputable
-import Panic hiding (showException)
+import Outputable       hiding (printForUser)
+import qualified Outputable
+import Panic            hiding (showException)
 import Util
 import DynFlags
 import HscTypes
@@ -42,10 +43,10 @@ data GHCiState = GHCiState
        args           :: [String],
         prompt         :: String,
        editor         :: String,
+        stop           :: String,
        session        :: GHC.Session,
        options        :: [GHCiOption],
         prelude        :: GHC.Module,
-        resume         :: [(SrcSpan, ThreadId, GHC.ResumeHandle)],
         breaks         :: !ActiveBreakPoints,
         tickarrays     :: ModuleEnv TickArray
                 -- tickarrays caches the TickArray for loaded modules,
@@ -179,29 +180,11 @@ unsetOption opt
 io :: IO a -> GHCi a
 io m = GHCi { unGHCi = \s -> m >>= return }
 
-popResume :: GHCi (Maybe (SrcSpan, ThreadId, GHC.ResumeHandle))
-popResume = do
-   st <- getGHCiState 
-   case (resume st) of
-      []     -> return Nothing
-      (x:xs) -> do setGHCiState $ st { resume = xs } ; return (Just x)
-         
-pushResume :: SrcSpan -> ThreadId -> GHC.ResumeHandle -> GHCi ()
-pushResume span threadId resumeAction = do
-   st <- getGHCiState
-   let oldResume = resume st
-   setGHCiState $ st { resume = (span, threadId, resumeAction) : oldResume }
-
-discardResumeContext :: GHCi ()
-discardResumeContext = do
-   st <- getGHCiState
-   setGHCiState st { resume = [] }
-
-showForUser :: SDoc -> GHCi String
-showForUser doc = do
+printForUser :: SDoc -> GHCi ()
+printForUser doc = do
   session <- getSession
   unqual <- io (GHC.getPrintUnqual session)
-  return $! showSDocForUser unqual doc
+  io $ Outputable.printForUser stdout unqual doc
 
 -- --------------------------------------------------------------------------
 -- timing & statistics