X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fmain%2FInteractiveEval.hs;h=38f099820715f997844c661e658016a9f41e9d03;hb=d529d596a1256bb48bda45ec343631c879c8d56d;hp=794459c4587ed70a14688f7791eef0a9b7b1c391;hpb=709c9ce0ec4ecaabc1e4ee0f05dbad87fc6aca4d;p=ghc-hetmet.git diff --git a/compiler/main/InteractiveEval.hs b/compiler/main/InteractiveEval.hs index 794459c..38f0998 100644 --- a/compiler/main/InteractiveEval.hs +++ b/compiler/main/InteractiveEval.hs @@ -42,9 +42,9 @@ module InteractiveEval ( import HscMain hiding (compileExpr) import HscTypes import TcRnDriver -import Type hiding (typeKind) -import TcType hiding (typeKind) import InstEnv +import Type +import TcType hiding( typeKind ) import Var import Id import Name hiding ( varName ) @@ -59,7 +59,7 @@ import Unique import UniqSupply import Module import Panic -import LazyUniqFM +import UniqFM import Maybes import ErrUtils import Util @@ -82,7 +82,7 @@ import Data.Array import Exception import Control.Concurrent import Data.List (sortBy) -import Foreign.StablePtr +-- import Foreign.StablePtr import System.IO -- ----------------------------------------------------------------------------- @@ -308,7 +308,7 @@ traceRunStatus expr bindings final_ids let history' = mkHistory hsc_env apStack info `consBL` history -- probably better make history strict here, otherwise -- our BoundedList will be pointless. - liftIO $ evaluate history' + _ <- liftIO $ evaluate history' status <- withBreakAction True (hsc_dflags hsc_env) breakMVar statusMVar $ do @@ -380,9 +380,9 @@ rethrow dflags io = Exception.catch io $ \se -> do not (dopt Opt_BreakOnException dflags) then poke exceptionFlag 1 else case fromException se of - -- If it is an "Interrupted" exception, we allow + -- If it is a "UserInterrupt" exception, we allow -- a possible break by way of -fbreak-on-exception - Just Interrupted -> return () + Just UserInterrupt -> return () -- In any other case, we don't want to break _ -> poke exceptionFlag 0 @@ -586,7 +586,7 @@ bindLocalsAtBreakpoint hsc_env apStack (Just info) = do -- has been accidentally evaluated, or something else has gone wrong. -- So that we don't fall over in a heap when this happens, just don't -- bind any free variables instead, and we emit a warning. - mb_hValues <- mapM (getIdValFromApStack apStack) offsets + mb_hValues <- mapM (getIdValFromApStack apStack) (map fromIntegral offsets) let filtered_ids = [ id | (id, Just _hv) <- zip ids mb_hValues ] when (any isNothing mb_hValues) $ debugTraceMsg (hsc_dflags hsc_env) 1 $