ghc-lib-0.20190204: The GHC API, decoupled from GHC versions

Safe HaskellNone
LanguageHaskell2010

PipelineMonad

Description

The CompPipeline monad and associated ops

Defined in separate module so that it can safely be imported from Hooks

Documentation

newtype CompPipeline a Source #

Constructors

P

Fields

Instances
Instance details

Defined in PipelineMonad

Instance details

Defined in PipelineMonad

Methods

fmap :: (a -> b) -> CompPipeline a -> CompPipeline b #

(<$) :: a -> CompPipeline b -> CompPipeline a #

Instance details

Defined in PipelineMonad

Methods

pure :: a -> CompPipeline a #

(<*>) :: CompPipeline (a -> b) -> CompPipeline a -> CompPipeline b #

liftA2 :: (a -> b -> c) -> CompPipeline a -> CompPipeline b -> CompPipeline c #

(*>) :: CompPipeline a -> CompPipeline b -> CompPipeline b #

(<*) :: CompPipeline a -> CompPipeline b -> CompPipeline a #

Instance details

Defined in PipelineMonad

Methods

liftIO :: IO a -> CompPipeline a #

Instance details

Defined in PipelineMonad

evalP :: CompPipeline a -> PipeEnv -> PipeState -> IO a Source #

data PhasePlus Source #

Constructors

Instances
Instance details

Defined in PipelineMonad

data PipeEnv Source #

Constructors

Fields

data PipeState Source #

Constructors

Fields

  • hsc_env :: HscEnv

    only the DynFlags change in the HscEnv. The DynFlags change at various points, for example when we read the OPTIONS_GHC pragmas in the Cpp phase.

  • maybe_loc :: Maybe ModLocation

    the ModLocation. This is discovered during compilation, in the Hsc phase where we read the module header.

  • foreign_os :: [FilePath]

    additional object files resulting from compiling foreign code. They come from two sources: foreign stubs, and add{C,Cxx,Objc,Objcxx}File from template haskell

data PipelineOutput Source #

Constructors

Temporary TempFileLifetime

Output should be to a temporary file: we're going to run more compilation steps on this output later.

Persistent

We want a persistent file, i.e. a file in the current directory derived from the input filename, but with the appropriate extension. eg. in "ghc -c Foo.hs" the output goes into ./Foo.o.

SpecificFile

The output must go into the specific outputFile in DynFlags. We don't store the filename in the constructor as it changes when doing -dynamic-too.

Instances
Instance details

Defined in PipelineMonad

getPipeEnv :: CompPipeline PipeEnv Source #

getPipeState :: CompPipeline PipeState Source #

setDynFlags :: DynFlags -> CompPipeline () Source #

setModLocation :: ModLocation -> CompPipeline () Source #

setForeignOs :: [FilePath] -> CompPipeline () Source #

AltStyle によって変換されたページ (->オリジナル) /