Date: Tuesday, November 6, 2018 @ 20:01:41 Author: felixonmars Revision: 402049
archrelease: copy trunk to community-staging-x86_64 Added: haskell-presburger/repos/community-staging-x86_64/ haskell-presburger/repos/community-staging-x86_64/PKGBUILD (from rev 402048, haskell-presburger/trunk/PKGBUILD) haskell-presburger/repos/community-staging-x86_64/containers-0.6.patch (from rev 402048, haskell-presburger/trunk/containers-0.6.patch) haskell-presburger/repos/community-staging-x86_64/ghc-8.4.patch (from rev 402048, haskell-presburger/trunk/ghc-8.4.patch) ----------------------+ PKGBUILD | 47 +++++++++++++++++++++++++ containers-0.6.patch | 38 ++++++++++++++++++++ ghc-8.4.patch | 91 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 176 insertions(+) Copied: haskell-presburger/repos/community-staging-x86_64/PKGBUILD (from rev 402048, haskell-presburger/trunk/PKGBUILD) =================================================================== --- community-staging-x86_64/PKGBUILD (rev 0) +++ community-staging-x86_64/PKGBUILD 2018-11-06 20:01:41 UTC (rev 402049) @@ -0,0 +1,47 @@ +# Maintainer: Felix Yan <felixonm...@archlinux.org> +# Contributor: Arch Haskell Team <arch-hask...@haskell.org> + +_hkgname=presburger +pkgname=haskell-presburger +pkgver=1.3.1 +pkgrel=7 +pkgdesc="A decision procedure for quantifier-free linear arithmetic" +url="https://github.com/yav/presburger" +license=("custom:BSD3") +arch=('x86_64') +depends=('ghc-libs') +makedepends=('ghc') +source=("https://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz" + ghc-8.4.patch containers-0.6.patch) +sha512sums=('37659133b05452119b5bcb52111ceef41d4f54effe95f2c19164b807c3fcfb027aaf1c7f47d295ce9a2f57d1b8a5814a17e91f8814b3e963364bdcfb7aa5c1c0' + 'a063da967d7af8f339062188ef761d5df4b94937cc3a964263f8a174f6de4e0925e4f16225be0737bb9e1ab5f938e2f73867ec5b47c4e6c5117625b4c03788fa' + '140390477480e951ccebd0d0e3d8cfb4b8cf08dad0f23bf26ca75e0bae8ca347f8e063a8ee63e770e2611ad831226767eed54963d43ed8c773c73d1fc72b56cc') + +prepare() { + cd $_hkgname-$pkgver + patch -p1 -i ../ghc-8.4.patch + patch -p1 -i ../containers-0.6.patch +} + +build() { + cd $_hkgname-$pkgver + + runhaskell Setup configure -O --enable-shared --enable-executable-dynamic --disable-library-vanilla \ + --prefix=/usr --docdir=/usr/share/doc/$pkgname \ + --dynlibdir=/usr/lib --libsubdir=\$compiler/site-local/\$pkgid + runhaskell Setup build + runhaskell Setup register --gen-script + runhaskell Setup unregister --gen-script + sed -i -r -e "s|ghc-pkg.*update[^ ]* |&'--force' |" register.sh + sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh +} + +package() { + cd $_hkgname-$pkgver + + install -D -m744 register.sh "$pkgdir"/usr/share/haskell/register/$pkgname.sh + install -D -m744 unregister.sh "$pkgdir"/usr/share/haskell/unregister/$pkgname.sh + runhaskell Setup copy --destdir="$pkgdir" + install -D -m644 "LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" + rm -f "${pkgdir}/usr/share/doc/${pkgname}/LICENSE" +} Copied: haskell-presburger/repos/community-staging-x86_64/containers-0.6.patch (from rev 402048, haskell-presburger/trunk/containers-0.6.patch) =================================================================== --- community-staging-x86_64/containers-0.6.patch (rev 0) +++ community-staging-x86_64/containers-0.6.patch 2018-11-06 20:01:41 UTC (rev 402049) @@ -0,0 +1,38 @@ +commit 9d73e3d55fb44c81ce22a2d60bf7ad38ad1910a7 +Author: Felix Yan <felixonm...@archlinux.org> +Date: Mon Oct 15 04:02:43 2018 +0800 + + Fix compatibility with containers 0.6 + +diff --git a/src/Data/Integer/SAT.hs b/src/Data/Integer/SAT.hs +index f10aba1..3fbf9a4 100644 +--- a/src/Data/Integer/SAT.hs ++++ b/src/Data/Integer/SAT.hs +@@ -1,4 +1,4 @@ +-{-# LANGUAGE BangPatterns, PatternGuards, Trustworthy #-} ++{-# LANGUAGE BangPatterns, PatternGuards, Trustworthy, CPP #-} + {-| + This module implements a decision procedure for quantifier-free linear + arithmetic. The algorithm is based on the following paper: +@@ -48,6 +48,9 @@ import Control.Monad (MonadPlus (..), ap, guard, liftM) + import Data.List (partition) + import Data.Map (Map) + import qualified Data.Map as Map ++#if MIN_VERSION_containers(0,6,0) ++import qualified Data.Map.Strict as MapStrict ++#endif + import Data.Maybe (fromMaybe, mapMaybe, maybeToList) + import Prelude hiding ((<>)) + import Text.PrettyPrint +@@ -955,7 +958,11 @@ tFactor (T c m) = + + -- | Extract a variable with a coefficient whose absolute value is minimal. + tLeastAbsCoeff :: Term -> Maybe (Integer, Name, Term) ++#if MIN_VERSION_containers(0,6,0) ++tLeastAbsCoeff (T c m) = do (xc,x,m1) <- MapStrict.foldrWithKey step Nothing m ++#else + tLeastAbsCoeff (T c m) = do (xc,x,m1) <- Map.foldWithKey step Nothing m ++#endif + return (xc, x, T c m1) + where + step x xc Nothing = Just (xc, x, Map.delete x m) Copied: haskell-presburger/repos/community-staging-x86_64/ghc-8.4.patch (from rev 402048, haskell-presburger/trunk/ghc-8.4.patch) =================================================================== --- community-staging-x86_64/ghc-8.4.patch (rev 0) +++ community-staging-x86_64/ghc-8.4.patch 2018-11-06 20:01:41 UTC (rev 402049) @@ -0,0 +1,91 @@ +commit fd7746dbc63d427ab5670341cd0fd13cb2c087b6 +Author: Hiromi ISHII <konn.ji...@gmail.com> +Date: Fri Dec 22 17:03:17 2017 +0900 + + Workaround for GHC 8.4 (hides Semigroup.<>) + +diff --git a/src/Data/Integer/SAT.hs b/src/Data/Integer/SAT.hs +index cfe3950..f10aba1 100644 +--- a/src/Data/Integer/SAT.hs ++++ b/src/Data/Integer/SAT.hs +@@ -1,4 +1,4 @@ +-{-# LANGUAGE Trustworthy, PatternGuards, BangPatterns #-} ++{-# LANGUAGE BangPatterns, PatternGuards, Trustworthy #-} + {-| + This module implements a decision procedure for quantifier-free linear + arithmetic. The algorithm is based on the following paper: +@@ -43,12 +43,13 @@ module Data.Integer.SAT + + import Debug.Trace + +-import Data.Map (Map) +-import qualified Data.Map as Map +-import Data.List(partition) +-import Data.Maybe(maybeToList,fromMaybe,mapMaybe) +-import Control.Applicative(Applicative(..), Alternative(..), (<$>)) +-import Control.Monad(liftM,ap,MonadPlus(..),guard) ++import Control.Applicative (Alternative (..), Applicative (..), (<$>)) ++import Control.Monad (MonadPlus (..), ap, guard, liftM) ++import Data.List (partition) ++import Data.Map (Map) ++import qualified Data.Map as Map ++import Data.Maybe (fromMaybe, mapMaybe, maybeToList) ++import Prelude hiding ((<>)) + import Text.PrettyPrint + + infixr 2 :|| +@@ -85,9 +86,9 @@ assert p (State rws) = State $ fmap snd $ m =<< rws + checkSat :: PropSet -> Maybe [(Int,Integer)] + checkSat (State m) = go m + where +- go None = mzero +- go (One rw) = return [ (x,v) | (UserName x, v) <- iModel (inerts rw) ] +- go (Choice m1 m2) = mplus (go m1) (go m2) ++ go None = mzero ++ go (One rw) = return [ (x,v) | (UserName x, v) <- iModel (inerts rw) ] ++ go (Choice m1 m2) = mplus (go m1) (go m2) + + allInerts :: PropSet -> [Inerts] + allInerts (State m) = map inerts (toList m) +@@ -432,7 +433,7 @@ slnNextValWith f (TopVar x v lb ub is) = + return $ TopVar x v1 lb ub is + + slnNextVar :: Solutions -> Maybe Solutions +-slnNextVar Done = Nothing ++slnNextVar Done = Nothing + slnNextVar (TopVar x v _ _ is) = Just $ FixedVar x v $ startIter $ iLet x v is + slnNextVar (FixedVar x v i) = FixedVar x v `fmap` slnNextVar i + +@@ -716,9 +717,9 @@ instance Alternative Answer where + + instance MonadPlus Answer where + mzero = None +- mplus None x = x ++ mplus None x = x + -- mplus (Choice x y) z = mplus x (mplus y z) +- mplus x y = Choice x y ++ mplus x y = Choice x y + + instance Functor Answer where + fmap _ None = None +@@ -881,14 +882,14 @@ instance Show Term where + ppTerm :: Term -> Doc + ppTerm (T k m) = + case Map.toList m of +- [] -> integer k +- xs | k /= 0 -> hsep (integer k : map ppProd xs) +- x : xs -> hsep (ppFst x : map ppProd xs) ++ [] -> integer k ++ xs | k /= 0 -> hsep (integer k : map ppProd xs) ++ x : xs -> hsep (ppFst x : map ppProd xs) + + where +- ppFst (x,1) = ppName x +- ppFst (x,-1) = text "-" <> ppName x +- ppFst (x,n) = ppMul n x ++ ppFst (x,1) = ppName x ++ ppFst (x,-1) = text "-" <> ppName x ++ ppFst (x,n) = ppMul n x + + ppProd (x,1) = text "+" <+> ppName x + ppProd (x,-1) = text "-" <+> ppName x