packages feed

clash-prelude-hedgehog 1.6.6 → 1.8.0

raw patch · 9 files changed

+75/−18 lines, 9 filesdep ~clash-preludedep ~textPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: clash-prelude, text

API changes (from Hackage documentation)

+ Clash.Hedgehog.Annotations.SynthesisAttributes: genAttr :: forall m. MonadGen m => Range Int -> m (Attr String)
- Clash.Hedgehog.Sized.BitVector: genBitVector :: (MonadGen m, KnownNat n) => m (BitVector n)
+ Clash.Hedgehog.Sized.BitVector: genBitVector :: forall m n. (MonadGen m, KnownNat n) => m (BitVector n)

Files

clash-prelude-hedgehog.cabal view
@@ -1,7 +1,7 @@ cabal-version:      2.2  name:               clash-prelude-hedgehog-version:            1.6.6+version:            1.8.0 synopsis:           Hedgehog Generators for clash-prelude description:        Hedgehog Generators for clash-prelude bug-reports:        https://github.com/clash-lang/clash-compiler/issues@@ -37,17 +37,18 @@   hs-source-dirs: src    exposed-modules:+    Clash.Hedgehog.Annotations.SynthesisAttributes     Clash.Hedgehog.Signal     Clash.Hedgehog.Sized.BitVector     Clash.Hedgehog.Sized.Index+    Clash.Hedgehog.Sized.RTree     Clash.Hedgehog.Sized.Signed     Clash.Hedgehog.Sized.Unsigned-    Clash.Hedgehog.Sized.RTree     Clash.Hedgehog.Sized.Vector    build-depends:     ghc-typelits-knownnat     >= 0.7.2   && < 0.8,     ghc-typelits-natnormalise >= 0.7.2   && < 0.8,-    text                      >= 1.2.2   && < 1.4,+    text                      >= 1.2.2   && < 2.1, -    clash-prelude             == 1.6.6,+    clash-prelude             == 1.8.0,
+ src/Clash/Hedgehog/Annotations/SynthesisAttributes.hs view
@@ -0,0 +1,18 @@+module Clash.Hedgehog.Annotations.SynthesisAttributes where++import Clash.Annotations.SynthesisAttributes (Attr(..))++import Hedgehog+import qualified Hedgehog.Gen as Gen++genAttr :: forall m. MonadGen m => Range Int -> m (Attr String)+genAttr range =+  Gen.choice+    [ BoolAttr <$> genAlphaNum <*> Gen.bool+    , IntegerAttr <$> genAlphaNum <*> genInteger+    , StringAttr <$> genAlphaNum <*> genAlphaNum+    , Attr <$> genAlphaNum+    ]+ where+  genAlphaNum = Gen.string range Gen.alphaNum+  genInteger  = toInteger <$> Gen.integral range
src/Clash/Hedgehog/Signal.hs view
@@ -6,6 +6,8 @@ Random generation of types from "Clash.Signal.Internal". -} +{-# LANGUAGE CPP #-}+ module Clash.Hedgehog.Signal   ( genSignal   , genActiveEdge@@ -14,7 +16,9 @@   , genResetPolarity   ) where +#if !MIN_VERSION_base(4,18,0) import Control.Applicative (liftA2)+#endif import Hedgehog (MonadGen) import qualified Hedgehog.Gen as Gen 
src/Clash/Hedgehog/Sized/BitVector.hs view
@@ -8,6 +8,7 @@  {-# OPTIONS_GHC -fplugin=GHC.TypeLits.KnownNat.Solver #-} +{-# LANGUAGE CPP #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE MagicHash #-} {-# LANGUAGE RankNTypes #-}@@ -21,17 +22,23 @@   , genSomeBitVector   ) where +#if !MIN_VERSION_base(4,16,0) import GHC.Natural (Natural)+#endif import GHC.TypeNats+#if MIN_VERSION_base(4,18,0)+  hiding (SNat)+#endif import Hedgehog (MonadGen, Range)+import Hedgehog.Internal.Range (constantBounded, constant) import qualified Hedgehog.Gen as Gen +import Clash.Class.BitPack (pack) import Clash.Promoted.Nat import Clash.Sized.Internal.BitVector-import Clash.Sized.Vector (v2bv) import Clash.XException (errorX) -import Clash.Hedgehog.Sized.Vector (genVec)+import Clash.Hedgehog.Sized.Unsigned  -- | Generate a bit which is guaranteed to be defined. -- This will either have the value 'low' or 'high'.@@ -40,7 +47,7 @@ genDefinedBit = Gen.element [low, high]  -- | Generate a bit which is not guaranteed to be defined.--- This will either have the value 'low' or 'high', or throw an 'XException'.+-- This will either have the value 'low' or 'high', or throw an @XException@. -- genBit :: (MonadGen m) => m Bit genBit = Gen.element [low, high, errorX "X"]@@ -48,23 +55,20 @@ -- | Generate a bit vector where all bits are defined. -- genDefinedBitVector :: (MonadGen m, KnownNat n) => m (BitVector n)-genDefinedBitVector =-  Gen.frequency-    [ (60, fmap v2bv (genVec genDefinedBit))-    , (20, Gen.constant minBound)-    , (20, Gen.constant maxBound)-    ]+genDefinedBitVector = pack <$> genUnsigned constantBounded  -- | Generate a bit vector where some bits may be undefined. ---genBitVector :: (MonadGen m, KnownNat n) => m (BitVector n)+genBitVector :: forall m n . (MonadGen m, KnownNat n) => m (BitVector n) genBitVector =   Gen.frequency-    [ (55, fmap v2bv (genVec genBit))-    , (15, Gen.constant minBound)-    , (15, Gen.constant maxBound)-    , (15, Gen.constant undefined#)+    [ (70, BV <$> genNatural <*> genNatural)+    , (10, Gen.constant minBound)+    , (10, Gen.constant maxBound)+    , (10, Gen.constant undefined#)     ]+ where+  genNatural = Gen.integral $ constant 0 (2^natToNatural @n)  data SomeBitVector atLeast where   SomeBitVector :: SNat n -> BitVector (atLeast + n) -> SomeBitVector atLeast
src/Clash/Hedgehog/Sized/Index.hs view
@@ -8,6 +8,7 @@  {-# OPTIONS_GHC -fplugin=GHC.TypeLits.KnownNat.Solver #-} +{-# LANGUAGE CPP #-} {-# LANGUAGE GADTs #-}  module Clash.Hedgehog.Sized.Index@@ -16,8 +17,13 @@   , genSomeIndex   ) where +#if !MIN_VERSION_base(4,16,0) import GHC.Natural (Natural)+#endif import GHC.TypeNats+#if MIN_VERSION_base(4,18,0)+  hiding (SNat)+#endif import Hedgehog (MonadGen, Range) import qualified Hedgehog.Gen as Gen import qualified Hedgehog.Range as Range
src/Clash/Hedgehog/Sized/RTree.hs view
@@ -8,6 +8,7 @@  {-# OPTIONS_GHC -fplugin=GHC.TypeLits.KnownNat.Solver #-} +{-# LANGUAGE CPP #-} {-# LANGUAGE GADTs #-}  module Clash.Hedgehog.Sized.RTree@@ -17,8 +18,13 @@   , genSomeRTree   ) where +#if !MIN_VERSION_base(4,16,0) import GHC.Natural (Natural)+#endif import GHC.TypeNats+#if MIN_VERSION_base(4,18,0)+  hiding (SNat)+#endif import Hedgehog (MonadGen, Range) import qualified Hedgehog.Gen as Gen 
src/Clash/Hedgehog/Sized/Signed.hs view
@@ -8,6 +8,7 @@  {-# OPTIONS_GHC -fplugin=GHC.TypeLits.KnownNat.Solver #-} +{-# LANGUAGE CPP #-} {-# LANGUAGE GADTs #-}  module Clash.Hedgehog.Sized.Signed@@ -16,8 +17,13 @@   , genSomeSigned   ) where +#if !MIN_VERSION_base(4,16,0) import GHC.Natural (Natural)+#endif import GHC.TypeNats+#if MIN_VERSION_base(4,18,0)+  hiding (SNat)+#endif import Hedgehog (MonadGen, Range) import qualified Hedgehog.Gen as Gen import qualified Hedgehog.Range as Range
src/Clash/Hedgehog/Sized/Unsigned.hs view
@@ -8,6 +8,7 @@  {-# OPTIONS_GHC -fplugin=GHC.TypeLits.KnownNat.Solver #-} +{-# LANGUAGE CPP #-} {-# LANGUAGE GADTs #-}  module Clash.Hedgehog.Sized.Unsigned@@ -16,8 +17,13 @@   , genSomeUnsigned   ) where +#if !MIN_VERSION_base(4,16,0) import GHC.Natural (Natural)+#endif import GHC.TypeNats+#if MIN_VERSION_base(4,18,0)+  hiding (SNat)+#endif import Hedgehog (MonadGen, Range) import qualified Hedgehog.Gen as Gen import qualified Hedgehog.Range as Range
src/Clash/Hedgehog/Sized/Vector.hs view
@@ -8,6 +8,7 @@  {-# OPTIONS_GHC -fplugin=GHC.TypeLits.KnownNat.Solver #-} +{-# LANGUAGE CPP #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE MagicHash #-} @@ -20,8 +21,13 @@  import Prelude hiding (repeat) +#if !MIN_VERSION_base(4,16,0) import GHC.Natural (Natural)+#endif import GHC.TypeNats+#if MIN_VERSION_base(4,18,0)+  hiding (SNat)+#endif import Hedgehog (MonadGen, Range) import qualified Hedgehog.Gen as Gen