GHC.Driver.Env.Types
Documentation
The Hsc monad: Passing an environment and diagnostic state
Constructors
Hsc (HscEnv -> Messages GhcMessage -> IO (a, Messages GhcMessage)) |
HscEnv is like Session
, except that some of the fields are immutable.
An HscEnv is used to compile a single module from plain Haskell source
code (after preprocessing) to either C, assembly or C--. It's also used
to store the dynamic linker state to allow for multiple linkers in the
same address space.
Things like the module graph don't change during a single compilation.
Historical note: "hsc" used to be the name of the compiler binary, when there was a separate driver and compiler. To compile a single module, the driver would invoke hsc on the source code... so nowadays we think of hsc as the layer of the compiler that deals with compiling a single module.
Constructors
HscEnv | |
Fields
|
Instances
ContainsDynFlags HscEnv Source # | |
Defined in GHC.Driver.Env.Types Methods extractDynFlags :: HscEnv -> DynFlags Source # |