X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Fghci%2FGhciMonad.hs;h=eaea844991185f784356e6586e06f50671d4228f;hp=63c2af76f82a75b0afcba94ac785625c43c38e25;hb=075a7bad2ab4e8360badfa2d0ae25c4d8eaf61f6;hpb=1e8ae3f05cd475454f086a51da845ac0318d40e8 diff --git a/compiler/ghci/GhciMonad.hs b/compiler/ghci/GhciMonad.hs index 63c2af7..eaea844 100644 --- a/compiler/ghci/GhciMonad.hs +++ b/compiler/ghci/GhciMonad.hs @@ -16,6 +16,7 @@ import Breakpoints import Outputable import Panic hiding (showException) import Util +import DynFlags import Numeric import Control.Exception as Exception @@ -205,8 +206,14 @@ flush_cmd = command_sequence [flush_buffer "stdout", flush_buffer "stderr"] initInterpBuffering :: GHC.Session -> IO () initInterpBuffering session - = do maybe_hval <- GHC.compileExpr session no_buf_cmd - + = do -- we don't want to be fooled by any modules lying around in the current + -- directory when we compile these code fragments, so set the import + -- path to be empty while we compile them. + dflags <- GHC.getSessionDynFlags session + GHC.setSessionDynFlags session dflags{importPaths=[]} + + maybe_hval <- GHC.compileExpr session no_buf_cmd + case maybe_hval of Just hval -> writeIORef turn_off_buffering (unsafeCoerce# hval :: IO ()) other -> panic "interactiveUI:setBuffering" @@ -216,6 +223,8 @@ initInterpBuffering session Just hval -> writeIORef flush_interp (unsafeCoerce# hval :: IO ()) _ -> panic "interactiveUI:flush" + GHC.setSessionDynFlags session dflags + GHC.workingDirectoryChanged session return ()