packages feed

haskell-packages 0.2.1 → 0.2.2

raw patch · 5 files changed

+43/−16 lines, 5 filesdep ~basedep ~mtlPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: base, mtl

API changes (from Hackage documentation)

+ Distribution.HaskellSuite.Modules: instance MonadCont m => MonadCont (ModuleT i m)
+ Distribution.HaskellSuite.Modules: instance MonadError e m => MonadError e (ModuleT i m)
+ Distribution.HaskellSuite.Modules: instance MonadReader r m => MonadReader r (ModuleT i m)
+ Distribution.HaskellSuite.Modules: instance MonadState s m => MonadState s (ModuleT i m)
+ Distribution.HaskellSuite.Modules: instance MonadWriter w m => MonadWriter w (ModuleT i m)
- Distribution.HaskellSuite.Compiler: class IsPackageDB (DB compiler) => Is compiler where type family DB compiler installLib t buildDir targetDir _dynlibTargetDir _pkg mods = findModuleFiles [buildDir] (fileExtensions t) mods >>= installOrdinaryFiles normal targetDir register t dbspec pkg = do { mbDb <- locateDB dbspec; case mbDb :: Maybe (DB compiler) of { Nothing -> throwIO RegisterNullDB Just db -> do { pkgs <- readPackageDB (maybeInitDB dbspec) db; let pkgid = installedPackageId pkg; writePackageDB db $ pkg : removePackage pkgid pkgs } } } unregister t dbspec pkg = do { let pkgCriterion = (case pkgVersion $ packageId pkg of { Version [] _ -> ((==) `on` pkgName) pkg _ -> (==) pkg }) . sourcePackageId; mbDb <- locateDB dbspec; case mbDb :: Maybe (DB compiler) of { Nothing -> throwIO RegisterNullDB Just db -> do { pkgs <- readPackageDB (maybeInitDB dbspec) db; let (packagesRemoved, packagesLeft) = partition pkgCriterion pkgs; if null packagesRemoved then putStrLn $ "No packages removed" else do { putStrLn "Packages removed:"; forM_ packagesRemoved $ \ p -> putStrLn $ " " ++ display (installedPackageId p) }; writePackageDB db packagesLeft } } } list t dbspec = do { mbDb <- locateDB dbspec; case mbDb :: Maybe (DB compiler) of { Nothing -> return () Just db -> do { pkgs <- readPackageDB (maybeInitDB dbspec) db; forM_ pkgs $ putStrLn . display . installedPackageId } } }
+ Distribution.HaskellSuite.Compiler: class IsPackageDB (DB compiler) => Is compiler where type family DB compiler installLib t buildDir targetDir _dynlibTargetDir _pkg mods = findModuleFiles [buildDir] (fileExtensions t) mods >>= installOrdinaryFiles normal targetDir register _tool dbspec pkg = do { mbDb <- locateDB dbspec; case mbDb :: Maybe (DB compiler) of { Nothing -> throwIO RegisterNullDB Just db -> do { pkgs <- readPackageDB (maybeInitDB dbspec) db; let pkgid = installedPackageId pkg; writePackageDB db $ pkg : removePackage pkgid pkgs } } } unregister _tool dbspec pkg = do { let pkgCriterion = (case pkgVersion $ packageId pkg of { Version [] _ -> ((==) `on` pkgName) pkg _ -> (==) pkg }) . sourcePackageId; mbDb <- locateDB dbspec; case mbDb :: Maybe (DB compiler) of { Nothing -> throwIO RegisterNullDB Just db -> do { pkgs <- readPackageDB (maybeInitDB dbspec) db; let (packagesRemoved, packagesLeft) = partition pkgCriterion pkgs; if null packagesRemoved then putStrLn $ "No packages removed" else do { putStrLn "Packages removed:"; forM_ packagesRemoved $ \ p -> putStrLn $ " " ++ display (installedPackageId p) }; writePackageDB db packagesLeft } } } list _tool dbspec = do { mbDb <- locateDB dbspec; case mbDb :: Maybe (DB compiler) of { Nothing -> return () Just db -> do { pkgs <- readPackageDB (maybeInitDB dbspec) db; forM_ pkgs $ putStrLn . display . installedPackageId } } }

Files

haskell-packages.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/  name:                haskell-packages-version:             0.2.1+version:             0.2.2 synopsis:            Haskell suite library for package management and integration with Cabal description:         See <http://documentup.com/haskell-suite/haskell-packages> license:             MIT@@ -25,12 +25,13 @@ source-repository this   type:     git   location: git://github.com/haskell-suite/haskell-packages.git-  tag:      v0.2.1+  tag:      v0.2.2  library   default-language:    Haskell2010   Hs-source-dirs:     src+  ghc-options: -Wall -fno-warn-name-shadowing   exposed-modules:     Distribution.HaskellSuite     Distribution.HaskellSuite.Compiler@@ -49,7 +50,7 @@     , directory     , filepath     , containers-    , mtl+    , mtl >= 2.1     , hse-cpp     , EitherT     , haskell-src-exts >= 1.14
src/Distribution/HaskellSuite/Cabal.hs view
@@ -165,7 +165,10 @@   show (ModuleNotFound mod) = printf "Module %s not found" mod instance Exception ModuleNotFound +findModules :: [FilePath] -> [String] -> IO [FilePath] findModules srcDirs = mapM (findModule srcDirs)++findModule :: [FilePath] -> String -> IO FilePath findModule srcDirs mod = do   r <- runEitherT $ sequence_ (checkInDir <$> srcDirs <*> exts)   case r of
src/Distribution/HaskellSuite/Compiler.hs view
@@ -33,7 +33,6 @@ import Distribution.ModuleName (ModuleName) import Control.Monad import Control.Exception-import Data.Maybe import Data.List import Data.Function import Language.Haskell.Exts.Annotated.CPP@@ -104,7 +103,7 @@     -> PackageDB     -> InstalledPackageInfo     -> IO ()-  register t dbspec pkg = do+  register _tool dbspec pkg = do     mbDb <- locateDB dbspec      case mbDb :: Maybe (DB compiler) of@@ -120,7 +119,7 @@     -> PackageDB     -> PackageId     -> IO ()-  unregister t dbspec pkg = do+  unregister _tool dbspec pkg = do     let       pkgCriterion =         -- if the version is not specified, treat it as a wildcard@@ -155,7 +154,7 @@     :: compiler     -> PackageDB     -> IO ()-  list t dbspec = do+  list _tool dbspec = do     mbDb <- locateDB dbspec      case mbDb :: Maybe (DB compiler) of
src/Distribution/HaskellSuite/Modules.hs view
@@ -1,6 +1,8 @@ {-# LANGUAGE GeneralizedNewtypeDeriving, TypeFamilies,              FlexibleInstances, TypeSynonymInstances,-             DeriveDataTypeable #-}+             DeriveDataTypeable, StandaloneDeriving,+             MultiParamTypeClasses, UndecidableInstances,+             ScopedTypeVariables #-} module Distribution.HaskellSuite.Modules   (   -- * Module monad@@ -26,24 +28,20 @@   , ModName(..)   , convertModuleName   ) where- import Distribution.HaskellSuite.Packages-import Distribution.Simple.Compiler import Distribution.Simple.Utils import Distribution.InstalledPackageInfo-import Distribution.Package import Distribution.Text import Distribution.ModuleName import Control.Applicative import Control.Monad import Control.Monad.State+import Control.Monad.Cont+import Control.Monad.Error import Control.Monad.Reader-import Control.Exception+import Control.Monad.Writer import Data.List-import Data.Typeable-import Data.Proxy import qualified Data.Map as Map-import Text.Printf import System.FilePath  -- | This class defines the interface that is used by 'getModuleInfo', so@@ -110,10 +108,11 @@ -- -- @i@ is the type of module info, @m@ is the underlying monad. newtype ModuleT i m a =-  ModuleT+  ModuleT { unModuleT ::     (StateT (Map.Map ModuleName i)       (ReaderT (Packages, [FilePath] -> ModuleName -> m i) m)       a)+  }   deriving (Functor, Applicative, Monad)  instance MonadTrans (ModuleT i) where@@ -129,6 +128,30 @@   getPackages = ModuleT $ asks fst   readModuleInfo dirs mod =     lift =<< ModuleT (asks snd) <*> pure dirs <*> pure (convertModuleName mod)++mapModuleT :: Monad m => (m a -> m b) -> ModuleT i m a -> ModuleT i m b+mapModuleT f m = ModuleT $ mapStateT (mapReaderT f') (unModuleT m)+  where+    f' ma = do+      (a,c) <- ma+      b <- f (return a)+      return (b,c)++instance MonadReader r m => MonadReader r (ModuleT i m) where+  ask    = lift ask+  local  = mapModuleT . local+  reader = lift . reader++instance MonadState s m => MonadState s (ModuleT i m) where+  get   = lift get+  put   = lift . put+  state = lift . state++deriving instance MonadWriter w m => MonadWriter w (ModuleT i m)++deriving instance MonadError e m => MonadError e (ModuleT i m)++deriving instance MonadCont m => MonadCont (ModuleT i m)  -- | Run a 'ModuleT' action runModuleT
src/Distribution/HaskellSuite/Packages.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE GeneralizedNewtypeDeriving, DeriveDataTypeable,              TemplateHaskell, ScopedTypeVariables, OverloadedStrings #-}+{-# OPTIONS_GHC -fno-warn-orphans #-} module Distribution.HaskellSuite.Packages   (   -- * Querying package databases