retroclash-lib 0.1.2.3 → 0.1.2.4
raw patch · 3 files changed
+20/−12 lines, 3 filesdep ~barbiesdep ~clash-preludedep ~ghc-typelits-extra
Dependency ranges changed: barbies, clash-prelude, ghc-typelits-extra, ghc-typelits-knownnat, ghc-typelits-natnormalise
Files
- retroclash-lib.cabal +10/−10
- src/RetroClash/Delayed.hs +5/−0
- src/RetroClash/Utils.hs +5/−2
retroclash-lib.cabal view
@@ -1,13 +1,13 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.37.0.+-- This file has been generated from package.yaml by hpack version 0.38.3. -- -- see: https://github.com/sol/hpack ----- hash: 58f13b9d5070155fb407ce862cb2cbd07aa2d92494375efb694abdf430d58e25+-- hash: ed3697e1e741113517bee3673a8bafbdf36ee787a7854302ea7333bc73ffd2e5 name: retroclash-lib-version: 0.1.2.3+version: 0.1.2.4 synopsis: Code shared across the code samples in the book "Retrocomputing with Clash" description: Clash components useful when implementing, or interfacing with, retro-computers:@@ -97,15 +97,15 @@ TypeOperators ghc-options: -fexpose-all-unfoldings -fno-worker-wrapper -fplugin GHC.TypeLits.KnownNat.Solver -fplugin GHC.TypeLits.Normalise -fplugin GHC.TypeLits.Extra.Solver build-depends:- barbies >=2.0.1 && <2.1+ barbies >=2.0.1 && <3 , base >=4.14 && <5- , clash-ghc >=1.4.2 && <2.0- , clash-lib >=1.4.2 && <2.0- , clash-prelude >=1.4.2 && <2.0+ , clash-ghc >=1.4.2 && <2+ , clash-lib >=1.4.2 && <2+ , clash-prelude >=1.4.2 && <2 , containers <0.8- , ghc-typelits-extra <=1.0- , ghc-typelits-knownnat <=1.0- , ghc-typelits-natnormalise <=1.0+ , ghc-typelits-extra <1+ , ghc-typelits-knownnat <1+ , ghc-typelits-natnormalise <1 , lens <6 , lift-type ==0.1.* , monoidal-containers ==0.6.*
src/RetroClash/Delayed.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE RecordWildCards, RankNTypes #-}+{-# LANGUAGE CPP #-} module RetroClash.Delayed ( delayVGA @@ -61,7 +62,11 @@ delayedBlockRam1 :: (1 <= n, Enum addr, NFDataX addr, NFDataX a, HiddenClockResetEnable dom)+#if MIN_VERSION_clash_prelude(1,10,0)+ => ResetStrategy r ()+#else => ResetStrategy r+#endif -> SNat n -> a -> DSignal dom d addr
src/RetroClash/Utils.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE ScopedTypeVariables, ApplicativeDo, Rank2Types #-} {-# LANGUAGE TupleSections #-}+{-# LANGUAGE CPP #-} module RetroClash.Utils ( withResetEnableGen , withEnableGen@@ -152,6 +153,7 @@ fromActive = fromActiveDyn Low . activeLevel toActive = MkActive . toActiveDyn Low +#if !MIN_VERSION_clash_prelude(1,10,0) infix 4 ==. (==.) :: (Eq a, Functor f) => a -> f a -> f Bool x ==. fy = (x ==) <$> fy@@ -187,6 +189,7 @@ infix 4 <=. (<=.) :: (Ord a, Functor f) => a -> f a -> f Bool x <=. fy = (x <=) <$> fy+#endif (.!!.) :: (KnownNat n, Enum i, Applicative f) => f (Vec n a) -> f i -> f a (.!!.) = liftA2 (!!)@@ -265,7 +268,7 @@ singlePort mem addr wr = mem addr (packWrite <$> addr <*> wr) unbraid- :: (KnownNat n, KnownNat k, 1 <= n, 1 <= (n * 2 ^ k), (CLog 2 (2 ^ k)) ~ k, (CLog 2 (n * 2 ^ k)) ~ (CLog 2 n + k))+ :: (KnownNat n, KnownNat k, 1 <= n, 1 <= (n * 2 ^ k), BitSize (Index (n * 2 ^ k)) ~ BitSize (Index n) + BitSize (Index (2 ^ k))) => Maybe (Index (n * 2 ^ k)) -> Vec (2 ^ k) (Maybe (Index n)) unbraid Nothing = repeat Nothing@@ -310,7 +313,7 @@ half x = x `shiftR` 1 halfIndex- :: (KnownNat n, 1 <= (2 * n), (CLog 2 (2 * n)) ~ (CLog 2 n + 1))+ :: (KnownNat n, 1 <= (2 * n), BitSize (Index (2 * n)) ~ BitSize (Index n) + 1) => Index (2 * n) -> Index n halfIndex = fst . bitCoerce @_ @(_, Bit)