diff options
author | Christiaan Baaij <christiaan.baaij@gmail.com> | 2018-11-22 11:50:51 -0500 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2018-11-22 13:14:01 -0500 |
commit | 599eaada382d04722219bfc319bde94591be3fb1 (patch) | |
tree | 462b6ad7a5df2be04a77df8b5404822ec4cf4b86 /ghc/GHCi/UI.hs | |
parent | f088c2d42aaa38b32482ea8c4324786123835e62 (diff) | |
download | haskell-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.hs | 8 |
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 |