futhark-0.25.32: An optimising compiler for a functional, array-oriented language.
Safe HaskellNone
LanguageGHC2021

Futhark.Compiler.CLI

Description

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.

Synopsis

Documentation

compilerMain Source #

Arguments

:: 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 rep

The pipeline to use.

-> (FutharkConfig -> cfg -> CompilerMode -> FilePath -> Prog rep -> 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.

data CompilerMode Source #

Are we compiling a library or an executable?

Instances

Instances details
Show CompilerMode Source # 
Instance details

Defined in Futhark.Compiler.Config

Methods

showsPrec :: Int -> CompilerMode -> ShowS

show :: CompilerMode -> String

showList :: [CompilerMode] -> ShowS

Eq CompilerMode Source # 
Instance details

Defined in Futhark.Compiler.Config

Methods

(==) :: CompilerMode -> CompilerMode -> Bool

(/=) :: CompilerMode -> CompilerMode -> Bool

Ord CompilerMode Source # 
Instance details

Defined in Futhark.Compiler.Config