X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fghci%2FGhciMonad.hs;h=66d1d2ef6f729b9de3959c89f7fd579b4e085df0;hb=131320a1b79d965540449927b640ab037fb7a13a;hp=80512e7b1001c5d12c75a6d31021c5f7529f06e9;hpb=983743b6c501873adacea295259335d70f950eec;p=ghc-hetmet.git diff --git a/compiler/ghci/GhciMonad.hs b/compiler/ghci/GhciMonad.hs index 80512e7..66d1d2e 100644 --- a/compiler/ghci/GhciMonad.hs +++ b/compiler/ghci/GhciMonad.hs @@ -1,3 +1,6 @@ +{-# OPTIONS -fno-cse #-} +-- -fno-cse is needed for GLOBAL_VAR's to behave properly + ----------------------------------------------------------------------------- -- -- Monadery code used in InteractiveUI @@ -20,6 +23,7 @@ import HscTypes import SrcLoc import Module import ObjLink +import Linker import StaticFlags import Data.Maybe @@ -66,7 +70,7 @@ data GHCiState = GHCiState remembered_ctx :: [(CtxtCmd, [String], [String])], -- we remember the :module commands between :loads, so that -- on a :reload we can replay them. See bugs #2049, - -- #1873, #1360. Previously we tried to remember modules that + -- \#1873, #1360. Previously we tried to remember modules that -- were supposed to be in the context but currently had errors, -- but this was complicated. Just replaying the :module commands -- seems to be the right thing. @@ -295,11 +299,8 @@ GLOBAL_VAR(stderr_ptr, error "no stderr_ptr", Ptr ()) initInterpBuffering :: GHC.Session -> IO () initInterpBuffering session = do -- make sure these are linked - mb_hval1 <- GHC.compileExpr session "System.IO.stdout" - mb_hval2 <- GHC.compileExpr session "System.IO.stderr" - mb_hval3 <- GHC.compileExpr session "System.IO.stdin" - when (any isNothing [mb_hval1,mb_hval2,mb_hval3]) $ - panic "interactiveUI:setBuffering" + dflags <- GHC.getSessionDynFlags session + initDynLinker dflags -- ToDo: we should really look up these names properly, but -- it's a fiddle and not all the bits are exposed via the GHC