ats-pkg 1.1.0.1 → 1.1.0.2
raw patch · 6 files changed
+36/−32 lines, 6 filesdep ~shake-extPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: shake-ext
API changes (from Hackage documentation)
- Language.ATS.Package.Type: printConfig :: IO ()
+ Language.ATS.Package: instance GHC.Classes.Eq Language.ATS.Package.Version
+ Language.ATS.Package.Type: [compiler] :: Pkg -> [Integer]
- Language.ATS.Package.Type: Pkg :: [Bin] -> [Bin] -> Maybe Text -> [Integer] -> [Dependency] -> Pkg
+ Language.ATS.Package.Type: Pkg :: [Bin] -> [Bin] -> Maybe Text -> [Integer] -> [Integer] -> [Dependency] -> Pkg
Files
- ats-pkg.cabal +2/−2
- src/Language/ATS/Package.hs +2/−1
- src/Language/ATS/Package/Dependency.hs +5/−9
- src/Language/ATS/Package/Exec.hs +9/−6
- src/Language/ATS/Package/Type.hs +17/−13
- stack.yaml +1/−1
ats-pkg.cabal view
@@ -1,5 +1,5 @@ name: ats-pkg-version: 1.1.0.1+version: 1.1.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@@ -43,7 +43,7 @@ , unix , lens , dhall- , shake-ext >= 1.1.0.0+ , shake-ext >= 1.2.0.0 , composition-prelude >= 1.1.0.1 default-language: Haskell2010 if flag(development)
src/Language/ATS/Package.hs view
@@ -29,6 +29,7 @@ (removeDirectoryRecursive =<< compilerDir v) newtype Version = Version [Integer]+ deriving (Eq) instance Show Version where show (Version is) = intercalate "." (show <$> is)@@ -56,7 +57,7 @@ putStrLn "Fetching compiler..." manager <- newManager tlsManagerSettings- initialRequest <- parseRequest $ pkgUrl v -- "https://github.com/vmchale/fastcat/releases/download/0.1.5/ATS2-Postiats-0.3.8.tar.gz"+ initialRequest <- parseRequest $ pkgUrl v response <- responseBody <$> httpLbs (initialRequest { method = "GET" }) manager putStrLn "Unpacking compiler..."
src/Language/ATS/Package/Dependency.hs view
@@ -26,16 +26,12 @@ } deriving (Eq, Show, Generic, Interpret) --- https://github.com/vmchale/polyglot/archive/0.3.27.tar.gz- fetchDeps :: [Dependency] -> IO ()-fetchDeps deps = do-- putStrLn "Setting up ATS dependencies..."-- let libs = fmap buildHelper deps-- parallel_ libs >> stopGlobalPool+fetchDeps deps =+ unless (null deps) $ do+ putStrLn "Setting up ATS dependencies..."+ let libs = fmap buildHelper deps+ parallel_ libs >> stopGlobalPool buildHelper :: Dependency -> IO () buildHelper (Dependency lib' dirName' url'') = do
src/Language/ATS/Package/Exec.hs view
@@ -1,8 +1,12 @@+{-# LANGUAGE OverloadedStrings #-}+ module Language.ATS.Package.Exec ( exec , buildAll ) where +import Control.Composition import Data.Bool (bool)+import Dhall hiding (bool) import Language.ATS.Package import Language.ATS.Package.Type import System.Directory (doesFileExist)@@ -11,15 +15,14 @@ check :: IO Bool check = do home <- getEnv "HOME"- doesFileExist (home ++ "/.atspkg/0.3.8/bin/patscc") -- FIXME version+ v <- want+ doesFileExist (home ++ "/.atspkg/" ++ show v ++ "/bin/patscc") exec :: IO () exec = bool (buildAll >> mkPkg) mkPkg =<< check -latest :: Version-latest = Version [0,3,8]+want :: IO Version+want = Version . compiler <$> input auto "./atspkg.dhall" buildAll :: IO ()-buildAll =- fetchCompiler latest >>- setupCompiler latest+buildAll = on (>>) (=<< want) fetchCompiler setupCompiler
src/Language/ATS/Package/Type.hs view
@@ -4,7 +4,6 @@ module Language.ATS.Package.Type ( Pkg (..) , Bin (..)- , printConfig , pkgToAction , mkPkg , mkManpage@@ -56,7 +55,7 @@ bins <- fmap (TL.unpack . target) . bin <$> getConfig need bins home <- fromMaybe "" <$> getEnv "HOME"- let binDest = fmap (((home <> "/.local/bin/") <>) . takeBaseName) bins+ let binDest = ((home <> "/.local/bin/") <>) . takeBaseName <$> bins void $ zipWithM copyFile' bins binDest case man config of Just mt -> do@@ -82,7 +81,8 @@ mapM_ cmd_ tests pkgToAction :: Pkg -> Rules ()-pkgToAction (Pkg bs ts mt v _) = do+pkgToAction (Pkg bs ts mt v v' ds) = do+ liftIO $ fetchDeps ds action (need ["atspkg.dhall"]) mapM_ g (bs ++ ts) let bins = TL.unpack . target <$> bs@@ -90,15 +90,19 @@ (Just m) -> want (manTarget m : bins) Nothing -> want bins - where g (Bin s t ls gc') = atsBin (Version v) gc' (TL.unpack <$> ls) (TL.unpack s) (TL.unpack t)--data Bin = Bin { src :: Text, target :: Text, libs :: [Text], gc :: Bool }- deriving (Show, Eq, Generic, Interpret)+ where g (Bin s t ls gc') = atsBin (Version v) (Version v') gc' (TL.unpack <$> ls) (TL.unpack s) (TL.unpack t) -data Pkg = Pkg { bin :: [Bin], test :: [Bin], man :: Maybe Text, version :: [Integer], dependencies :: [Dependency] }- deriving (Show, Eq, 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" ]@)+ , gc :: Bool } -- ^ Whether to use the garbage collector+ deriving (Show, Eq, Generic, Interpret) -printConfig :: IO ()-printConfig = do- x <- input auto "./atspkg.dhall"- print (x :: Pkg)+data Pkg = Pkg { bin :: [Bin] -- ^ List of binaries to be built+ , test :: [Bin] -- ^ List of test suites+ , man :: Maybe Text -- ^ Optional (markdown) manpages to be converted using @pandoc@.+ , version :: [Integer] -- ^ Library version+ , compiler :: [Integer] -- ^ Compiler version+ , dependencies :: [Dependency] -- ^ List of dependencies+ }+ deriving (Show, Eq, Generic, Interpret)
stack.yaml view
@@ -3,7 +3,7 @@ packages: - '.' extra-deps:- - shake-ext-1.1.0.0+ - shake-ext-1.2.0.0 - composition-prelude-1.1.0.1 - language-ats-0.1.0.3 flags: