futhark-0.16.3: An optimising compiler for a functional, array-oriented language.
Safe HaskellSafe-Inferred



Convenient common interface for command line Futhark compilers. Using this module ensures that all compilers take the same options. A small amount of flexibility is provided for backend-specific options.



compilerMain Source #


:: cfg

Initial configuration.

-> [CompilerOption cfg]

Options that affect the configuration.

-> String

The short action name (e.g. "compile to C").

-> String

The longer action description.

-> Pipeline SOACS lore

The pipeline to use.

-> (FutharkConfig -> cfg -> CompilerMode -> FilePath -> Prog lore -> FutharkM ())

The action to take on the result of the pipeline.

-> String

Program name

-> [String]

Command line arguments.

-> IO () 

Run a parameterised Futhark compiler, where cfg is a user-given configuration type. Call this from main.

type CompilerOption cfg = OptDescr (Either (IO ()) (cfg -> cfg)) Source #

An option that modifies the configuration of type cfg.