| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
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 #
Instances
Instance details
Defined in PipelineMonad
Methods
(>>=) :: CompPipeline a -> (a -> CompPipeline b) -> CompPipeline b #
(>>) :: CompPipeline a -> CompPipeline b -> CompPipeline b #
return :: a -> CompPipeline a #
fail :: String -> CompPipeline a #
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 #
Constructors
Fields
- stop_phase :: Phase
Stop just before this phase
- src_filename :: String
basename of original input source
- src_basename :: String
basename of original input source
- src_suffix :: String
its extension
- output_spec :: PipelineOutput
says where to put the pipeline output
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
Output should be to a temporary file: we're going to run more compilation steps on this output later.
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.
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
Methods
showsPrec :: Int -> PipelineOutput -> ShowS #
show :: PipelineOutput -> String #
showList :: [PipelineOutput] -> ShowS #
setDynFlags :: DynFlags -> CompPipeline () Source #
setModLocation :: ModLocation -> CompPipeline () Source #
setForeignOs :: [FilePath] -> CompPipeline () Source #