summaryrefslogtreecommitdiff
path: root/ghc/GHCi/UI.hs
diff options
context:
space:
mode:
authorChristiaan Baaij <christiaan.baaij@gmail.com>2018-11-22 11:50:51 -0500
committerBen Gamari <ben@smart-cactus.org>2018-11-22 13:14:01 -0500
commit599eaada382d04722219bfc319bde94591be3fb1 (patch)
tree462b6ad7a5df2be04a77df8b5404822ec4cf4b86 /ghc/GHCi/UI.hs
parentf088c2d42aaa38b32482ea8c4324786123835e62 (diff)
downloadhaskell-599eaada382d04722219bfc319bde94591be3fb1.tar.gz
Load plugins in interactive session
Reviewers: bgamari, tdammers Reviewed By: tdammers Subscribers: monoidal, rwbarton, carter GHC Trac Issues: #15633 Differential Revision: https://phabricator.haskell.org/D5348
Diffstat (limited to 'ghc/GHCi/UI.hs')
-rw-r--r--ghc/GHCi/UI.hs8
1 files changed, 7 insertions, 1 deletions
diff --git a/ghc/GHCi/UI.hs b/ghc/GHCi/UI.hs
index 3de49b4c25..ae8ba0266f 100644
--- a/ghc/GHCi/UI.hs
+++ b/ghc/GHCi/UI.hs
@@ -68,6 +68,8 @@ import qualified Lexer
import StringBuffer
import Outputable hiding ( printForUser, printForUserPartWay )
+import DynamicLoading ( initializePlugins )
+
-- Other random utilities
import BasicTypes hiding ( isTopLevel )
import Config
@@ -2721,10 +2723,14 @@ newDynFlags interactive_only minus_opts = do
when (interactive_only && packageFlagsChanged idflags1 idflags0) $ do
liftIO $ hPutStrLn stderr "cannot set package flags with :seti; use :set"
- GHC.setInteractiveDynFlags idflags1
+ -- Load any new plugins
+ hsc_env0 <- GHC.getSession
+ idflags2 <- liftIO (initializePlugins hsc_env0 idflags1)
+ GHC.setInteractiveDynFlags idflags2
installInteractivePrint (interactivePrint idflags1) False
dflags0 <- getDynFlags
+
when (not interactive_only) $ do
(dflags1, _, _) <- liftIO $ GHC.parseDynamicFlags dflags0 lopts
new_pkgs <- GHC.setProgramDynFlags dflags1