packages feed

ats-pkg 1.1.0.0 → 1.1.0.1

raw patch · 5 files changed

+28/−48 lines, 5 filesdep +lensPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: lens

API changes (from Hackage documentation)

- Language.ATS.Package.Contents: PackageContents :: [FilePath] -> [FilePath] -> [(FilePath, FilePath)] -> [(FilePath, FilePath)] -> PackageContents
- Language.ATS.Package.Contents: [_binTargets] :: PackageContents -> [(FilePath, FilePath)]
- Language.ATS.Package.Contents: [_files] :: PackageContents -> [FilePath]
- Language.ATS.Package.Contents: [_libTargets] :: PackageContents -> [(FilePath, FilePath)]
- Language.ATS.Package.Contents: [_srcDirs] :: PackageContents -> [FilePath]
- Language.ATS.Package.Contents: data PackageContents
- Language.ATS.Package.Contents: instance GHC.Classes.Eq Language.ATS.Package.Contents.PackageContents
- Language.ATS.Package.Contents: instance GHC.Show.Show Language.ATS.Package.Contents.PackageContents
- Language.ATS.Package.Contents: parsePackageContents :: IO PackageContents
- Language.ATS.Package.Dependency: [_dir] :: Dependency -> FilePath
- Language.ATS.Package.Dependency: [_libName] :: Dependency -> String
- Language.ATS.Package.Dependency: [_url] :: Dependency -> String
- Language.ATS.Package.Dependency: atsGMP :: Dependency
- Language.ATS.Package.Dependency: atsIntinf :: Dependency
- Language.ATS.Package.Dependency: atsPrelude :: Dependency
+ Language.ATS.Package.Dependency: [dir] :: Dependency -> Text
+ Language.ATS.Package.Dependency: [libName] :: Dependency -> Text
+ Language.ATS.Package.Dependency: [url] :: Dependency -> Text
+ Language.ATS.Package.Dependency: instance Dhall.Interpret Language.ATS.Package.Dependency.Dependency
+ Language.ATS.Package.Type: [dependencies] :: Pkg -> [Dependency]
- Language.ATS.Package.Dependency: Dependency :: String -> FilePath -> String -> Dependency
+ Language.ATS.Package.Dependency: Dependency :: Text -> Text -> Text -> Dependency
- Language.ATS.Package.Type: Pkg :: [Bin] -> [Bin] -> Maybe Text -> [Integer] -> Pkg
+ Language.ATS.Package.Type: Pkg :: [Bin] -> [Bin] -> Maybe Text -> [Integer] -> [Dependency] -> Pkg

Files

ats-pkg.cabal view
@@ -1,5 +1,5 @@ name:                ats-pkg-version:             1.1.0.0+version:             1.1.0.1 synopsis:            Package manager for ATS description:         A collection of scripts to make building ATS projects easy. homepage:            https://github.com/vmchale/ats-pkg#readme@@ -26,7 +26,6 @@   hs-source-dirs:      src   exposed-modules:     Language.ATS.Package                      , Language.ATS.Package.Exec-                     , Language.ATS.Package.Contents                      , Language.ATS.Package.Type                      , Language.ATS.Package.Dependency   build-depends:       base >= 4.7 && < 5@@ -42,6 +41,7 @@                      , process                      , parallel-io                      , unix+                     , lens                      , dhall                      , shake-ext >= 1.1.0.0                      , composition-prelude >= 1.1.0.1
src/Language/ATS/Package.hs view
@@ -44,9 +44,7 @@     BS.writeFile (directory ++ ".tar.gz") (compress bytes)  pkgUrl :: Version -> String-pkgUrl v = "https://github.com/vmchale/fastcat/releases/download/0.1.5/ATS2-Postiats-" ++ show v ++ ".tar.gz"---- "https://downloads.sourceforge.net/project/ats2-lang/ats2-lang/ats2-postiats-" ++ show v ++ "/ATS2-Postiats-" ++ show v ++ ".tgz"+pkgUrl v = "https://github.com/vmchale/atspkg/raw/master/pkgs/ATS2-Postiats-" ++ show v ++ ".tar.gz"  fetchCompiler :: Version -> IO () fetchCompiler v = do@@ -67,7 +65,7 @@ setupCompiler :: Version -> IO () setupCompiler v = do -    putStrLn "configuring compiler..."+    putStrLn "Configuring compiler..."     cd <- compilerDir v     let configurePath = cd ++ "/configure"     setFileMode configurePath ownerModes@@ -75,6 +73,7 @@     void $ readCreateProcess ((proc (cd ++ "/autogen.sh") []) { cwd = Just cd }) ""     void $ readCreateProcess ((proc configurePath ["--prefix", cd]) { cwd = Just cd }) "" -    putStrLn "building compiler..."+    putStrLn "Building compiler..."     void $ readCreateProcess ((proc "make" []) { cwd = Just cd, std_err = CreatePipe }) ""+    putStrLn "Installing compiler..."     void $ readCreateProcess ((proc "make" ["install"]) { cwd = Just cd, std_err = CreatePipe }) ""
− src/Language/ATS/Package/Contents.hs
@@ -1,12 +0,0 @@-module Language.ATS.Package.Contents ( parsePackageContents-                                     , PackageContents (..)-                                     ) where--data PackageContents = PackageContents { _srcDirs    :: [FilePath]-                                       , _files      :: [FilePath]-                                       , _binTargets :: [(FilePath, FilePath)]-                                       , _libTargets :: [(FilePath, FilePath)] -- for foreign libraries (builds a c dependency)-                                       } deriving (Show, Eq)--parsePackageContents :: IO PackageContents-parsePackageContents = pure $ PackageContents mempty mempty mempty mempty
src/Language/ATS/Package/Dependency.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE DeriveAnyClass    #-} {-# LANGUAGE DeriveGeneric     #-} {-# LANGUAGE OverloadedStrings #-} @@ -5,36 +6,27 @@                                          fetchDeps                                        -- * Types                                        , Dependency (..)-                                       -- * Dependency constants-                                       , atsPrelude-                                       , atsIntinf-                                       , atsGMP                                        ) where  import qualified Codec.Archive.Tar                    as Tar import           Codec.Compression.GZip               (decompress) import           Control.Concurrent.ParallelIO.Global+import           Control.Lens import           Control.Monad+import qualified Data.Text.Lazy                       as TL import           Dhall import           Network.HTTP.Client                  hiding (decompress) import           Network.HTTP.Client.TLS              (tlsManagerSettings) import           System.Directory  -- | Type for a dependency-data Dependency = Dependency { _libName :: String -- ^ Library name, e.g.-                             , _dir     :: FilePath -- ^ Directory we should unpack to-                             , _url     :: String -- ^ Url pointing to tarball+data Dependency = Dependency { libName :: Text -- ^ Library name, e.g.+                             , dir     :: Text -- ^ Directory we should unpack to+                             , url     :: Text -- ^ Url pointing to tarball                              }-    deriving (Eq, Show, Generic)--atsPrelude :: Dependency-atsPrelude = Dependency "ats2-postiats-0.3.8-prelude" ".atspkg/prelude" "https://downloads.sourceforge.net/project/ats2-lang/ats2-lang/ats2-postiats-0.3.8/ATS2-Postiats-include-0.3.8.tgz"--atsIntinf :: Dependency-atsIntinf = Dependency "atscntrb-hs-intinf-1.0.6" ".atspkg/contrib/atscntrb-hx-intinf" "https://registry.npmjs.org/atscntrb-hx-intinf/-/atscntrb-hx-intinf-1.0.6.tgz"+    deriving (Eq, Show, Generic, Interpret) -atsGMP :: Dependency-atsGMP = Dependency "atscntrb-libgmp-1.0.4" ".atspkg/contrib/atscntrb-libgmp" "https://registry.npmjs.org/atscntrb-libgmp/-/atscntrb-libgmp-1.0.4.tgz"+-- https://github.com/vmchale/polyglot/archive/0.3.27.tar.gz  fetchDeps :: [Dependency] -> IO () fetchDeps deps = do@@ -46,21 +38,23 @@     parallel_ libs >> stopGlobalPool  buildHelper :: Dependency -> IO ()-buildHelper (Dependency libName dirName url) = do+buildHelper (Dependency lib' dirName' url'') = do +    let (lib, dirName, url') = (lib', dirName', url'') & each %~ TL.unpack+     needsSetup <- not <$> doesDirectoryExist dirName      when needsSetup $ do -        putStrLn ("Fetching library " ++ libName ++ "...")+        putStrLn ("Fetching library " ++ lib ++ "...")         manager <- newManager tlsManagerSettings-        initialRequest <- parseRequest url+        initialRequest <- parseRequest url'         response <- responseBody <$> httpLbs (initialRequest { method = "GET" }) manager -        putStrLn ("Unpacking library " ++ libName ++ "...")+        putStrLn ("Unpacking library " ++ lib ++ "...")         Tar.unpack dirName . Tar.read . decompress $ response -        putStrLn ("Setting up library " ++ libName ++ "...")+        putStrLn ("Setting up library " ++ lib ++ "...")         needsMove <- doesDirectoryExist (dirName ++ "/package")         when needsMove $ do             renameDirectory (dirName ++ "/package") "tempdir"
src/Language/ATS/Package/Type.hs view
@@ -11,15 +11,16 @@                                  ) where  import           Control.Composition-import           Control.Monad.IO.Class     (MonadIO)-import           Data.Maybe                 (fromMaybe)-import           Data.Semigroup             (Semigroup (..))-import qualified Data.Text.Lazy             as TL+import           Control.Monad.IO.Class          (MonadIO)+import           Data.Maybe                      (fromMaybe)+import           Data.Semigroup                  (Semigroup (..))+import qualified Data.Text.Lazy                  as TL import           Development.Shake import           Development.Shake.ATS import           Development.Shake.FilePath import           Development.Shake.Man import           Dhall+import           Language.ATS.Package.Dependency  options :: ShakeOptions options = shakeOptions { shakeFiles = ".atspkg"@@ -81,7 +82,7 @@         mapM_ cmd_ tests  pkgToAction :: Pkg -> Rules ()-pkgToAction (Pkg bs ts mt v) = do+pkgToAction (Pkg bs ts mt v _) = do     action (need ["atspkg.dhall"])     mapM_ g (bs ++ ts)     let bins = TL.unpack . target <$> bs@@ -91,12 +92,10 @@      where g (Bin s t ls gc') = atsBin (Version v) gc' (TL.unpack <$> ls) (TL.unpack s) (TL.unpack t) --- TODO configuration for a library?- data Bin = Bin { src :: Text, target :: Text, libs :: [Text], gc :: Bool }     deriving (Show, Eq, Generic, Interpret) -data Pkg = Pkg { bin :: [Bin], test :: [Bin], man :: Maybe Text, version :: [Integer] }+data Pkg = Pkg { bin :: [Bin], test :: [Bin], man :: Maybe Text, version :: [Integer], dependencies :: [Dependency] }     deriving (Show, Eq, Generic, Interpret)  printConfig :: IO ()