summaryrefslogtreecommitdiff
path: root/iserv
diff options
context:
space:
mode:
Diffstat (limited to 'iserv')
-rw-r--r--iserv/src/Main.hs11
1 files changed, 11 insertions, 0 deletions
diff --git a/iserv/src/Main.hs b/iserv/src/Main.hs
index 2e4555b017..3fcd49f5c7 100644
--- a/iserv/src/Main.hs
+++ b/iserv/src/Main.hs
@@ -1,4 +1,11 @@
{-# LANGUAGE RecordWildCards, GADTs, ScopedTypeVariables, RankNTypes #-}
+
+-- |
+-- The Remote GHCi server.
+--
+-- For details on Remote GHCi, see Note [Remote GHCi] in
+-- compiler/ghci/GHCi.hs.
+--
module Main (main) where
import GHCi.Run
@@ -55,6 +62,10 @@ serv verbose pipe@Pipe{..} restore = loop
writePipe pipe (put r)
loop
+ -- Run some TH code, which may interact with GHC by sending
+ -- THMessage requests, and then finally send RunTHDone followed by a
+ -- QResult. For an overview of how TH works with Remote GHCi, see
+ -- Note [Remote Template Haskell] in libraries/ghci/GHCi/TH.hs.
wrapRunTH :: forall a. (Binary a, Show a) => IO a -> IO ()
wrapRunTH io = do
r <- try io