ats-pkg-2.11.0.10: A build tool for ATS

Safe HaskellNone
LanguageHaskell2010

Language.ATS.Package

Contents

Synopsis

Documentation

buildAll :: Int -> Maybe String -> Maybe FilePath -> IO () Source #

Build in current directory or indicated directory

mkPkg Source #

Arguments

:: Bool

Force rebuild

-> Bool

Run linter

-> Bool

Print build profiling information

-> [IO ()]

Setup

-> [String]

Targets

-> Maybe String

Target triple

-> Int

Verbosity

-> IO () 

Dhall verification helpers

checkPkgSet Source #

Arguments

:: FilePath

Path to .dhall file defining a package set.

-> Bool

Whether to print detailed error messages.

-> IO ATSPackageSet 

checkPkg :: FilePath -> Bool -> IO (Version -> ATSDependency) Source #

Check a pkg.dhall file.

Ecosystem functionality

Functions involving the compiler

packageCompiler :: FilePath -> IO () Source #

Make a tarball from a directory containing the compiler.

Functions for generic packaging

atsInstallDirs :: Hashable a => IO (InstallDirs a) Source #

The default set of install directories for an ATS package.

Types

newtype Version #

Constructors

Version [Natural] 
Instances
Eq Version 
Instance details

Defined in Data.Dependency.Type

Methods

(==) :: Version -> Version -> Bool #

(/=) :: Version -> Version -> Bool #

Ord Version 
Instance details

Defined in Data.Dependency.Type

Show Version 
Instance details

Defined in Data.Dependency.Type

Generic Version 
Instance details

Defined in Data.Dependency.Type

Associated Types

type Rep Version :: * -> * #

Methods

from :: Version -> Rep Version x #

to :: Rep Version x -> Version #

Binary Version 
Instance details

Defined in Data.Dependency.Type

Methods

put :: Version -> Put #

get :: Get Version #

putList :: [Version] -> Put #

NFData Version 
Instance details

Defined in Data.Dependency.Type

Methods

rnf :: Version -> () #

Hashable Version # 
Instance details

Defined in Language.ATS.Package.Debian

Methods

hashWithSalt :: Int -> Version -> Int #

hash :: Version -> Int #

Pretty Version # 
Instance details

Defined in Language.ATS.Package.PackageSet

Methods

pretty :: Version -> Doc #

prettyList :: [Version] -> Doc #

Interpret Version # 
Instance details

Defined in Language.ATS.Package.Debian

Inject Version # 
Instance details

Defined in Language.ATS.Package.Type

type Rep Version 
Instance details

Defined in Data.Dependency.Type

type Rep Version = D1 (MetaData "Version" "Data.Dependency.Type" "dependency-1.2.0.0-7ZFG6WbFSB7CWpO0QJysx6" True) (C1 (MetaCons "Version" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Natural])))

data Pkg Source #

Data type associated with atspkg.dhall file.

Constructors

Pkg 

Fields

Instances
Generic Pkg Source # 
Instance details

Defined in Language.ATS.Package.Type

Associated Types

type Rep Pkg :: * -> * #

Methods

from :: Pkg -> Rep Pkg x #

to :: Rep Pkg x -> Pkg #

Binary Pkg Source # 
Instance details

Defined in Language.ATS.Package.Type

Methods

put :: Pkg -> Put #

get :: Get Pkg #

putList :: [Pkg] -> Put #

Hashable Pkg Source # 
Instance details

Defined in Language.ATS.Package.Type

Methods

hashWithSalt :: Int -> Pkg -> Int #

hash :: Pkg -> Int #

Interpret Pkg Source # 
Instance details

Defined in Language.ATS.Package.Type

type Rep Pkg Source # 
Instance details

Defined in Language.ATS.Package.Type

type Rep Pkg

data Bin Source #

Constructors

Bin 

Fields

  • src :: Text

    Source file (should end with .dats)

  • target :: Text

    Binary to be built

  • libs :: [Text]

    Libraries to link against (e.g. [ "pthread" ])

  • hsDeps :: [ForeignCabal]

    Haskell .cabal files associated with the final library we want to make

  • hs2ats :: [TargetPair]

    List of sources and targets for hs2ats

  • gcBin :: Bool

    Whether to use the garbage collector

  • extras :: [Text]

    Extra source files the build depends on

Instances
Generic Bin Source # 
Instance details

Defined in Language.ATS.Package.Type

Associated Types

type Rep Bin :: * -> * #

Methods

from :: Bin -> Rep Bin x #

to :: Rep Bin x -> Bin #

Binary Bin Source # 
Instance details

Defined in Language.ATS.Package.Type

Methods

put :: Bin -> Put #

get :: Get Bin #

putList :: [Bin] -> Put #

Hashable Bin Source # 
Instance details

Defined in Language.ATS.Package.Type

Methods

hashWithSalt :: Int -> Bin -> Int #

hash :: Bin -> Int #

Interpret Bin Source # 
Instance details

Defined in Language.ATS.Package.Type

type Rep Bin Source # 
Instance details

Defined in Language.ATS.Package.Type

data Lib Source #

Constructors

Lib 

Fields

Instances
Generic Lib Source # 
Instance details

Defined in Language.ATS.Package.Type

Associated Types

type Rep Lib :: * -> * #

Methods

from :: Lib -> Rep Lib x #

to :: Rep Lib x -> Lib #

Binary Lib Source # 
Instance details

Defined in Language.ATS.Package.Type

Methods

put :: Lib -> Put #

get :: Get Lib #

putList :: [Lib] -> Put #

Hashable Lib Source # 
Instance details

Defined in Language.ATS.Package.Type

Methods

hashWithSalt :: Int -> Lib -> Int #

hash :: Lib -> Int #

Interpret Lib Source # 
Instance details

Defined in Language.ATS.Package.Type

type Rep Lib Source # 
Instance details

Defined in Language.ATS.Package.Type

data Src Source #

Constructors

Src 

Fields

Instances
Generic Src Source # 
Instance details

Defined in Language.ATS.Package.Type

Associated Types

type Rep Src :: * -> * #

Methods

from :: Src -> Rep Src x #

to :: Rep Src x -> Src #

Binary Src Source # 
Instance details

Defined in Language.ATS.Package.Type

Methods

put :: Src -> Put #

get :: Get Src #

putList :: [Src] -> Put #

Hashable Src Source # 
Instance details

Defined in Language.ATS.Package.Type

Methods

hashWithSalt :: Int -> Src -> Int #

hash :: Src -> Int #

Interpret Src Source # 
Instance details

Defined in Language.ATS.Package.Type

type Rep Src Source # 
Instance details

Defined in Language.ATS.Package.Type

data ATSConstraint Source #

Constructors

ATSConstraint 
Instances
Eq ATSConstraint Source # 
Instance details

Defined in Language.ATS.Package.Type

Show ATSConstraint Source # 
Instance details

Defined in Language.ATS.Package.Type

Generic ATSConstraint Source # 
Instance details

Defined in Language.ATS.Package.Type

Associated Types

type Rep ATSConstraint :: * -> * #

Binary ATSConstraint Source # 
Instance details

Defined in Language.ATS.Package.Type

Hashable ATSConstraint Source # 
Instance details

Defined in Language.ATS.Package.Type

Interpret ATSConstraint Source # 
Instance details

Defined in Language.ATS.Package.Type

type Rep ATSConstraint Source # 
Instance details

Defined in Language.ATS.Package.Type

type Rep ATSConstraint = D1 (MetaData "ATSConstraint" "Language.ATS.Package.Type" "ats-pkg-2.11.0.10-1NYQZ9dcPga4UaeFjkbcXs" False) (C1 (MetaCons "ATSConstraint" PrefixI True) (S1 (MetaSel (Just "lower") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe Version)) :*: S1 (MetaSel (Just "upper") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe Version))))

data ATSDependency Source #

Type for a dependency

Constructors

ATSDependency 

Fields

Instances
Generic ATSDependency Source # 
Instance details

Defined in Language.ATS.Package.Type

Associated Types

type Rep ATSDependency :: * -> * #

Binary ATSDependency Source # 
Instance details

Defined in Language.ATS.Package.Type

Hashable ATSDependency Source # 
Instance details

Defined in Language.ATS.Package.Type

Pretty ATSDependency # 
Instance details

Defined in Language.ATS.Package.PackageSet

Interpret ATSDependency Source # 
Instance details

Defined in Language.ATS.Package.Type

type Rep ATSDependency Source # 
Instance details

Defined in Language.ATS.Package.Type

data TargetPair Source #

This is just a tuple, except I can figure out how to use it with Dhall.

Constructors

TargetPair 

Fields

Instances
Generic TargetPair Source # 
Instance details

Defined in Language.ATS.Package.Type

Associated Types

type Rep TargetPair :: * -> * #

Binary TargetPair Source # 
Instance details

Defined in Language.ATS.Package.Type

Hashable TargetPair Source # 
Instance details

Defined in Language.ATS.Package.Type

Interpret TargetPair Source # 
Instance details

Defined in Language.ATS.Package.Type

type Rep TargetPair Source # 
Instance details

Defined in Language.ATS.Package.Type

type Rep TargetPair = D1 (MetaData "TargetPair" "Language.ATS.Package.Type" "ats-pkg-2.11.0.10-1NYQZ9dcPga4UaeFjkbcXs" False) (C1 (MetaCons "TargetPair" PrefixI True) (S1 (MetaSel (Just "hs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Text) :*: (S1 (MetaSel (Just "ats") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Text) :*: S1 (MetaSel (Just "cpphs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool))))

data ForeignCabal #

Data type containing information about Haskell components of a build. Any functions exposed in the object file will be callable in C or ATS code.

Constructors

ForeignCabal 

Fields

Instances
Eq ForeignCabal 
Instance details

Defined in Development.Shake.ATS.Type

Show ForeignCabal 
Instance details

Defined in Development.Shake.ATS.Type

Generic ForeignCabal 
Instance details

Defined in Development.Shake.ATS.Type

Associated Types

type Rep ForeignCabal :: * -> * #

Binary ForeignCabal 
Instance details

Defined in Development.Shake.ATS.Type

Hashable ForeignCabal 
Instance details

Defined in Development.Shake.ATS.Type

Interpret ForeignCabal # 
Instance details

Defined in Language.ATS.Package.Type

type Rep ForeignCabal 
Instance details

Defined in Development.Shake.ATS.Type

type Rep ForeignCabal = D1 (MetaData "ForeignCabal" "Development.Shake.ATS.Type" "shake-ats-1.9.0.1-AQYUk2Gkj8HEY4099b85S8" False) (C1 (MetaCons "ForeignCabal" PrefixI True) (S1 (MetaSel (Just "projectFile") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe Text)) :*: (S1 (MetaSel (Just "cabalFile") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Text) :*: S1 (MetaSel (Just "objectFile") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Text))))

Generic Packaging

newtype Package a b Source #

The package monad provides information about the package to be installed, in particular, the directory for installation and the directories for dependencies.

Constructors

Package 

Fields

Instances
Monad (Package a) Source # 
Instance details

Defined in Language.ATS.Package.Generic

Methods

(>>=) :: Package a a0 -> (a0 -> Package a b) -> Package a b #

(>>) :: Package a a0 -> Package a b -> Package a b #

return :: a0 -> Package a a0 #

fail :: String -> Package a a0 #

Functor (Package a) Source # 
Instance details

Defined in Language.ATS.Package.Generic

Methods

fmap :: (a0 -> b) -> Package a a0 -> Package a b #

(<$) :: a0 -> Package a b -> Package a a0 #

Applicative (Package a) Source # 
Instance details

Defined in Language.ATS.Package.Generic

Methods

pure :: a0 -> Package a a0 #

(<*>) :: Package a (a0 -> b) -> Package a a0 -> Package a b #

liftA2 :: (a0 -> b -> c) -> Package a a0 -> Package a b -> Package a c #

(*>) :: Package a a0 -> Package a b -> Package a b #

(<*) :: Package a a0 -> Package a b -> Package a a0 #

data InstallDirs a Source #

Functions containing installation information about a particular type.

Constructors

InstallDirs 

Fields

type CacheValid a = a -> a -> Bool Source #

Compares cached value to new value, returning True if valid.

Typeclasses

class Hashable a => GenericPackage a where Source #

Any type implementing GenericPackage can be depended on by other packages.

Minimal complete definition

binRules, libRules, includeRules

Methods

binRules :: a -> Package a () Source #

libRules :: a -> Package a () Source #

includeRules :: a -> Package a () Source #

Lenses