Safe Haskell | None |
---|---|
Language | Haskell98 |
HsDev.Tools.Ghc.Worker
- data SessionType
- data SessionConfig = SessionConfig SessionType [String]
- type GhcM a = MGhcT SessionConfig (LogT IO) a
- type GhcWorker = Worker (MGhcT SessionConfig (LogT IO))
- newtype MGhcT s m a = MGhcT {}
- runGhcM :: MonadLog m => Maybe FilePath -> GhcM a -> m a
- ghcWorker :: MonadLog m => m GhcWorker
- workerSession :: SessionType -> [String] -> GhcM ()
- ghcSession :: [String] -> GhcM ()
- ghciSession :: GhcM ()
- haddockSession :: [String] -> GhcM ()
- tmpSession :: [String] -> GhcM ()
- ghcRun :: GhcMonad m => [String] -> m a -> m a
- ghcRunWith :: GhcMonad m => (DynFlags -> DynFlags) -> [String] -> m a -> m a
- interpretedFlags :: DynFlags -> DynFlags
- noLinkFlags :: DynFlags -> DynFlags
- withFlags :: GhcMonad m => m a -> m a
- modifyFlags :: GhcMonad m => (DynFlags -> DynFlags) -> m ()
- importModules :: GhcMonad m => [String] -> m ()
- preludeModules :: [String]
- evaluate :: GhcMonad m => String -> m String
- clearTargets :: GhcMonad m => m ()
- makeTarget :: GhcMonad m => Text -> Maybe Text -> m Target
- loadTargets :: GhcMonad m => [Target] -> m ()
- loadInteractive :: GhcMonad m => Path -> Maybe Text -> m ()
- reload :: GhcMonad m => m ()
- spanRegion :: SrcSpan -> Region
- withCurrentDirectory :: GhcMonad m => FilePath -> m a -> m a
- logToChan :: Chan (Note OutputMessage) -> LogAction
- logToNull :: LogAction
- data Ghc a :: * -> *
- newtype LogT (m :: * -> *) a :: (* -> *) -> * -> * = LogT {}
- module HsDev.Tools.Ghc.MGhc
- module Control.Concurrent.Worker
Workers
Multi-session ghc monad
Instances
Monad m => MonadReader (Maybe FilePath) (MGhcT s m) Source # | |
Monad m => MonadState (SessionState s) (MGhcT s m) Source # | |
Monad m => Monad (MGhcT s m) Source # | |
Functor m => Functor (MGhcT s m) Source # | |
Monad m => Applicative (MGhcT s m) Source # | |
MonadIO m => MonadIO (MGhcT s m) Source # | |
MonadThrow m => MonadThrow (MGhcT s m) Source # | |
MonadCatch m => MonadCatch (MGhcT s m) Source # | |
MonadMask m => MonadMask (MGhcT s m) Source # | |
ExceptionMonad m => GhcMonad (MGhcT s m) Source # | |
MonadIO m => HasDynFlags (MGhcT s m) Source # | |
ExceptionMonad m => ExceptionMonad (MGhcT s m) Source # | |
MonadLog m => MonadLog (MGhcT s m) Source # | |
workerSession :: SessionType -> [String] -> GhcM () Source #
Create session with options
ghcSession :: [String] -> GhcM () Source #
Get ghc session
ghciSession :: GhcM () Source #
Get ghci session
haddockSession :: [String] -> GhcM () Source #
Get haddock session with flags
tmpSession :: [String] -> GhcM () Source #
Get haddock session with flags
Initializers and actions
interpretedFlags :: DynFlags -> DynFlags Source #
noLinkFlags :: DynFlags -> DynFlags Source #
importModules :: GhcMonad m => [String] -> m () Source #
Import some modules
preludeModules :: [String] Source #
Default interpreter modules
clearTargets :: GhcMonad m => m () Source #
Clear loaded targets
makeTarget :: GhcMonad m => Text -> Maybe Text -> m Target Source #
Make target with its source code optional
loadTargets :: GhcMonad m => [Target] -> m () Source #
Load all targets
loadInteractive :: GhcMonad m => Path -> Maybe Text -> m () Source #
Load and set interactive context
Utils
spanRegion :: SrcSpan -> Region Source #
Get region of SrcSpan
withCurrentDirectory :: GhcMonad m => FilePath -> m a -> m a Source #
Set current directory and restore it after action
logToChan :: Chan (Note OutputMessage) -> LogAction Source #
Log ghc warnings and errors as to chan You may have to apply recalcTabs on result notes
newtype LogT (m :: * -> *) a :: (* -> *) -> * -> * #
Instances
MonadTrans LogT | |
Monad m => MonadReader Log (LogT m) | |
Monad m => Monad (LogT m) | |
Functor m => Functor (LogT m) | |
Applicative m => Applicative (LogT m) | |
MonadIO m => MonadIO (LogT m) | |
MonadThrow m => MonadThrow (LogT m) | |
MonadCatch m => MonadCatch (LogT m) | |
MonadMask m => MonadMask (LogT m) | |
(MonadIO m, MonadMask m) => MonadLog (LogT m) | |
module HsDev.Tools.Ghc.MGhc
module Control.Concurrent.Worker