ats-pkg 1.4.0.6 → 2.0.0.2
raw patch · 5 files changed
+22/−9 lines, 5 filesdep ~shake-atsPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: shake-ats
API changes (from Hackage documentation)
+ Language.ATS.Package: [hs2ats] :: Bin -> [TargetPair]
+ Language.ATS.Package: [hsDeps] :: Bin -> [Text]
- Language.ATS.Package: Bin :: Text -> Text -> [Text] -> Bool -> Bin
+ Language.ATS.Package: Bin :: Text -> Text -> [Text] -> [Text] -> [TargetPair] -> Bool -> Bin
Files
- ats-pkg.cabal +2/−2
- src/Language/ATS/Package/Build.hs +6/−2
- src/Language/ATS/Package/Dependency.hs +3/−2
- src/Language/ATS/Package/Type.hs +7/−0
- stack.yaml +4/−3
ats-pkg.cabal view
@@ -1,5 +1,5 @@ name: ats-pkg-version: 1.4.0.6+version: 2.0.0.2 synopsis: Package manager for ATS description: A collection of scripts to make building ATS projects easy. homepage: https://github.com/vmchale/ats-pkg#readme@@ -50,7 +50,7 @@ , unix , lens , dhall- , shake-ats+ , shake-ats >= 0.3.0.3 , shake-ext >= 1.4.0.2 , composition-prelude >= 1.1.0.2 , optparse-applicative
src/Language/ATS/Package/Build.hs view
@@ -21,6 +21,7 @@ import Language.ATS.Package.Type import System.Directory (getCurrentDirectory) +-- TODO clean generated ATS mkClean :: Rules () mkClean = "clean" ~> do@@ -87,11 +88,14 @@ mkInstall >> (pkgToAction rs =<< getConfig) +asTuple :: TargetPair -> (Text, Text)+asTuple (TargetPair s t) = (s, t)+ -- TODO infer dependencies on gc/atomic gc based on boolean flag. pkgToAction :: [String] -> Pkg -> Rules () pkgToAction rs (Pkg bs ts mt v v' ds cds cc cf as cdir) = do unless (rs == ["clean"]) $- let cdps = if any gc bs then libcAtomicOps : libcGC : cds else cds in+ let cdps = if any gc bs then libcAtomicOps : libcGC (Version [7,6,4]) : cds else cds in liftIO $ fetchDeps False ds cdps >> stopGlobalPool action (need ["atspkg.dhall"]) mapM_ g (bs ++ ts)@@ -103,7 +107,7 @@ (Just m) -> want (bool bins (manTarget m : bins) pa) Nothing -> want bins - where g (Bin s t ls gc') = atsBin (TL.unpack cc) (TL.unpack <$> cf) v v' gc' (TL.unpack <$> ls) (TL.unpack s) (TL.unpack t)+ where g (Bin s t ls hs' atg gc') = atsBin (TL.unpack cc) (TL.unpack <$> cf) v v' gc' (TL.unpack <$> ls) (TL.unpack s) (TL.unpack <$> hs') (both TL.unpack . asTuple <$> atg) (TL.unpack t) cDeps = unless (null as) $ do let cedar = TL.unpack cdir atsSourceDirs = nub (takeDirectory . TL.unpack <$> as)
src/Language/ATS/Package/Dependency.hs view
@@ -31,8 +31,9 @@ libcAtomicOps :: Dependency libcAtomicOps = Dependency "atomic-ops" "atomic-ops-7.6.2" "https://github.com/ivmai/libatomic_ops/releases/download/v7.6.2/libatomic_ops-7.6.2.tar.gz" (Version [7,6,2]) -libcGC :: Dependency-libcGC = Dependency "gc" "gc-7.4.10" "https://github.com/ivmai/bdwgc/releases/download/v7.4.10/gc-7.4.10.tar.gz" (Version [7,4,10])+libcGC :: Version -> Dependency+libcGC v = Dependency "gc" ("gc-" <> g v) ("https://github.com/ivmai/bdwgc/releases/download/v" <> g v <> "/gc-" <> g v <> ".tar.gz") v+ where g = TL.pack . show fetchDeps :: Bool -- ^ Set to 'False' if unsure. -> [Dependency] -- ^ ATS dependencies
src/Language/ATS/Package/Type.hs view
@@ -15,6 +15,7 @@ , Bin (..) , Version (..) , Constraint (..)+ , TargetPair (..) -- * Lenses , dirLens ) where@@ -44,9 +45,15 @@ makeLensesFor [("dir", "dirLens")] ''Dependency +data TargetPair = TargetPair { hs :: Text+ , ats :: Text+ } deriving (Eq, Show, Generic, Interpret)+ data Bin = Bin { src :: Text -- ^ Source file (should end with @.dats@) , target :: Text -- ^ Binary to be built , libs :: [Text] -- ^ Libraries to link against (e.g. @[ "pthread" ]@)+ , hsDeps :: [Text] -- ^ Haskell source files to link against final generated ATS+ , hs2ats :: [TargetPair] -- ^ List of sources and targets for @hs2ats@ , gc :: Bool -- ^ Whether to use the garbage collector } deriving (Show, Eq, Generic, Interpret)
stack.yaml view
@@ -3,11 +3,12 @@ packages: - '.' extra-deps:- - shake-ext-1.4.0.3- - shake-ats-0.2.0.4+ - shake-ext-1.4.0.8+ - shake-ats-0.3.0.3 - composition-prelude-1.1.0.2- - language-ats-0.1.1.5+ - language-ats-0.1.1.8 - cli-setup-0.1.0.3+ - hs2ats-0.1.0.1 flags: ats-pkg: development: false