ghc-9.13: The GHC API
Safe HaskellNone
LanguageGHC2021

GHC.Driver.MakeAction

Synopsis

Documentation

data MakeAction Source #

Constructors

MakeAction !(RunMakeM a) !(MVar (Maybe a)) 

data MakeEnv Source #

Environment used when compiling a module

Constructors

MakeEnv 

Running the pipelines

runAllPipelines :: WorkerLimit -> MakeEnv -> [MakeAction] -> IO () Source #

Run the given actions and then wait for them all to finish.

runParPipelines Source #

Arguments

:: WorkerLimit

How to limit work parallelism

-> HscEnv

The basic HscEnv which is augmented with specific info for each module

-> (GhcMessage -> AnyGhcDiagnostic) 
-> Maybe Messager

Optional custom messager to use to report progress

-> [MakeAction]

The build plan for all the module nodes

-> IO () 

Build and run a pipeline

Worker limit

data WorkerLimit Source #

This describes what we use to limit the number of jobs, either we limit it ourselves to a specific number or we have an external parallelism semaphore limit it for us.

Constructors

NumProcessorsLimit Int 
JSemLimit SemaphoreName

Semaphore name to use

Instances

Instances details
Eq WorkerLimit Source # 
Instance details

Defined in GHC.Driver.MakeAction

Utility

withLoggerHsc :: Int -> MakeEnv -> (HscEnv -> IO a) -> IO a Source #

withLocalTmpFS :: TmpFs -> (TmpFs -> IO a) -> IO a Source #