ats-pkg 3.4.0.7 → 3.4.0.8
raw patch · 7 files changed
+326/−352 lines, 7 filesdep −bzlib
Dependencies removed: bzlib
Files
- CHANGELOG.md +6/−1
- app/Main.hs +1/−1
- ats-pkg.cabal +1/−2
- dhall/atslib.dhall +73/−48
- dhall/atspkg-prelude.dhall +233/−291
- dhall/config.dhall +8/−7
- src/Language/ATS/Package/Build.hs +4/−2
CHANGELOG.md view
@@ -1,8 +1,13 @@ # ats-pkg -## 3.4.0.4+## 3.4.0.8 * Drop `.bz2` decompression; support GHC 8.8.1++## 3.4.0.5++ * Pin Dhall package+ * More sensible verbosity flag ## 3.4.0.3
app/Main.hs view
@@ -264,7 +264,7 @@ x = [buildAll v mStr tgt Nothing] run :: Command -> IO ()-run List = displayList "https://raw.githubusercontent.com/vmchale/atspkg/master/ats-pkg/pkgs/pkg-set.dhall"+run List = displayList "https://raw.githubusercontent.com/vmchale/atspkg/baac3c7bdcb0d617fba43818dbb66da554092039/ats-pkg/pkgs/pkg-set.dhall sha256:a16dc6b6d4d803a90682ec4e105a568a3c57bea8369fab6befccb9e6d203c615" run (Check p b) = void $ ($ Version [0,1,0]) <$> checkPkg p b run (CheckSet p b) = void $ checkPkgSet p b run Upgrade = upgradeBin "vmchale" "atspkg"
ats-pkg.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.0 name: ats-pkg-version: 3.4.0.7+version: 3.4.0.8 license: BSD3 license-file: LICENSE copyright: Copyright: (c) 2018-2019 Vanessa McHale@@ -70,7 +70,6 @@ bytestring -any, file-embed >=0.0.9, shake >=0.18.4,- bzlib -any, Cabal >=2.2.0.0, lzma -any, zlib -any,
dhall/atslib.dhall view
@@ -1,58 +1,83 @@ {- Dhall prelude imports -}-let map = https://raw.githubusercontent.com/dhall-lang/dhall-lang/master/Prelude/List/map sha256:dd845ffb4568d40327f2a817eb42d1c6138b929ca758d50bc33112ef3c885680-in-let concat = https://raw.githubusercontent.com/dhall-lang/dhall-lang/master/Prelude/List/concat sha256:54e43278be13276e03bd1afa89e562e94a0a006377ebea7db14c7562b0de292b-in+let map =+ https://raw.githubusercontent.com/dhall-lang/dhall-lang/master/Prelude/List/map sha256:dd845ffb4568d40327f2a817eb42d1c6138b929ca758d50bc33112ef3c885680 -{- ATSPackage parts -}-let prelude = https://raw.githubusercontent.com/vmchale/atspkg/master/ats-pkg/dhall/atspkg-prelude.dhall sha256:33e41e509b6cfd0b075d1a8a5210ddfd1919372f9d972c2da783c6187d2298ba-in+let concat =+ https://raw.githubusercontent.com/dhall-lang/dhall-lang/master/Prelude/List/concat sha256:54e43278be13276e03bd1afa89e562e94a0a006377ebea7db14c7562b0de292b -{- Helper functions -}+let prelude =+ https://raw.githubusercontent.com/vmchale/atspkg/master/ats-pkg/dhall/atspkg-prelude.dhall sha256:33e41e509b6cfd0b075d1a8a5210ddfd1919372f9d972c2da783c6187d2298ba+ let mapDir =- λ(rec : {dir : Text, xs : List Text }) →- map Text Text- (λ(x : Text) → "${rec.dir}/DATS/${x}.dats")- rec.xs-in+ λ(rec : { dir : Text, xs : List Text })+ → map Text Text (λ(x : Text) → "${rec.dir}/DATS/${x}.dats") rec.xs -let mapPre =- λ(xs : List Text) →- mapDir { dir = "prelude", xs = xs }-in+let mapPre = λ(xs : List Text) → mapDir { dir = "prelude", xs = xs } -let mapC =- λ(xs : List Text) →- mapDir { dir = "libats/libc", xs = xs }-in+let mapC = λ(xs : List Text) → mapDir { dir = "libats/libc", xs = xs } -let mapML =- λ(xs : List Text) →- mapDir { dir = "libats/ML", xs = xs }-in+let mapML = λ(xs : List Text) → mapDir { dir = "libats/ML", xs = xs } let atslib =- λ(compilerVersion : List Natural) →- λ(libVersion : List Natural) →- prelude.default ⫽- { libraries =- [- prelude.staticLib ⫽- { libTarget = "target/libatslib.a"- , name = "atslib"- , src =- concat Text- [ mapPre [ "bool", "integer", "basics", "pointer", "integer_long", "integer_short", "integer_size", "char", "float", "string", "strptr", "integer_ptr", "integer_fixed", "filebas" ]- , mapC [ "math", "float", "errno", "fcntl", "dirent", "stdio", "stdlib", "string", "strings", "time", "unistd" ]- , mapML [ "list0", "option0", "array0", "matrix0", "string", "strarr", "gvalue", "dynarray", "hashtblref", "filebas", "filebas_dirent" ]- ]- , includes = ([] : List Text)- }- ]- , cflags = [ "-fPIC" ]- , compiler = compilerVersion- , version = libVersion- }-in+ λ(compilerVersion : List Natural)+ → λ(libVersion : List Natural)+ → prelude.default+ ⫽ { libraries =+ [ prelude.staticLib+ ⫽ { libTarget = "target/libatslib.a"+ , name = "atslib"+ , src =+ concat+ Text+ [ mapPre+ [ "bool"+ , "integer"+ , "basics"+ , "pointer"+ , "integer_long"+ , "integer_short"+ , "integer_size"+ , "char"+ , "float"+ , "string"+ , "strptr"+ , "integer_ptr"+ , "integer_fixed"+ , "filebas"+ ]+ , mapC+ [ "math"+ , "float"+ , "errno"+ , "fcntl"+ , "dirent"+ , "stdio"+ , "stdlib"+ , "string"+ , "strings"+ , "time"+ , "unistd"+ ]+ , mapML+ [ "list0"+ , "option0"+ , "array0"+ , "matrix0"+ , "string"+ , "strarr"+ , "gvalue"+ , "dynarray"+ , "hashtblref"+ , "filebas"+ , "filebas_dirent"+ ]+ ]+ , includes = [] : List Text+ }+ ]+ , cflags = [ "-fPIC" ]+ , compiler = compilerVersion+ , version = libVersion+ } -atslib [0,3,13] [0,3,13]+in atslib [ 0, 3, 13 ] [ 0, 3, 13 ]
dhall/atspkg-prelude.dhall view
@@ -1,376 +1,318 @@ {- Dhall prelude functions -}-let concatMapSep = https://raw.githubusercontent.com/dhall-lang/dhall-lang/9f259cd68870b912fbf2f2a08cd63dc3ccba9dc3/Prelude/Text/concatMapSep sha256:c272aca80a607bc5963d1fcb38819e7e0d3e72ac4d02b1183b1afb6a91340840-in-let map = https://raw.githubusercontent.com/dhall-lang/dhall-lang/9f259cd68870b912fbf2f2a08cd63dc3ccba9dc3/Prelude/List/map sha256:dd845ffb4568d40327f2a817eb42d1c6138b929ca758d50bc33112ef3c885680-in+let concatMapSep =+ https://raw.githubusercontent.com/dhall-lang/dhall-lang/9f259cd68870b912fbf2f2a08cd63dc3ccba9dc3/Prelude/Text/concatMapSep sha256:c272aca80a607bc5963d1fcb38819e7e0d3e72ac4d02b1183b1afb6a91340840 -{- Types for export and supporting functions -}-let ATSConstraint = { lower : Optional (List Natural), upper : Optional (List Natural) }-in+let map =+ https://raw.githubusercontent.com/dhall-lang/dhall-lang/9f259cd68870b912fbf2f2a08cd63dc3ccba9dc3/Prelude/List/map sha256:dd845ffb4568d40327f2a817eb42d1c6138b929ca758d50bc33112ef3c885680 +let ATSConstraint =+ { lower : Optional (List Natural), upper : Optional (List Natural) }+ let LibDep = { _1 : Text, _2 : ATSConstraint }-in let LinkType = { _1 : Text, _2 : Text }-in -let ForeignCabal = { projectFile : Optional Text, cabalFile : Text, objectFile : Text }-in+let ForeignCabal =+ { projectFile : Optional Text, cabalFile : Text, objectFile : Text } let TargetPair = { hs : Text, ats : Text, cpphs : Bool }-in let CCompiler = < CompCert | Clang | GCC | ICC | CC >-in let Bin =- { src : Text- , target : Text- , libs : List Text- , hsDeps : List ForeignCabal- , hs2ats : List TargetPair- , gcBin : Bool- , extras : List Text- }-in+ { src : Text+ , target : Text+ , libs : List Text+ , hsDeps : List ForeignCabal+ , hs2ats : List TargetPair+ , gcBin : Bool+ , extras : List Text+ } let Lib =- { name : Text- , src : List Text- , libTarget : Text- , libs : List Text- , includes : List Text- , hsDeps : List ForeignCabal- , links : List LinkType- , hs2ats : List TargetPair- , extras : List Text- , static : Bool- }-in+ { name : Text+ , src : List Text+ , libTarget : Text+ , libs : List Text+ , includes : List Text+ , hsDeps : List ForeignCabal+ , links : List LinkType+ , hs2ats : List TargetPair+ , extras : List Text+ , static : Bool+ } let Src =- { atsSrc : Text- , cTarget : Text- , atsGen : List TargetPair- , extras : List Text- }-in+ { atsSrc : Text+ , cTarget : Text+ , atsGen : List TargetPair+ , extras : List Text+ } let Script = { configure : Optional Text, build : Text, install : Text }-in let Debian =- { package : Text- , version : List Natural- , maintainer : Text- , description : Text- , target : Text- , manpage : Optional Text- , binaries : List Text- , libraries : List Text- , headers : List Text- , license : Optional Text- , changelog : Optional Text- }-in+ { package : Text+ , version : List Natural+ , maintainer : Text+ , description : Text+ , target : Text+ , manpage : Optional Text+ , binaries : List Text+ , libraries : List Text+ , headers : List Text+ , license : Optional Text+ , changelog : Optional Text+ } let script =- λ(x : {dir : Text, target : Optional Text}) →- { configure = Some "./configure --prefix=${x.dir}", build = "make -j6", install = "make install" } : Script-in+ λ(x : { dir : Text, target : Optional Text })+ → { configure = Some "./configure --prefix=${x.dir}"+ , build = "make -j6"+ , install = "make install"+ }+ : Script let src =- λ(x : { atsSrc : Text, cTarget : Text }) →- { atsSrc = x.atsSrc- , cTarget = x.cTarget- , atsGen = []- : List TargetPair- , extras = []- : List Text- }-in+ λ(x : { atsSrc : Text, cTarget : Text })+ → { atsSrc = x.atsSrc+ , cTarget = x.cTarget+ , atsGen = [] : List TargetPair+ , extras = [] : List Text+ } -let iccFlags =- [ "-D__PURE_INTEL_C99_HEADERS__" ]-in+let iccFlags = [ "-D__PURE_INTEL_C99_HEADERS__" ] -let mapSrc = λ(x : List { atsSrc : Text, cTarget : Text}) → map { atsSrc : Text, cTarget : Text } Src src x-in+let mapSrc =+ λ(x : List { atsSrc : Text, cTarget : Text })+ → map { atsSrc : Text, cTarget : Text } Src src x -{- Helper functions -}-let patsHome =- ".atspkg/contrib"-in+let patsHome = ".atspkg/contrib" -let showVersion =- λ(x : List Natural) → concatMapSep "." Natural Natural/show x-in+let showVersion = λ(x : List Natural) → concatMapSep "." Natural Natural/show x let none = None (List Natural)-in+ let plainDeps = λ(x : Text) → { _1 = x, _2 = { lower = none, upper = none } }-in -let eqDeps = λ(x : { name : Text, version : List Natural }) →- { _1 = x.name- , _2 = { lower = Some x.version- , upper = Some x.version- }- }-in+let eqDeps =+ λ(x : { name : Text, version : List Natural })+ → { _1 = x.name, _2 = { lower = Some x.version, upper = Some x.version } } -let lowerDeps = λ(x : { name : Text, version : List Natural }) →- { _1 = x.name- , _2 = { lower = Some x.version- , upper = none- }- }-in+let lowerDeps =+ λ(x : { name : Text, version : List Natural })+ → { _1 = x.name, _2 = { lower = Some x.version, upper = none } } -let upperDeps = λ(x : { name : Text, version : List Natural }) →- { _1 = x.name- , _2 = { lower = none- , upper = Some x.version- }- }-in+let upperDeps =+ λ(x : { name : Text, version : List Natural })+ → { _1 = x.name, _2 = { lower = none, upper = Some x.version } } let mapPlainDeps = λ(x : List Text) → map Text LibDep plainDeps x-in -{- Default configurations -} let dep =- { dir = patsHome- , libVersion = [0,1,0]- , libDeps = []- : List LibDep- , libBldDeps = []- : List LibDep- , libCDeps = []- : List LibDep- , description = None Text- , script = []- : List Text- }-in+ { dir = patsHome+ , libVersion = [ 0, 1, 0 ]+ , libDeps = [] : List LibDep+ , libBldDeps = [] : List LibDep+ , libCDeps = [] : List LibDep+ , description = None Text+ , script = [] : List Text+ } let common =- { libs = ([] : List Text)- , hsDeps = ([] : List ForeignCabal)- , hs2ats = ([] : List TargetPair)- , extras = ([] : List Text)- }-in+ { libs = [] : List Text+ , hsDeps = [] : List ForeignCabal+ , hs2ats = [] : List TargetPair+ , extras = [] : List Text+ } -let bin =- common ⫽ { gcBin = False }-in+let bin = common ⫽ { gcBin = False } let lib =- common ⫽- { links = ([] : List { _1 : Text, _2 : Text })- , includes = ([] : List Text)- , static = False- }-in+ common+ ⫽ { links = [] : List { _1 : Text, _2 : Text }+ , includes = [] : List Text+ , static = False+ } -let staticLib =- lib ⫽ { static = True }-in+let staticLib = lib ⫽ { static = True } let Solver = < PatsSolve | Z3 | Ignore >-in let solver = Solver.PatsSolve-in let ignore = Solver.Ignore-in -let default- = { bin = []- : List Bin- , test = []- : List Bin- , bench = []- : List Bin- , libraries = []- : List Lib- , man = None Text- , completions = None Text- , version = [0,3,13]- , compiler = [0,3,13]- , dependencies = []- : List LibDep- , clib = []- : List LibDep- , buildDeps = []- : List LibDep- , ccompiler = "gcc"- , cflags = [ "-O2" ]- , atsFlags = []- : List Text- , atsSource = []- : List Src- , dynLink = True- , extSolve = solver- , debPkg = None Debian- , atsLib = True- }-in+let default =+ { bin = [] : List Bin+ , test = [] : List Bin+ , bench = [] : List Bin+ , libraries = [] : List Lib+ , man = None Text+ , completions = None Text+ , version = [ 0, 3, 13 ]+ , compiler = [ 0, 3, 13 ]+ , dependencies = [] : List LibDep+ , clib = [] : List LibDep+ , buildDeps = [] : List LibDep+ , ccompiler = "gcc"+ , cflags = [ "-O2" ]+ , atsFlags = [] : List Text+ , atsSource = [] : List Src+ , dynLink = True+ , extSolve = solver+ , debPkg = None Debian+ , atsLib = True+ } let debian =- λ(project : Text) →- { package = project- , target = "target/${project}.deb"- , manpage = None Text- , binaries = []- : List Text- , libraries = []- : List Text- , headers = []- : List Text- , license = None Text- , changelog = None Text- }-in+ λ(project : Text)+ → { package = project+ , target = "target/${project}.deb"+ , manpage = None Text+ , binaries = [] : List Text+ , libraries = [] : List Text+ , headers = [] : List Text+ , license = None Text+ , changelog = None Text+ } -{- Package functions -} let makePkg =- λ(rec : { x : List Natural, name : Text, githubUsername : Text}) →- dep ⫽- { libName = rec.name- , dir = "${patsHome}"- , url = "https://github.com/${rec.githubUsername}/${rec.name}/archive/${showVersion rec.x}.tar.gz"- , libVersion = rec.x- }-in+ λ(rec : { x : List Natural, name : Text, githubUsername : Text })+ → dep+ ⫽ { libName = rec.name+ , dir = "${patsHome}"+ , url =+ "https://github.com/${rec.githubUsername}/${rec.name}/archive/${showVersion+ rec.x}.tar.gz"+ , libVersion = rec.x+ } let makeNpmPkg =- λ(rec : { x : List Natural, name : Text, unpackDir : Text }) →- dep ⫽- { libName = rec.name- , dir = "${patsHome}/${rec.unpackDir}"- , url = "https://registry.npmjs.org/${rec.unpackDir}/-/${rec.unpackDir}-${showVersion rec.x}.tgz"- , libVersion = rec.x- }-in+ λ(rec : { x : List Natural, name : Text, unpackDir : Text })+ → dep+ ⫽ { libName = rec.name+ , dir = "${patsHome}/${rec.unpackDir}"+ , url =+ "https://registry.npmjs.org/${rec.unpackDir}/-/${rec.unpackDir}-${showVersion+ rec.x}.tgz"+ , libVersion = rec.x+ } let makeHsPkg =- λ(rec : { x : List Natural, name : Text }) →- dep ⫽- { libName = rec.name- , dir = "${patsHome}"- , url = "https://hackage.haskell.org/package/${rec.name}-${showVersion rec.x}/${rec.name}-${showVersion rec.x}.tar.gz"- , libVersion = rec.x- }-in+ λ(rec : { x : List Natural, name : Text })+ → dep+ ⫽ { libName = rec.name+ , dir = "${patsHome}"+ , url =+ "https://hackage.haskell.org/package/${rec.name}-${showVersion+ rec.x}/${rec.name}-${showVersion+ rec.x}.tar.gz"+ , libVersion = rec.x+ } let makePkgDescr =- λ(x : { x : List Natural, name : Text, githubUsername : Text, description : Text }) →- makePkg { x = x.x, name = x.name, githubUsername = x.githubUsername }- ⫽ { description = Some (x.description) }-in+ λ ( x+ : { x : List Natural+ , name : Text+ , githubUsername : Text+ , description : Text+ }+ )+ → makePkg { x = x.x, name = x.name, githubUsername = x.githubUsername }+ ⫽ { description = Some x.description } let cabalDir = "dist-newstyle/lib"-in -{- Various empty directories because Dhall no longer allows type exports -}-let emptySrc =- [] : List Src-in+let emptySrc = [] : List Src -let emptyBin =- [] : List Bin-in+let emptyBin = [] : List Bin -let emptyLib =- [] : List Lib-in+let emptyLib = [] : List Lib -let mkDeb =- λ(deb : Debian) →- Some deb-in+let mkDeb = λ(deb : Debian) → Some deb let noPrelude =- [ "-D_ATS_CCOMP_PRELUDE_NONE_", "-D_ATS_CCOMP_EXCEPTION_NONE_", "-D_ATS_CCOMP_RUNTIME_NONE_" ]-in+ [ "-D_ATS_CCOMP_PRELUDE_NONE_"+ , "-D_ATS_CCOMP_EXCEPTION_NONE_"+ , "-D_ATS_CCOMP_RUNTIME_NONE_"+ ] let atsProject = "target"-in let gcc = CCompiler.GCC-in+ let clang = CCompiler.Clang-in+ let compCert = CCompiler.CompCert-in+ let icc = CCompiler.ICC-in+ let cc = CCompiler.CC-in let printCompiler =- λ(cc : CCompiler) →- merge { CompCert = "ccomp"- , Clang = "clang"- , GCC = "gcc"- , ICC = "icc"- , CC = "cc"- }- cc-in+ λ(cc : CCompiler)+ → merge+ { CompCert = "ccomp"+ , Clang = "clang"+ , GCC = "gcc"+ , ICC = "icc"+ , CC = "cc"+ }+ cc let ccFlags =- λ(cc : CCompiler) →- merge { CompCert = [ "-O2", "-fstruct-passing" ]- , Clang = [ "-O2", "-mtune=native", "-flto" ]- , GCC = [ "-O2", "-mtune=native", "-flto" ]- , ICC = [ "-O2", "-mtune=native", "-flto", "-D__PURE_INTEL_C99_HEADERS__" ]- , CC = [ "-O2" ]- }- cc-in+ λ(cc : CCompiler)+ → merge+ { CompCert = [ "-O2", "-fstruct-passing" ]+ , Clang = [ "-O2", "-mtune=native", "-flto" ]+ , GCC = [ "-O2", "-mtune=native", "-flto" ]+ , ICC =+ [ "-O2"+ , "-mtune=native"+ , "-flto"+ , "-D__PURE_INTEL_C99_HEADERS__"+ ]+ , CC = [ "-O2" ]+ }+ cc let iccFlags = [ "-D__PURE_INTEL_C99_HEADERS__" ]-in -{- We collect everything in a single record for convenience -}-{ mkDeb = mkDeb-, emptySrc = emptySrc-, emptyBin = emptyBin-, emptyLib = emptyLib-, showVersion = showVersion-, makePkg = makePkg-, bin = bin-, lib = lib-, dep = dep-, staticLib = staticLib-, default = default-, plainDeps = plainDeps-, lowerDeps = lowerDeps-, upperDeps = upperDeps-, eqDeps = eqDeps-, mapPlainDeps = mapPlainDeps-, src = src-, mapSrc = mapSrc-, makePkgDescr = makePkgDescr-, makeHsPkg = makeHsPkg-, makeNpmPkg = makeNpmPkg-, patsHome = patsHome-, cabalDir = cabalDir-, solver = solver-, ignore = ignore-, debian = debian-, noPrelude = noPrelude-, atsProject = atsProject-, gcc = gcc-, clang = clang-, compCert = compCert-, icc = icc-, cc = cc-, printCompiler = printCompiler-, ccFlags = ccFlags-, iccFlags = iccFlags-}+in { mkDeb = mkDeb+ , emptySrc = emptySrc+ , emptyBin = emptyBin+ , emptyLib = emptyLib+ , showVersion = showVersion+ , makePkg = makePkg+ , bin = bin+ , lib = lib+ , dep = dep+ , staticLib = staticLib+ , default = default+ , plainDeps = plainDeps+ , lowerDeps = lowerDeps+ , upperDeps = upperDeps+ , eqDeps = eqDeps+ , mapPlainDeps = mapPlainDeps+ , src = src+ , mapSrc = mapSrc+ , makePkgDescr = makePkgDescr+ , makeHsPkg = makeHsPkg+ , makeNpmPkg = makeNpmPkg+ , patsHome = patsHome+ , cabalDir = cabalDir+ , solver = solver+ , ignore = ignore+ , debian = debian+ , noPrelude = noPrelude+ , atsProject = atsProject+ , gcc = gcc+ , clang = clang+ , compCert = compCert+ , icc = icc+ , cc = cc+ , printCompiler = printCompiler+ , ccFlags = ccFlags+ , iccFlags = iccFlags+ }
dhall/config.dhall view
@@ -1,9 +1,10 @@-let commit = "baac3c7bdcb0d617fba43818dbb66da554092039"+let commit = "c0ab1d0f37385b8bb762a3d73d9e44388601eefe"+ let hash = ""-in -{ defaultPkgs = "https://raw.githubusercontent.com/vmchale/atspkg/${commit}/ats-pkg/pkgs/pkg-set.dhall sha256:a16dc6b6d4d803a90682ec4e105a568a3c57bea8369fab6befccb9e6d203c615"-, path = (None Text)-, githubUsername = ""-, filterErrors = False-}+in { defaultPkgs =+ "https://raw.githubusercontent.com/vmchale/atspkg/${commit}/ats-pkg/pkgs/pkg-set.dhall sha256:a16dc6b6d4d803a90682ec4e105a568a3c57bea8369fab6befccb9e6d203c615"+ , path = None Text+ , githubUsername = ""+ , filterErrors = False+ }
src/Language/ATS/Package/Build.hs view
@@ -174,8 +174,10 @@ toVerbosity :: Int -> Verbosity toVerbosity 0 = Info-toVerbosity 1 = Verbose-toVerbosity 2 = Diagnostic+toVerbosity 1 = Info+toVerbosity 2 = Info+toVerbosity 3 = Verbose+toVerbosity 4 = Diagnostic toVerbosity _ = Diagnostic -- should be a warning options :: Bool -- ^ Whether to rebuild all targets