module Futhark.Compiler.Config
( FutharkConfig (..),
newFutharkConfig,
Verbosity (..),
CompilerMode (..),
)
where
import Futhark.IR.Syntax.Core (Name)
data CompilerMode
= ToLibrary
| ToExecutable
| ToServer
deriving (CompilerMode -> CompilerMode -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CompilerMode -> CompilerMode -> Bool
$c/= :: CompilerMode -> CompilerMode -> Bool
== :: CompilerMode -> CompilerMode -> Bool
$c== :: CompilerMode -> CompilerMode -> Bool
Eq, Eq CompilerMode
CompilerMode -> CompilerMode -> Bool
CompilerMode -> CompilerMode -> Ordering
CompilerMode -> CompilerMode -> CompilerMode
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: CompilerMode -> CompilerMode -> CompilerMode
$cmin :: CompilerMode -> CompilerMode -> CompilerMode
max :: CompilerMode -> CompilerMode -> CompilerMode
$cmax :: CompilerMode -> CompilerMode -> CompilerMode
>= :: CompilerMode -> CompilerMode -> Bool
$c>= :: CompilerMode -> CompilerMode -> Bool
> :: CompilerMode -> CompilerMode -> Bool
$c> :: CompilerMode -> CompilerMode -> Bool
<= :: CompilerMode -> CompilerMode -> Bool
$c<= :: CompilerMode -> CompilerMode -> Bool
< :: CompilerMode -> CompilerMode -> Bool
$c< :: CompilerMode -> CompilerMode -> Bool
compare :: CompilerMode -> CompilerMode -> Ordering
$ccompare :: CompilerMode -> CompilerMode -> Ordering
Ord, Int -> CompilerMode -> ShowS
[CompilerMode] -> ShowS
CompilerMode -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CompilerMode] -> ShowS
$cshowList :: [CompilerMode] -> ShowS
show :: CompilerMode -> String
$cshow :: CompilerMode -> String
showsPrec :: Int -> CompilerMode -> ShowS
$cshowsPrec :: Int -> CompilerMode -> ShowS
Show)
data Verbosity
=
NotVerbose
|
Verbose
|
VeryVerbose
deriving (Verbosity -> Verbosity -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Verbosity -> Verbosity -> Bool
$c/= :: Verbosity -> Verbosity -> Bool
== :: Verbosity -> Verbosity -> Bool
$c== :: Verbosity -> Verbosity -> Bool
Eq, Eq Verbosity
Verbosity -> Verbosity -> Bool
Verbosity -> Verbosity -> Ordering
Verbosity -> Verbosity -> Verbosity
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: Verbosity -> Verbosity -> Verbosity
$cmin :: Verbosity -> Verbosity -> Verbosity
max :: Verbosity -> Verbosity -> Verbosity
$cmax :: Verbosity -> Verbosity -> Verbosity
>= :: Verbosity -> Verbosity -> Bool
$c>= :: Verbosity -> Verbosity -> Bool
> :: Verbosity -> Verbosity -> Bool
$c> :: Verbosity -> Verbosity -> Bool
<= :: Verbosity -> Verbosity -> Bool
$c<= :: Verbosity -> Verbosity -> Bool
< :: Verbosity -> Verbosity -> Bool
$c< :: Verbosity -> Verbosity -> Bool
compare :: Verbosity -> Verbosity -> Ordering
$ccompare :: Verbosity -> Verbosity -> Ordering
Ord)
data FutharkConfig = FutharkConfig
{ FutharkConfig -> (Verbosity, Maybe String)
futharkVerbose :: (Verbosity, Maybe FilePath),
FutharkConfig -> Bool
futharkWarn :: Bool,
FutharkConfig -> Bool
futharkWerror :: Bool,
FutharkConfig -> Bool
futharkSafe :: Bool,
FutharkConfig -> [Name]
futharkEntryPoints :: [Name],
FutharkConfig -> Bool
futharkTypeCheck :: Bool
}
newFutharkConfig :: FutharkConfig
newFutharkConfig :: FutharkConfig
newFutharkConfig =
FutharkConfig
{ futharkVerbose :: (Verbosity, Maybe String)
futharkVerbose = (Verbosity
NotVerbose, forall a. Maybe a
Nothing),
futharkWarn :: Bool
futharkWarn = Bool
True,
futharkWerror :: Bool
futharkWerror = Bool
False,
futharkSafe :: Bool
futharkSafe = Bool
False,
futharkEntryPoints :: [Name]
futharkEntryPoints = [],
futharkTypeCheck :: Bool
futharkTypeCheck = Bool
True
}