[arch-commits] Commit in haskell-clash-prelude/repos (3 files)
Felix Yan
felixonmars at archlinux.org
Mon Dec 23 21:38:06 UTC 2019
Date: Monday, December 23, 2019 @ 21:38:06
Author: felixonmars
Revision: 539608
archrelease: copy trunk to community-staging-x86_64
Added:
haskell-clash-prelude/repos/community-staging-x86_64/
haskell-clash-prelude/repos/community-staging-x86_64/PKGBUILD
(from rev 539607, haskell-clash-prelude/trunk/PKGBUILD)
haskell-clash-prelude/repos/community-staging-x86_64/ghc-8.6.patch
(from rev 539607, haskell-clash-prelude/trunk/ghc-8.6.patch)
---------------+
PKGBUILD | 54 +++++++++
ghc-8.6.patch | 324 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 378 insertions(+)
Copied: haskell-clash-prelude/repos/community-staging-x86_64/PKGBUILD (from rev 539607, haskell-clash-prelude/trunk/PKGBUILD)
===================================================================
--- community-staging-x86_64/PKGBUILD (rev 0)
+++ community-staging-x86_64/PKGBUILD 2019-12-23 21:38:06 UTC (rev 539608)
@@ -0,0 +1,54 @@
+# Maintainer: Felix Yan <felixonmars at archlinux.org>
+
+_hkgname=clash-prelude
+pkgname=haskell-clash-prelude
+pkgver=0.99.3
+pkgrel=80
+pkgdesc="CAES Language for Synchronous Hardware - Prelude library"
+url="https://github.com/clash-lang/clash-prelude"
+license=('BSD')
+arch=('x86_64')
+depends=('ghc-libs' 'haskell-bifunctors' 'haskell-constraints' 'haskell-data-binary-ieee754'
+ 'haskell-data-default' 'haskell-ghc-typelits-extra' 'haskell-ghc-typelits-knownnat'
+ 'haskell-ghc-typelits-natnormalise' 'haskell-half' 'haskell-lens' 'haskell-quickcheck'
+ 'haskell-reflection' 'haskell-singletons' 'haskell-vector')
+makedepends=('ghc' 'haskell-doctest')
+source=(https://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz
+ ghc-8.6.patch)
+sha512sums=('9eb9dc5647a5dc61c9f0b5a9b880ae102e6f26783db0c4b29b4898705c9679c01d6cb96db0b206e327172743189a984299662c91209429f36c1eeb7d1d319bd1'
+ '52fcf8c2c701d724b55f8dc3a99e2842d26088ce36ae04dea02b104366255a268c83a6c02f1282f4b51795cd5afb3cb8c66d5c7348dc9ee3f149338df7776b87')
+
+prepare() {
+ cd $_hkgname-$pkgver
+ patch -p1 -i ../ghc-8.6.patch
+ sed -i -e 's/< *0.3/<1/' -e 's/< *2.14/<3/' -e 's/< *0.6/<1/' -e 's/< *2.12/<3/' -e 's/< *0.10/<1/' $_hkgname.cabal
+}
+
+build() {
+ cd $_hkgname-$pkgver
+
+ runhaskell Setup configure -O --enable-shared --enable-executable-dynamic --disable-library-vanilla \
+ --prefix=/usr --docdir=/usr/share/doc/$pkgname --enable-tests \
+ --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
+}
+
+check() {
+ cd $_hkgname-$pkgver
+ # TODO
+ runhaskell Setup test || warning "Tests failed"
+}
+
+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-clash-prelude/repos/community-staging-x86_64/ghc-8.6.patch (from rev 539607, haskell-clash-prelude/trunk/ghc-8.6.patch)
===================================================================
--- community-staging-x86_64/ghc-8.6.patch (rev 0)
+++ community-staging-x86_64/ghc-8.6.patch 2019-12-23 21:38:06 UTC (rev 539608)
@@ -0,0 +1,324 @@
+From d2f9a0081c4355fdbd1062f3b15fafb3a3572cdc Mon Sep 17 00:00:00 2001
+From: Christiaan Baaij <christiaan.baaij at gmail.com>
+Date: Thu, 26 Jul 2018 16:55:48 +0200
+Subject: [PATCH] Fixes to build on GHC 8.6
+
+---
+ cabal.project | 9 ++++++++-
+ clash-prelude.cabal | 4 ++--
+ src/Clash/Explicit/DDR.hs | 4 ++++
+ src/Clash/Intel/DDR.hs | 4 ++++
+ src/Clash/Promoted/Nat.hs | 9 +++++++--
+ src/Clash/Sized/Internal/Index.hs | 4 ++++
+ src/Clash/Sized/RTree.hs | 23 ++++++++++++++---------
+ src/Clash/Sized/Vector.hs | 13 +++++++++----
+ src/Clash/Xilinx/DDR.hs | 4 ++++
+ 9 files changed, 56 insertions(+), 18 deletions(-)
+
+diff --git a/src/Clash/Explicit/DDR.hs b/src/Clash/Explicit/DDR.hs
+index a22d925..96a9877 100644
+--- a/src/Clash/Explicit/DDR.hs
++++ b/src/Clash/Explicit/DDR.hs
+@@ -17,11 +17,15 @@ dedicated hardware resources use the functions from "Clash.Intel.DDR"
+ or "Clash.Xilinx.DDR".
+ -}
+
++{-# LANGUAGE CPP #-}
+ {-# LANGUAGE DataKinds #-}
+ {-# LANGUAGE MagicHash #-}
+ {-# LANGUAGE ScopedTypeVariables #-}
+ {-# LANGUAGE TypeFamilies #-}
+ {-# LANGUAGE TypeOperators #-}
++#if __GLASGOW_HASKELL__ >= 806
++{-# LANGUAGE NoStarIsType #-}
++#endif
+
+ module Clash.Explicit.DDR
+ ( ddrIn
+diff --git a/src/Clash/Intel/DDR.hs b/src/Clash/Intel/DDR.hs
+index 08d2f67..5841a35 100644
+--- a/src/Clash/Intel/DDR.hs
++++ b/src/Clash/Intel/DDR.hs
+@@ -12,11 +12,15 @@ see ALTDDIO userguide for the specifics:
+ https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/ug/ug_altddio.pdf
+ -}
+
++{-# LANGUAGE CPP #-}
+ {-# LANGUAGE DataKinds #-}
+ {-# LANGUAGE FlexibleContexts #-}
+ {-# LANGUAGE MagicHash #-}
+ {-# LANGUAGE TypeFamilies #-}
+ {-# LANGUAGE TypeOperators #-}
++#if __GLASGOW_HASKELL__ >= 806
++{-# LANGUAGE NoStarIsType #-}
++#endif
+
+ module Clash.Intel.DDR
+ ( altddioIn
+diff --git a/src/Clash/Promoted/Nat.hs b/src/Clash/Promoted/Nat.hs
+index 9e0b4aa..369afbc 100644
+--- a/src/Clash/Promoted/Nat.hs
++++ b/src/Clash/Promoted/Nat.hs
+@@ -6,6 +6,7 @@ Maintainer : Christiaan Baaij <christiaan.baaij at gmail.com>
+ -}
+
+ {-# LANGUAGE AllowAmbiguousTypes #-}
++{-# LANGUAGE CPP #-}
+ {-# LANGUAGE DataKinds #-}
+ {-# LANGUAGE GADTs #-}
+ {-# LANGUAGE KindSignatures #-}
+@@ -15,6 +16,9 @@ Maintainer : Christiaan Baaij <christiaan.baaij at gmail.com>
+ {-# LANGUAGE TypeApplications #-}
+ {-# LANGUAGE TypeOperators #-}
+ {-# LANGUAGE RankNTypes #-}
++#if __GLASGOW_HASKELL__ >= 806
++{-# LANGUAGE NoStarIsType #-}
++#endif
+
+ {-# LANGUAGE Trustworthy #-}
+
+@@ -72,6 +76,7 @@ module Clash.Promoted.Nat
+ )
+ where
+
++import Data.Kind (Type)
+ import GHC.TypeLits (KnownNat, Nat, type (+), type (-), type (*),
+ type (^), type (<=), natVal)
+ import GHC.TypeLits.Extra (CLog, FLog, Div, Log, Mod)
+@@ -125,7 +130,7 @@ snatToNum p at SNat = fromInteger (natVal p)
+ -- | Unary representation of a type-level natural
+ --
+ -- __NB__: Not synthesisable
+-data UNat :: Nat -> * where
++data UNat :: Nat -> Type where
+ UZero :: UNat 0
+ USucc :: UNat n -> UNat (n + 1)
+
+@@ -283,7 +288,7 @@ pow2SNat SNat = SNat
+ -- @
+ -- __B1__ :: 'BNat' n -> 'BNat' ((2 '*' n) '+' 1)
+ -- @
+-data BNat :: Nat -> * where
++data BNat :: Nat -> Type where
+ BT :: BNat 0
+ B0 :: BNat n -> BNat (2*n)
+ B1 :: BNat n -> BNat ((2*n) + 1)
+diff --git a/src/Clash/Sized/Internal/Index.hs b/src/Clash/Sized/Internal/Index.hs
+index a04479f..6d91d04 100644
+--- a/src/Clash/Sized/Internal/Index.hs
++++ b/src/Clash/Sized/Internal/Index.hs
+@@ -5,6 +5,7 @@ License : BSD2 (see the file LICENSE)
+ Maintainer : Christiaan Baaij <christiaan.baaij at gmail.com>
+ -}
+
++{-# LANGUAGE CPP #-}
+ {-# LANGUAGE DataKinds #-}
+ {-# LANGUAGE DeriveAnyClass #-}
+ {-# LANGUAGE DeriveDataTypeable #-}
+@@ -17,6 +18,9 @@ Maintainer : Christiaan Baaij <christiaan.baaij at gmail.com>
+ {-# LANGUAGE TypeFamilies #-}
+ {-# LANGUAGE TypeOperators #-}
+ {-# LANGUAGE UndecidableInstances #-}
++#if __GLASGOW_HASKELL__ >= 806
++{-# LANGUAGE NoStarIsType #-}
++#endif
+
+ {-# LANGUAGE Unsafe #-}
+
+diff --git a/src/Clash/Sized/RTree.hs b/src/Clash/Sized/RTree.hs
+index 175e375..633fdeb 100644
+--- a/src/Clash/Sized/RTree.hs
++++ b/src/Clash/Sized/RTree.hs
+@@ -4,6 +4,7 @@ License : BSD2 (see the file LICENSE)
+ Maintainer : Christiaan Baaij <christiaan.baaij at gmail.com>
+ -}
+
++{-# LANGUAGE CPP #-}
+ {-# LANGUAGE DataKinds #-}
+ {-# LANGUAGE GADTs #-}
+ {-# LANGUAGE InstanceSigs #-}
+@@ -18,6 +19,9 @@ Maintainer : Christiaan Baaij <christiaan.baaij at gmail.com>
+ {-# LANGUAGE TypeOperators #-}
+ {-# LANGUAGE UndecidableInstances #-}
+ {-# LANGUAGE ViewPatterns #-}
++#if __GLASGOW_HASKELL__ >= 806
++{-# LANGUAGE NoStarIsType #-}
++#endif
+
+ {-# LANGUAGE Trustworthy #-}
+
+@@ -59,6 +63,7 @@ import Control.Applicative (liftA2)
+ import qualified Control.Lens as Lens
+ import Data.Default (Default (..))
+ import Data.Foldable (toList)
++import Data.Kind (Type)
+ import Data.Singletons.Prelude (Apply, TyFun, type (@@))
+ import Data.Proxy (Proxy (..))
+ import GHC.TypeLits (KnownNat, Nat, type (+), type (^), type (*))
+@@ -101,7 +106,7 @@ let populationCount' :: (KnownNat k, KnownNat (2^k)) => BitVector (2^k) -> Index
+ --
+ -- * Only has elements at the leaf of the tree
+ -- * A tree of depth /d/ has /2^d/ elements.
+-data RTree :: Nat -> * -> * where
++data RTree :: Nat -> Type -> Type where
+ LR_ :: a -> RTree 0 a
+ BR_ :: RTree d a -> RTree d a -> RTree (d+1) a
+
+@@ -180,7 +185,7 @@ instance KnownNat d => Applicative (RTree d) where
+ instance KnownNat d => Foldable (RTree d) where
+ foldMap f = tfold f mappend
+
+-data TraversableTree (g :: * -> *) (a :: *) (f :: TyFun Nat *) :: *
++data TraversableTree (g :: Type -> Type) (a :: Type) (f :: TyFun Nat Type) :: Type
+ type instance Apply (TraversableTree f a) d = f (RTree d a)
+
+ instance KnownNat d => Traversable (RTree d) where
+@@ -305,7 +310,7 @@ instance (KnownNat d, Undefined a) => Undefined (RTree d a) where
+ -- >>> populationCount' (7 :: BitVector 16)
+ -- 3
+ tdfold :: forall p k a . KnownNat k
+- => Proxy (p :: TyFun Nat * -> *) -- ^ The /motive/
++ => Proxy (p :: TyFun Nat Type -> Type) -- ^ The /motive/
+ -> (a -> (p @@ 0)) -- ^ Function to apply to the elements on the leafs
+ -> (forall l . SNat l -> (p @@ l) -> (p @@ l) -> (p @@ (l+1)))
+ -- ^ Function to fold the branches with.
+@@ -321,7 +326,7 @@ tdfold _ f g = go SNat
+ in g sn' (go sn' l) (go sn' r)
+ {-# NOINLINE tdfold #-}
+
+-data TfoldTree (a :: *) (f :: TyFun Nat *) :: *
++data TfoldTree (a :: Type) (f :: TyFun Nat Type) :: Type
+ type instance Apply (TfoldTree a) d = a
+
+ -- | Reduce a tree to a single element
+@@ -357,7 +362,7 @@ treplicate sn a = go (toUNat sn)
+ trepeat :: KnownNat d => a -> RTree d a
+ trepeat = treplicate SNat
+
+-data MapTree (a :: *) (f :: TyFun Nat *) :: *
++data MapTree (a :: Type) (f :: TyFun Nat Type) :: Type
+ type instance Apply (MapTree a) d = RTree d a
+
+ -- | \"'tmap' @f t@\" is the tree obtained by apply /f/ to each element of /t/,
+@@ -378,7 +383,7 @@ tindices =
+ (\s at SNat l r -> BR l (tmap (+(snatToNum (pow2SNat s))) r))
+ (treplicate SNat 0)
+
+-data V2TTree (a :: *) (f :: TyFun Nat *) :: *
++data V2TTree (a :: Type) (f :: TyFun Nat Type) :: Type
+ type instance Apply (V2TTree a) d = RTree d a
+
+ -- | Convert a vector with /2^d/ elements to a tree of depth /d/.
+@@ -390,7 +395,7 @@ type instance Apply (V2TTree a) d = RTree d a
+ v2t :: forall d a . KnownNat d => Vec (2^d) a -> RTree d a
+ v2t = dtfold (Proxy @(V2TTree a)) LR (const BR)
+
+-data T2VTree (a :: *) (f :: TyFun Nat *) :: *
++data T2VTree (a :: Type) (f :: TyFun Nat Type) :: Type
+ type instance Apply (T2VTree a) d = Vec (2^d) a
+
+ -- | Convert a tree of depth /d/ to a vector of /2^d/ elements
+@@ -433,7 +438,7 @@ indexTree t i = (t2v t) !! i
+ replaceTree :: (KnownNat d, Enum i) => i -> a -> RTree d a -> RTree d a
+ replaceTree i a = v2t . replace i a . t2v
+
+-data ZipWithTree (b :: *) (c :: *) (f :: TyFun Nat *) :: *
++data ZipWithTree (b :: Type) (c :: Type) (f :: TyFun Nat Type) :: Type
+ type instance Apply (ZipWithTree b c) d = RTree d b -> RTree d c
+
+ -- | 'tzipWith' generalises 'tzip' by zipping with the function given as the
+@@ -460,7 +465,7 @@ tzipWith f = tdfold (Proxy @(ZipWithTree b c)) lr br
+ tzip :: KnownNat d => RTree d a -> RTree d b -> RTree d (a,b)
+ tzip = tzipWith (,)
+
+-data UnzipTree (a :: *) (b :: *) (f :: TyFun Nat *) :: *
++data UnzipTree (a :: Type) (b :: Type) (f :: TyFun Nat Type) :: Type
+ type instance Apply (UnzipTree a b) d = (RTree d a, RTree d b)
+
+ -- | 'tunzip' transforms a tree of pairs into a tree of first components and a
+diff --git a/src/Clash/Sized/Vector.hs b/src/Clash/Sized/Vector.hs
+index cd55a37..b4ec3d6 100644
+--- a/src/Clash/Sized/Vector.hs
++++ b/src/Clash/Sized/Vector.hs
+@@ -6,6 +6,7 @@ Maintainer : Christiaan Baaij <christiaan.baaij at gmail.com>
+ -}
+
+ {-# LANGUAGE BangPatterns #-}
++{-# LANGUAGE CPP #-}
+ {-# LANGUAGE DataKinds #-}
+ {-# LANGUAGE GADTs #-}
+ {-# LANGUAGE KindSignatures #-}
+@@ -20,6 +21,9 @@ Maintainer : Christiaan Baaij <christiaan.baaij at gmail.com>
+ {-# LANGUAGE TypeOperators #-}
+ {-# LANGUAGE UndecidableInstances #-}
+ {-# LANGUAGE ViewPatterns #-}
++#if __GLASGOW_HASKELL__ >= 806
++{-# LANGUAGE NoStarIsType #-}
++#endif
+
+ {-# LANGUAGE Trustworthy #-}
+
+@@ -105,6 +109,7 @@ import qualified Control.Lens as Lens hiding (pattern (:>), pattern (:<))
+ import Data.Default (Default (..))
+ import qualified Data.Foldable as F
+ import Data.Bifunctor.Flip (Flip (..))
++import Data.Kind (Type)
+ import Data.Proxy (Proxy (..))
+ import Data.Singletons.Prelude (TyFun,Apply,type (@@))
+ import GHC.TypeLits (CmpNat, KnownNat, Nat, type (+), type (-), type (*),
+@@ -192,7 +197,7 @@ infixr 5 `Cons`
+ -- * Lists with their length encoded in their type
+ -- * 'Vec'tor elements have an __ASCENDING__ subscript starting from 0 and
+ -- ending at @'length' - 1 at .
+-data Vec :: Nat -> * -> * where
++data Vec :: Nat -> Type -> Type where
+ Nil :: Vec 0 a
+ Cons :: a -> Vec n a -> Vec (n + 1) a
+
+@@ -1715,7 +1720,7 @@ lazyV = lazyV' (repeat undefined)
+ -- or delay, of O(@'length' xs@). Look at 'dtfold' for a /dependently/ typed
+ -- fold that produces a structure with a depth of O(log_2(@'length' xs@)).
+ dfold :: forall p k a . KnownNat k
+- => Proxy (p :: TyFun Nat * -> *) -- ^ The /motive/
++ => Proxy (p :: TyFun Nat Type -> Type) -- ^ The /motive/
+ -> (forall l . SNat l -> a -> (p @@ l) -> (p @@ (l + 1)))
+ -- ^ Function to fold.
+ --
+@@ -1833,7 +1838,7 @@ dfold _ f z xs = go (snatProxy (asNatProxy xs)) xs
+ -- __NB__: The depth, or delay, of the structure produced by
+ -- \"@'dtfold' m f g xs@\" is O(log_2(@'length' xs@)).
+ dtfold :: forall p k a . KnownNat k
+- => Proxy (p :: TyFun Nat * -> *) -- ^ The /motive/
++ => Proxy (p :: TyFun Nat Type -> Type) -- ^ The /motive/
+ -> (a -> (p @@ 0)) -- ^ Function to apply to every element
+ -> (forall l . SNat l -> (p @@ l) -> (p @@ l) -> (p @@ (l + 1)))
+ -- ^ Function to combine results.
+@@ -1864,7 +1869,7 @@ dtfold _ f g = go (SNat :: SNat k)
+ -- map' :: forall n a b . KnownNat n => (a -> b) -> Vec n a -> Vec n b
+ -- map' f = 'dfold' (Proxy @('VCons' b)) (\_ x xs -> f x :> xs)
+ -- @
+-data VCons (a :: *) (f :: TyFun Nat *) :: *
++data VCons (a :: Type) (f :: TyFun Nat Type) :: Type
+ type instance Apply (VCons a) l = Vec l a
+
+ -- | Specialised version of 'dfold' that builds a triangular computational
+diff --git a/src/Clash/Xilinx/DDR.hs b/src/Clash/Xilinx/DDR.hs
+index 27c5573..072d785 100644
+--- a/src/Clash/Xilinx/DDR.hs
++++ b/src/Clash/Xilinx/DDR.hs
+@@ -13,11 +13,15 @@ For more information about the Xilinx DDR primitives see:
+ https://www.xilinx.com/support/documentation/sw_manuals/xilinx2017_2/ug953-vivado-7series-libraries.pdf
+ -}
+
++{-# LANGUAGE CPP #-}
+ {-# LANGUAGE DataKinds #-}
+ {-# LANGUAGE FlexibleContexts #-}
+ {-# LANGUAGE MagicHash #-}
+ {-# LANGUAGE TypeFamilies #-}
+ {-# LANGUAGE TypeOperators #-}
++#if __GLASGOW_HASKELL__ >= 806
++{-# LANGUAGE NoStarIsType #-}
++#endif
+
+ module Clash.Xilinx.DDR
+ ( iddr
More information about the arch-commits
mailing list