summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--compiler/main/GHC.hs21
1 files changed, 11 insertions, 10 deletions
diff --git a/compiler/main/GHC.hs b/compiler/main/GHC.hs
index 1b6ea2d26e..6b2815a4ee 100644
--- a/compiler/main/GHC.hs
+++ b/compiler/main/GHC.hs
@@ -444,16 +444,17 @@ runGhcT mb_top_dir ghct = do
-- <http://hackage.haskell.org/cgi-bin/hackage-scripts/package/ghc-paths>.
initGhcMonad :: GhcMonad m => Maybe FilePath -> m ()
-initGhcMonad mb_top_dir = do
- -- catch ^C
- liftIO $ installSignalHandlers
-
- liftIO $ initStaticOpts
-
- mySettings <- liftIO $ initSysTools mb_top_dir
- dflags <- liftIO $ initDynFlags (defaultDynFlags mySettings)
- env <- liftIO $ newHscEnv dflags
- setSession env
+initGhcMonad mb_top_dir
+ = do { env <- liftIO $
+ do { installSignalHandlers -- catch ^C
+ ; initStaticOpts
+ ; mySettings <- initSysTools mb_top_dir
+ ; dflags <- initDynFlags (defaultDynFlags mySettings)
+ ; setUnsafeGlobalDynFlags dflags
+ -- c.f. DynFlags.parseDynamicFlagsFull, which
+ -- creates DynFlags and sets the UnsafeGlobalDynFlags
+ ; newHscEnv dflags }
+ ; setSession env }
-- %************************************************************************