Safe Haskell | None |
---|---|
Language | Haskell98 |
The main compiler module
- data RebuildPolicy
- data MakeActions m = MakeActions {
- getInputTimestamp :: ModuleName -> m (Either RebuildPolicy (Maybe UTCTime))
- getOutputTimestamp :: ModuleName -> m (Maybe UTCTime)
- readExterns :: ModuleName -> m (FilePath, String)
- codegen :: Module Ann -> Environment -> SupplyVar -> Externs -> m ()
- progress :: String -> m ()
- type SupplyVar = Integer
- type Externs = String
- make :: forall m. (Functor m, Applicative m, Monad m, MonadReader Options m, MonadError MultipleErrors m, MonadWriter MultipleErrors m) => MakeActions m -> [(Either RebuildPolicy FilePath, Module)] -> m Environment
- version :: Version
Documentation
data RebuildPolicy Source
Determines when to rebuild a module
RebuildNever | Never rebuild this module |
RebuildAlways | Always rebuild this module |
data MakeActions m Source
Actions that require implementations when running in "make" mode.
MakeActions | |
|
make :: forall m. (Functor m, Applicative m, Monad m, MonadReader Options m, MonadError MultipleErrors m, MonadWriter MultipleErrors m) => MakeActions m -> [(Either RebuildPolicy FilePath, Module)] -> m Environment Source
Compiles in "make" mode, compiling each module separately to a js files and an externs file
If timestamps have not changed, the externs file can be used to provide the module's types without having to typecheck the module again.