Commit b47555c3 authored by Simon Marlow's avatar Simon Marlow
Browse files

don't turn off stdin/stdout buffering after loading a module with ghc -e (#2228)

parent 2f330af4
......@@ -77,7 +77,8 @@ data GHCiState = GHCiState
-- 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.
virtual_path :: FilePath
virtual_path :: FilePath,
ghc_e :: Bool -- True if this is 'ghc -e' (or runghc)
}
data CtxtCmd
......@@ -251,10 +252,11 @@ printTimes allocs psecs
-----------------------------------------------------------------------------
-- reverting CAFs
revertCAFs :: IO ()
revertCAFs :: GHCi ()
revertCAFs = do
rts_revertCAFs
turnOffBuffering
io $ rts_revertCAFs
s <- getGHCiState
when (not (ghc_e s)) $ io turnOffBuffering
-- Have to turn off buffering again, because we just
-- reverted stdout, stderr & stdin to their defaults.
......
......@@ -356,7 +356,8 @@ interactiveUI session srcs maybe_exprs = do
last_command = Nothing,
cmdqueue = [],
remembered_ctx = [],
virtual_path = cwd
virtual_path = cwd,
ghc_e = isJust maybe_exprs
}
#ifdef USE_EDITLINE
......@@ -729,7 +730,7 @@ afterRunStmt step_here run_result = do
flushInterpBuffers
io installSignalHandlers
b <- isOptionSet RevertCAFs
io (when b revertCAFs)
when b revertCAFs
return (case run_result of GHC.RunOk _ -> True; _ -> False)
......@@ -899,7 +900,7 @@ doWithArgs args cmd = enqueueCommands ["System.Environment.withArgs " ++
addModule :: [FilePath] -> GHCi ()
addModule files = do
io (revertCAFs) -- always revert CAFs on load/add.
revertCAFs -- always revert CAFs on load/add.
files <- mapM expandPath files
targets <- mapM (\m -> io (GHC.guessTarget m Nothing)) files
session <- getSession
......@@ -1098,7 +1099,7 @@ doLoad session retain_context prev_context howmuch = do
afterLoad :: SuccessFlag -> Session -> Bool -> ([Module],[Module]) -> GHCi ()
afterLoad ok session retain_context prev_context = do
io (revertCAFs) -- always revert CAFs on load.
revertCAFs -- always revert CAFs on load.
discardTickArrays
loaded_mod_summaries <- getLoadedModules session
let loaded_mods = map GHC.ms_mod loaded_mod_summaries
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment