Date: Friday, July 8, 2022 @ 13:08:43 Author: felixonmars Revision: 1248673
upgpkg: haskell-what4 1.3-1: rebuild with cryptol 2.13.0, what4 1.3 Modified: haskell-what4/trunk/PKGBUILD Deleted: haskell-what4/trunk/hashable-1.4.patch --------------------+ PKGBUILD | 25 ++-- hashable-1.4.patch | 266 --------------------------------------------------- 2 files changed, 11 insertions(+), 280 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2022-07-08 13:05:59 UTC (rev 1248672) +++ PKGBUILD 2022-07-08 13:08:43 UTC (rev 1248673) @@ -2,34 +2,31 @@ _hkgname=what4 pkgname=haskell-what4 -pkgver=1.2.1 -pkgrel=156 +pkgver=1.3 +pkgrel=1 pkgdesc="Solver-agnostic symbolic values support for issuing queries" url="https://github.com/GaloisInc/what4" license=('BSD') arch=('x86_64') -depends=('ghc-libs' 'haskell-attoparsec' 'haskell-bimap' 'haskell-bifunctors' 'haskell-bv-sized' - 'haskell-config-value' 'haskell-deriving-compat' 'haskell-data-binary-ieee754' - 'haskell-extra' 'haskell-fingertree' 'haskell-hashable' 'haskell-hashtables' - 'haskell-io-streams' 'haskell-lens' 'haskell-libbf' 'haskell-panic' - 'haskell-parameterized-utils' 'haskell-prettyprinter' 'haskell-scientific' +depends=('ghc-libs' 'haskell-async' 'haskell-attoparsec' 'haskell-bimap' 'haskell-bifunctors' + 'haskell-bv-sized' 'haskell-concurrent-extra' 'haskell-config-value' + 'haskell-deriving-compat' 'haskell-data-binary-ieee754' 'haskell-fingertree' + 'haskell-hashable' 'haskell-hashtables' 'haskell-io-streams' 'haskell-lens' 'haskell-libbf' + 'haskell-panic' 'haskell-parameterized-utils' 'haskell-prettyprinter' 'haskell-scientific' 'haskell-temporary' 'haskell-th-abstraction' 'haskell-th-lift' 'haskell-th-lift-instances' 'haskell-unordered-containers' 'haskell-utf8-string' 'haskell-vector' 'haskell-versions' 'haskell-zenc') makedepends=('ghc' 'uusi' 'haskell-contravariant' 'haskell-hedgehog' 'haskell-lumberjack' 'haskell-quickcheck' 'haskell-tasty' 'haskell-tasty-checklist' - 'haskell-tasty-hedgehog' 'haskell-tasty-hunit' 'haskell-tasty-quickcheck' - 'haskell-tasty-sugar') + 'haskell-tasty-expected-failure' 'haskell-tasty-hedgehog' 'haskell-tasty-hunit' + 'haskell-tasty-quickcheck' 'haskell-tasty-sugar') checkdepends=('cvc4' 'yices' 'z3') optdepends=('cvc4' 'yices' 'z3') -source=(https://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz - hashable-1.4.patch) -sha512sums=('494e030c0302997205bf4ac3cbd877cd107b22cc3dcb1ca64a075434f95c0a993a82ac27ad5098e616a2f72f8cb9d6234d41a2c5e0335eb874953963281d1318' - '2f048d498c9edc7f51a95759bc2ff9099339ec7df37ad1b7ec5cebf4e24b538ce76bef802620e92ae84887712eaf05e5d601c919464381544a92ce24cd8ce2fc') +source=(https://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz) +sha512sums=('b1abb534750815962fe77ac75edfe1d766557fbe4bb396da4f8e4a3564630886cccb84e1866babcd26ac9ce79286b921c9eb408b23f2a71446a0a8466ad492ee') prepare() { cd $_hkgname-$pkgver - patch -p2 -i ../hashable-1.4.patch gen-setup uusi -u tasty-sugar $_hkgname.cabal } Deleted: hashable-1.4.patch =================================================================== --- hashable-1.4.patch 2022-07-08 13:05:59 UTC (rev 1248672) +++ hashable-1.4.patch 2022-07-08 13:08:43 UTC (rev 1248673) @@ -1,266 +0,0 @@ -From 3db89da15cc36a4e7be8860d630261a63e62bea1 Mon Sep 17 00:00:00 2001 -From: Ryan Scott <[email protected]> -Date: Wed, 5 Jan 2022 10:54:14 -0600 -Subject: [PATCH] Allow building with hashable-1.4.* - -This was prompted by GaloisInc/parameterized-utils#126, but the changes needed -on `what4`'s end can be applied independently. ---- - what4/CHANGES.md | 11 +++++++++++ - what4/src/What4/BaseTypes.hs | 6 ++++++ - what4/src/What4/Expr/App.hs | 5 ++++- - what4/src/What4/Expr/ArrayUpdateMap.hs | 2 +- - what4/src/What4/Expr/BoolMap.hs | 2 +- - what4/src/What4/Expr/MATLAB.hs | 4 ++++ - what4/src/What4/Expr/StringSeq.hs | 2 +- - what4/src/What4/Expr/UnaryBV.hs | 2 ++ - what4/src/What4/Expr/WeightedSum.hs | 8 +++++++- - what4/src/What4/Interface.hs | 2 +- - what4/src/What4/InterpretedFloatingPoint.hs | 2 ++ - what4/src/What4/SemiRing.hs | 6 ++++++ - what4/src/What4/SpecialFunctions.hs | 5 ++++- - what4/src/What4/Utils/OnlyIntRepr.hs | 3 +++ - 14 files changed, 53 insertions(+), 7 deletions(-) - -diff --git a/what4/CHANGES.md b/what4/CHANGES.md -index 434bc5bc..dea6e828 100644 ---- a/what4/CHANGES.md -+++ b/what4/CHANGES.md -@@ -1,3 +1,14 @@ -+# next (TBA) -+ -+* Allow building with `hashable-1.4.*`: -+ * Add `Eq` instances for all data types with `Hashable` instances that -+ were missing corresponding `Eq` instances. This is required since -+ `hashable-1.4.0.0` adds an `Eq` superclass to `Hashable`. -+ * Some `Hashable` instances now have extra constraints to match the -+ constraints in their corresponding `Eq` instances. For example, -+ the `Hashable` instance for `SymNat` now has an extra `TestEquality` -+ constraint to match its `Eq` instance. -+ - # 1.2.1 (June 2021) - - * Include test suite data in the Hackage tarball. -diff --git a/what4/src/What4/BaseTypes.hs b/what4/src/What4/BaseTypes.hs -index 8040e05a..73aaef41 100644 ---- a/what4/src/What4/BaseTypes.hs -+++ b/what4/src/What4/BaseTypes.hs -@@ -311,6 +311,8 @@ instance TestEquality BaseTypeRepr where - ) - ] - ) -+instance Eq (BaseTypeRepr bt) where -+ x == y = isJust (testEquality x y) - - instance OrdF BaseTypeRepr where - compareF = $(structuralTypeOrd [t|BaseTypeRepr|] -@@ -328,6 +330,8 @@ instance TestEquality FloatPrecisionRepr where - testEquality = $(structuralTypeEquality [t|FloatPrecisionRepr|] - [(TypeApp (ConType [t|NatRepr|]) AnyType, [|testEquality|])] - ) -+instance Eq (FloatPrecisionRepr fpp) where -+ x == y = isJust (testEquality x y) - instance OrdF FloatPrecisionRepr where - compareF = $(structuralTypeOrd [t|FloatPrecisionRepr|] - [(TypeApp (ConType [t|NatRepr|]) AnyType, [|compareF|])] -@@ -335,5 +339,7 @@ instance OrdF FloatPrecisionRepr where - - instance TestEquality StringInfoRepr where - testEquality = $(structuralTypeEquality [t|StringInfoRepr|] []) -+instance Eq (StringInfoRepr si) where -+ x == y = isJust (testEquality x y) - instance OrdF StringInfoRepr where - compareF = $(structuralTypeOrd [t|StringInfoRepr|] []) -diff --git a/what4/src/What4/Expr/App.hs b/what4/src/What4/Expr/App.hs -index 66c644e4..28180902 100644 ---- a/what4/src/What4/Expr/App.hs -+++ b/what4/src/What4/Expr/App.hs -@@ -937,7 +937,7 @@ instance TestEquality e => TestEquality (NonceApp t e) where - ] - ) - --instance HashableF e => HashableF (NonceApp t e) where -+instance (HashableF e, TestEquality e) => HashableF (NonceApp t e) where - hashWithSaltF = $(structuralHashWithSalt [t|NonceApp|] - [ (DataArg 1 `TypeApp` AnyType, [|hashWithSaltF|]) ]) - -@@ -1698,6 +1698,9 @@ asMatlabSolverFn f - | otherwise = Nothing - - -+instance Eq (ExprSymFn t args tp) where -+ x == y = isJust (testExprSymFnEq x y) -+ - instance Hashable (ExprSymFn t args tp) where - hashWithSalt s f = s `hashWithSalt` symFnId f - -diff --git a/what4/src/What4/Expr/ArrayUpdateMap.hs b/what4/src/What4/Expr/ArrayUpdateMap.hs -index 9819ceea..37deec8f 100644 ---- a/what4/src/What4/Expr/ArrayUpdateMap.hs -+++ b/what4/src/What4/Expr/ArrayUpdateMap.hs -@@ -65,7 +65,7 @@ newtype ArrayUpdateMap e ctx tp = - instance TestEquality e => Eq (ArrayUpdateMap e ctx tp) where - ArrayUpdateMap m1 == ArrayUpdateMap m2 = AM.eqBy (\ x y -> isJust $ testEquality x y) m1 m2 - --instance Hashable (ArrayUpdateMap e ctx tp) where -+instance TestEquality e => Hashable (ArrayUpdateMap e ctx tp) where - hashWithSalt s (ArrayUpdateMap m) = - case AM.annotation m of - Nothing -> hashWithSalt s (111::Int) -diff --git a/what4/src/What4/Expr/BoolMap.hs b/what4/src/What4/Expr/BoolMap.hs -index 334c8f1b..9c85303c 100644 ---- a/what4/src/What4/Expr/BoolMap.hs -+++ b/what4/src/What4/Expr/BoolMap.hs -@@ -63,7 +63,7 @@ instance TestEquality f => Eq (Wrap f x) where - Wrap a == Wrap b = isJust $ testEquality a b - instance OrdF f => Ord (Wrap f x) where - compare (Wrap a) (Wrap b) = toOrdering $ compareF a b --instance HashableF f => Hashable (Wrap f x) where -+instance (HashableF f, TestEquality f) => Hashable (Wrap f x) where - hashWithSalt s (Wrap a) = hashWithSaltF s a - - -- | This data structure keeps track of a collection of expressions -diff --git a/what4/src/What4/Expr/MATLAB.hs b/what4/src/What4/Expr/MATLAB.hs -index 25f4d8d5..586462f2 100644 ---- a/what4/src/What4/Expr/MATLAB.hs -+++ b/what4/src/What4/Expr/MATLAB.hs -@@ -731,9 +731,13 @@ testSolverFnEq = $(structuralTypeEquality [t|MatlabSolverFn|] - ] - ) - -+instance TestEquality f => Eq (MatlabSolverFn f args tp) where -+ x == y = isJust (testSolverFnEq x y) -+ - instance ( Hashable (f BaseRealType) - , Hashable (f BaseIntegerType) - , HashableF f -+ , TestEquality f - ) - => Hashable (MatlabSolverFn f args tp) where - hashWithSalt = $(structuralHashWithSalt [t|MatlabSolverFn|] []) -diff --git a/what4/src/What4/Expr/StringSeq.hs b/what4/src/What4/Expr/StringSeq.hs -index 1c160158..d94aace7 100644 ---- a/what4/src/What4/Expr/StringSeq.hs -+++ b/what4/src/What4/Expr/StringSeq.hs -@@ -106,7 +106,7 @@ instance (TestEquality e, HasAbsValue e, HashableF e) => Eq (StringSeq e si) whe - instance (HasAbsValue e, HashableF e) => HashableF (StringSeq e) where - hashWithSaltF s (StringSeq _si xs) = hashWithSalt s (sft_hash xs) - --instance (HasAbsValue e, HashableF e) => Hashable (StringSeq e si) where -+instance (HasAbsValue e, HashableF e, TestEquality e) => Hashable (StringSeq e si) where - hashWithSalt = hashWithSaltF - - singleton :: (HasAbsValue e, HashableF e, IsExpr e) => StringInfoRepr si -> e (BaseStringType si) -> StringSeq e si -diff --git a/what4/src/What4/Expr/UnaryBV.hs b/what4/src/What4/Expr/UnaryBV.hs -index a36964a6..5893517b 100644 ---- a/what4/src/What4/Expr/UnaryBV.hs -+++ b/what4/src/What4/Expr/UnaryBV.hs -@@ -135,6 +135,8 @@ instance Eq p => TestEquality (UnaryBV p) where - Just Refl - else - Nothing -+instance Eq p => Eq (UnaryBV p n) where -+ x == y = isJust (testEquality x y) - - instance Hashable p => Hashable (UnaryBV p n) where - hashWithSalt s0 u = Map.foldlWithKey' go s0 (unaryBVMap u) -diff --git a/what4/src/What4/Expr/WeightedSum.hs b/what4/src/What4/Expr/WeightedSum.hs -index 87e37f09..043352e9 100644 ---- a/what4/src/What4/Expr/WeightedSum.hs -+++ b/what4/src/What4/Expr/WeightedSum.hs -@@ -166,7 +166,7 @@ instance OrdF f => Ord (WrapF f i) where - instance TestEquality f => Eq (WrapF f i) where - (WrapF x) == (WrapF y) = isJust $ testEquality x y - --instance HashableF f => Hashable (WrapF f i) where -+instance (HashableF f, TestEquality f) => Hashable (WrapF f i) where - hashWithSalt s (WrapF x) = hashWithSaltF s x - - traverseWrap :: Functor m => (f (SR.SemiRingBase i) -> m (g (SR.SemiRingBase i))) -> WrapF f i -> m (WrapF g i) -@@ -303,6 +303,9 @@ instance OrdF f => TestEquality (SemiRingProduct f) where - unless (AM.eqBy (SR.occ_eq (prodRepr x)) (_prodMap x) (_prodMap y)) Nothing - return Refl - -+instance OrdF f => Eq (SemiRingProduct f sr) where -+ x == y = isJust (testEquality x y) -+ - instance OrdF f => TestEquality (WeightedSum f) where - testEquality x y - | sumMapHash x /= sumMapHash y = Nothing -@@ -312,6 +315,9 @@ instance OrdF f => TestEquality (WeightedSum f) where - unless (AM.eqBy (SR.eq (sumRepr x)) (_sumMap x) (_sumMap y)) Nothing - return Refl - -+instance OrdF f => Eq (WeightedSum f sr) where -+ x == y = isJust (testEquality x y) -+ - - -- | Created a weighted sum directly from a map and constant. - -- -diff --git a/what4/src/What4/Interface.hs b/what4/src/What4/Interface.hs -index 167dbc54..0d56ffb0 100644 ---- a/what4/src/What4/Interface.hs -+++ b/what4/src/What4/Interface.hs -@@ -543,7 +543,7 @@ instance TestEquality (SymExpr sym) => Eq (SymNat sym) where - instance OrdF (SymExpr sym) => Ord (SymNat sym) where - compare (SymNat x) (SymNat y) = toOrdering (compareF x y) - --instance HashableF (SymExpr sym) => Hashable (SymNat sym) where -+instance (HashableF (SymExpr sym), TestEquality (SymExpr sym)) => Hashable (SymNat sym) where - hashWithSalt s (SymNat x) = hashWithSaltF s x - - ------------------------------------------------------------------------ -diff --git a/what4/src/What4/InterpretedFloatingPoint.hs b/what4/src/What4/InterpretedFloatingPoint.hs -index 09c2d77c..5d52153c 100644 ---- a/what4/src/What4/InterpretedFloatingPoint.hs -+++ b/what4/src/What4/InterpretedFloatingPoint.hs -@@ -107,6 +107,8 @@ instance ShowF FloatInfoRepr - - instance TestEquality FloatInfoRepr where - testEquality = $(structuralTypeEquality [t|FloatInfoRepr|] []) -+instance Eq (FloatInfoRepr fi) where -+ x == y = isJust (testEquality x y) - instance OrdF FloatInfoRepr where - compareF = $(structuralTypeOrd [t|FloatInfoRepr|] []) - -diff --git a/what4/src/What4/SemiRing.hs b/what4/src/What4/SemiRing.hs -index 6e1f9bf8..38a1e728 100644 ---- a/what4/src/What4/SemiRing.hs -+++ b/what4/src/What4/SemiRing.hs -@@ -233,9 +233,13 @@ $(return []) - - instance TestEquality BVFlavorRepr where - testEquality = $(structuralTypeEquality [t|BVFlavorRepr|] []) -+instance Eq (BVFlavorRepr fv) where -+ x == y = isJust (testEquality x y) - - instance TestEquality OrderedSemiRingRepr where - testEquality = $(structuralTypeEquality [t|OrderedSemiRingRepr|] []) -+instance Eq (OrderedSemiRingRepr sr) where -+ x == y = isJust (testEquality x y) - - instance TestEquality SemiRingRepr where - testEquality = -@@ -243,6 +247,8 @@ instance TestEquality SemiRingRepr where - [ (ConType [t|NatRepr|] `TypeApp` AnyType, [|testEquality|]) - , (ConType [t|BVFlavorRepr|] `TypeApp` AnyType, [|testEquality|]) - ]) -+instance Eq (SemiRingRepr sr) where -+ x == y = isJust (testEquality x y) - - instance OrdF BVFlavorRepr where - compareF = $(structuralTypeOrd [t|BVFlavorRepr|] []) -diff --git a/what4/src/What4/Utils/OnlyIntRepr.hs b/what4/src/What4/Utils/OnlyIntRepr.hs -index b65d0134..e995bd63 100644 ---- a/what4/src/What4/Utils/OnlyIntRepr.hs -+++ b/what4/src/What4/Utils/OnlyIntRepr.hs -@@ -25,6 +25,9 @@ data OnlyIntRepr tp - instance TestEquality OnlyIntRepr where - testEquality OnlyIntRepr OnlyIntRepr = Just Refl - -+instance Eq (OnlyIntRepr tp) where -+ OnlyIntRepr == OnlyIntRepr = True -+ - instance Hashable (OnlyIntRepr tp) where - hashWithSalt s OnlyIntRepr = s -
