Hello community,

here is the log from the commit of package ghc-store for openSUSE:Factory 
checked in at 2019-12-27 13:57:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-store (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-store.new.6675 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-store"

Fri Dec 27 13:57:42 2019 rev:10 rq:759516 version:0.7.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-store/ghc-store.changes      2019-07-29 
17:27:03.946287232 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-store.new.6675/ghc-store.changes    
2019-12-27 13:57:42.992784362 +0100
@@ -1,0 +2,59 @@
+Mon Nov 18 03:02:55 UTC 2019 - [email protected]
+
+- Update store to version 0.7.1.
+  ## 0.7.1
+
+  * Fixes compilation with GHC-7.10 due to it not defining `Generic`
+    instances for `Complex` and `Identity`. See [#142][].
+
+  * Documents some gotchas about using store vs other libraries
+
+  [#142]: https://github.com/fpco/store/issues/142
+
+-------------------------------------------------------------------
+Sun Nov 10 03:03:18 UTC 2019 - [email protected]
+
+- Update store to version 0.7.0.
+  ## 0.7.0
+
+  * Fixes a bug where the `Store` instances for `Identity`, `Const`, and
+    `Complex` all have `Storable` superclasses instead of `Store. See
+    [#143][].
+
+  [#143]: https://github.com/fpco/store/issues/143
+
+  ## 0.6.1
+
+  * Can now optionally be built with `integer-simple` instead of
+    `integer-gmp`, via the `integer-simple` cabal flag.  Note that the
+    serialization of `Integer` with `integer-simple` differs from what
+    is used by the GMP default. See [#147][].
+
+  [#147]: https://github.com/fpco/store/pull/147
+
+-------------------------------------------------------------------
+Fri Nov  8 16:14:50 UTC 2019 - Peter Simons <[email protected]>
+
+- Drop obsolete group attributes.
+
+-------------------------------------------------------------------
+Thu Oct 24 02:03:05 UTC 2019 - [email protected]
+
+- Update store to version 0.6.0.1.
+  ## 0.6.0.1
+
+  * Now builds with GHC-7.10 - compatibility was broken in 0.6.0 due to
+    the fix for GHC-8.8. See
+    [#146][https://github.com/fpco/store/issues/146].
+
+-------------------------------------------------------------------
+Fri Oct 18 02:02:37 UTC 2019 - [email protected]
+
+- Update store to version 0.6.0.
+  ## 0.6.0
+
+  * Now builds with GHC-8.8. This is a major version bump because
+    MonadFail constraints were added to some functions, which is
+    potentially a breaking change.
+
+-------------------------------------------------------------------

Old:
----
  store-0.5.1.2.tar.gz

New:
----
  store-0.7.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ghc-store.spec ++++++
--- /var/tmp/diff_new_pack.I23tG6/_old  2019-12-27 13:57:44.628785153 +0100
+++ /var/tmp/diff_new_pack.I23tG6/_new  2019-12-27 13:57:44.632785154 +0100
@@ -19,11 +19,10 @@
 %global pkg_name store
 %bcond_with tests
 Name:           ghc-%{pkg_name}
-Version:        0.5.1.2
+Version:        0.7.1
 Release:        0
 Summary:        Fast binary serialization
 License:        MIT
-Group:          Development/Libraries/Haskell
 URL:            https://hackage.haskell.org/package/%{pkg_name}
 Source0:        
https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz
 BuildRequires:  ghc-Cabal-devel
@@ -38,6 +37,7 @@
 BuildRequires:  ghc-cryptohash-devel
 BuildRequires:  ghc-deepseq-devel
 BuildRequires:  ghc-directory-devel
+BuildRequires:  ghc-fail-devel
 BuildRequires:  ghc-filepath-devel
 BuildRequires:  ghc-free-devel
 BuildRequires:  ghc-hashable-devel
@@ -76,7 +76,6 @@
 
 %package devel
 Summary:        Haskell %{pkg_name} library development files
-Group:          Development/Libraries/Haskell
 Requires:       %{name} = %{version}-%{release}
 Requires:       ghc-compiler = %{ghc_version}
 Requires(post): ghc-compiler = %{ghc_version}

++++++ store-0.5.1.2.tar.gz -> store-0.7.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/store-0.5.1.2/ChangeLog.md 
new/store-0.7.1/ChangeLog.md
--- old/store-0.5.1.2/ChangeLog.md      2019-07-07 05:32:21.000000000 +0200
+++ new/store-0.7.1/ChangeLog.md        2019-11-17 20:29:05.000000000 +0100
@@ -1,5 +1,43 @@
 # ChangeLog
 
+## 0.7.1
+
+* Fixes compilation with GHC-7.10 due to it not defining `Generic`
+  instances for `Complex` and `Identity`. See [#142][].
+
+* Documents some gotchas about using store vs other libraries
+
+[#142]: https://github.com/fpco/store/issues/142
+
+## 0.7.0
+
+* Fixes a bug where the `Store` instances for `Identity`, `Const`, and
+  `Complex` all have `Storable` superclasses instead of `Store. See
+  [#143][].
+
+[#143]: https://github.com/fpco/store/issues/143
+
+## 0.6.1
+
+* Can now optionally be built with `integer-simple` instead of
+  `integer-gmp`, via the `integer-simple` cabal flag.  Note that the
+  serialization of `Integer` with `integer-simple` differs from what
+  is used by the GMP default. See [#147][].
+
+[#147]: https://github.com/fpco/store/pull/147
+
+## 0.6.0.1
+
+* Now builds with GHC-7.10 - compatibility was broken in 0.6.0 due to
+  the fix for GHC-8.8. See
+  [#146][https://github.com/fpco/store/issues/146].
+
+## 0.6.0
+
+* Now builds with GHC-8.8. This is a major version bump because
+  MonadFail constraints were added to some functions, which is
+  potentially a breaking change.
+
 ## 0.5.1.2
 
 * Fixes compilation with GHC < 8.0.  See
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/store-0.5.1.2/README.md new/store-0.7.1/README.md
--- old/store-0.5.1.2/README.md 2019-07-07 04:55:51.000000000 +0200
+++ new/store-0.7.1/README.md   2019-11-17 19:14:02.000000000 +0100
@@ -14,6 +14,11 @@
   [#31](https://github.com/fpco/store/issues/31). This plan makes little endian
   the default, so that the most common endianness has no overhead.
 
+  - Another way that the serialization behavior can vary is if
+    integer-simple is used instead of GHC's default of using
+    GMP. `Integer` serialized with the `integer-simple` flag enabled
+    are not compatible with those serialized without the flag enabled.
+
 * Instead of implementing lazy serialization / deserialization involving
   multiple input / output buffers, `peek` and `poke` always work with a single
   buffer. This buffer is allocated by asking the value for its size before
@@ -36,6 +41,23 @@
 * Utilities for streaming encoding / decoding of Store encoded messages, via 
the
   `store-streaming` package.
 
+## Gotchas
+
+Store is best used for communication between trusted processes and
+local caches.  It can certainly be used for other purposes, but the
+builtin set of instances have some gotchas to be aware of:
+
+* Store's builtin instances serialize in a format which depends on
+  machine endianness.
+
+* Store's builtin instances trust the data when deserializing. For
+  example, the deserialization of `Vector` will read the vector's link
+  from the first 8 bytes. It will then allocate enough memory to store
+  all the elements. Malicious or malformed input could cause
+  allocation of large amounts of memory.  See [issue #122][]
+
+[issue #122]: https://github.com/fpco/store/issues/122
+
 ## Blog posts
 
 * [Initial release 
announcement](https://www.fpcomplete.com/blog/2016/05/store-package)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/store-0.5.1.2/src/Data/Store/Impl.hs 
new/store-0.7.1/src/Data/Store/Impl.hs
--- old/store-0.5.1.2/src/Data/Store/Impl.hs    2019-07-07 05:28:15.000000000 
+0200
+++ new/store-0.7.1/src/Data/Store/Impl.hs      2019-11-17 19:14:03.000000000 
+0100
@@ -293,7 +293,7 @@
 
 type family TypeErrorMessage (a :: Symbol) :: Constraint where
 #if MIN_VERSION_base(4,9,0)
-    TypeErrorMessage a = TypeError (Text a)
+    TypeErrorMessage a = TypeError ('Text a)
 -- GHC < 8.0 does not support empty closed type families
 #elif __GLASGOW_HASKELL__ < 800
     TypeErrorMessage a = a ~ ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/store-0.5.1.2/src/Data/Store/Internal.hs 
new/store-0.7.1/src/Data/Store/Internal.hs
--- old/store-0.5.1.2/src/Data/Store/Internal.hs        2019-07-07 
04:55:51.000000000 +0200
+++ new/store-0.7.1/src/Data/Store/Internal.hs  2019-11-17 20:28:37.000000000 
+0100
@@ -76,10 +76,12 @@
 import qualified Data.ByteString.Lazy as LBS
 import qualified Data.ByteString.Short.Internal as SBS
 import           Data.Containers (IsMap, ContainerKey, MapValue, mapFromList, 
mapToList, IsSet, setFromList)
+import           Data.Complex (Complex (..))
 import           Data.Data (Data)
 import           Data.Fixed (Fixed (..), Pico)
 import           Data.Foldable (forM_, foldl')
 import           Data.Functor.Contravariant
+import           Data.Functor.Identity (Identity (..))
 import           Data.HashMap.Strict (HashMap)
 import           Data.HashSet (HashSet)
 import           Data.Hashable (Hashable)
@@ -118,10 +120,15 @@
 import           Foreign.Ptr (plusPtr, minusPtr)
 import           Foreign.Storable (Storable, sizeOf)
 import           GHC.Generics (Generic)
+#ifdef INTEGER_GMP
 import qualified GHC.Integer.GMP.Internals as I
+import           GHC.Types (Int (I#))
+#else
+import           GHC.Types (Word (W#))
+import qualified GHC.Integer.Simple.Internals as I
+#endif
 import           GHC.Real (Ratio(..))
 import           GHC.TypeLits
-import           GHC.Types (Int (I#))
 import           Instances.TH.Lift ()
 import           Language.Haskell.TH
 import           Language.Haskell.TH.Instances ()
@@ -132,9 +139,11 @@
 import           TH.Derive
 
 -- Conditional import to avoid warning
+#ifdef INTEGER_GMP
 #if MIN_VERSION_integer_gmp(1,0,0)
 import           GHC.Prim (sizeofByteArray#)
 #endif
+#endif
 
 ------------------------------------------------------------------------
 -- Utilities for defining list-like 'Store' instances in terms of 'IsSequence'
@@ -573,6 +582,7 @@
 {-# INLINE peekArray #-}
 
 instance Store Integer where
+#ifdef INTEGER_GMP
 #if MIN_VERSION_integer_gmp(1,0,0)
     size = VarSize $ \ x ->
         sizeOf (undefined :: Word8) + case x of
@@ -640,6 +650,51 @@
           when (r /= 0) (peekException "Buffer size stored for encoded Integer 
not divisible by Word size (to get limb count).")
           return (I.J# sz arr)
 #endif
+#else
+    -- NOTE: integer-simple uses a different encoding than GMP
+    size = VarSize $ \ x ->
+        sizeOf (undefined :: Word8) + case x of
+            I.Positive ds -> (1 + fromIntegral (numDigits ds)) * sizeOf 
(undefined :: Word)
+            I.Negative ds -> (1 + fromIntegral (numDigits ds)) * sizeOf 
(undefined :: Word)
+            I.Naught -> 0
+      where
+    poke x = case x of
+      I.Naught -> poke (0 :: Word8)
+      I.Positive ds -> do
+        poke (1 :: Word8)
+        poke (numDigits ds)
+        pokeDigits ds
+      I.Negative ds -> do
+        poke (2 :: Word8)
+        poke (numDigits ds)
+        pokeDigits ds
+      where
+        pokeDigits I.None = pure ()
+        pokeDigits (I.Some d ds) = poke (W# d) *> pokeDigits ds
+    peek = do
+      tag <- peek :: Peek Word8
+      case tag of
+        0 -> pure I.Naught
+        1 -> do
+          len <- peek :: Peek Word
+          I.Positive <$> peekDigits len
+        2 -> do
+          len <- peek :: Peek Word
+          I.Negative <$> peekDigits len
+        _ -> peekException "Invalid Integer tag"
+      where
+        peekDigits i
+          | i <= 0 = pure I.None
+          | otherwise = do
+              W# d <- peek
+              ds <- peekDigits (i - 1)
+              pure $! I.Some d ds
+
+numDigits :: I.Digits -> Word
+numDigits = go 0
+  where go !acc I.None = acc
+        go !acc (I.Some _ ds) = go (acc + 1) ds
+#endif
 
 -- instance Store GHC.Fingerprint.Types.Fingerprint where
 
@@ -666,6 +721,19 @@
     poke (x :% y) = poke (x, y)
     peek = uncurry (:%) <$> peek
 
+-- Similarly, manual implementation due to no Generic instance for
+-- Complex and Identity in GHC-7.10 and earlier.
+
+instance Store a => Store (Complex a) where
+    size = combineSize (\(x :+ _) -> x) (\(_ :+ y) -> y)
+    poke (x :+ y) = poke (x, y)
+    peek = uncurry (:+) <$> peek
+
+instance Store a => Store (Identity a) where
+    size = contramap (\(Identity x) -> x) size
+    poke (Identity x) = poke x
+    peek = Identity <$> peek
+
 instance Store Time.Day where
     size = contramap Time.toModifiedJulianDay (size :: Size Integer)
     poke = poke . Time.toModifiedJulianDay
@@ -688,6 +756,7 @@
 instance Store a => Store (First a)
 instance Store a => Store (Last a)
 instance Store a => Store (Maybe a)
+instance Store a => Store (Const a b)
 
 -- FIXME: have TH deriving handle unboxed fields?
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/store-0.5.1.2/src/Data/Store/TH/Internal.hs 
new/store-0.7.1/src/Data/Store/TH/Internal.hs
--- old/store-0.5.1.2/src/Data/Store/TH/Internal.hs     2019-07-07 
04:55:51.000000000 +0200
+++ new/store-0.7.1/src/Data/Store/TH/Internal.hs       2019-11-17 
19:14:03.000000000 +0100
@@ -24,11 +24,11 @@
 
 import           Control.Applicative
 import           Data.Complex ()
-import           Data.Generics.Aliases (extT)
-import           Data.Generics.Schemes (listify, everywhere)
+import           Data.Generics.Aliases (extT, mkQ, extQ)
+import           Data.Generics.Schemes (listify, everywhere, something)
 import           Data.List (find, nub)
 import qualified Data.Map as M
-import           Data.Maybe (fromMaybe)
+import           Data.Maybe (fromMaybe, isJust)
 import           Data.Primitive.ByteArray
 import           Data.Primitive.Types
 import           Data.Store.Core
@@ -287,13 +287,24 @@
         \(TypeclassInstance cs ty _) ->
         let argTy = head (tail (unAppsT ty))
             tyNameLit = LitE (StringL (pprint ty)) in
-        if p argTy
+        if p argTy && not (superclassHasStorable cs)
             then Just $ makeStoreInstance cs argTy
                 (AppE (VarE 'sizeStorableTy) tyNameLit)
                 (AppE (VarE 'peekStorableTy) tyNameLit)
                 (VarE 'pokeStorable)
             else Nothing
 
+-- See #143. Often Storable superclass constraints should instead be
+-- Store constraints, so instead it just warns for these.
+superclassHasStorable :: Cxt -> Bool
+superclassHasStorable = isJust . something (mkQ Nothing justStorable `extQ` 
ignoreStrings)
+  where
+    justStorable :: Type -> Maybe ()
+    justStorable (ConT n) | n == ''Storable = Just ()
+    justStorable _ = Nothing
+    ignoreStrings :: String -> Maybe ()
+    ignoreStrings _ = Nothing
+
 ------------------------------------------------------------------------
 -- Vector
 
@@ -363,7 +374,14 @@
     FamilyI _ insts <- reify ''UV.Vector
     return (map (everywhere (id `extT` dequalVarT) . go) insts)
   where
-#if MIN_VERSION_template_haskell(2,11,0)
+#if MIN_VERSION_template_haskell(2,15,0)
+    go (NewtypeInstD preds _ lhs _ con _)
+      | [_, ty] <- unAppsT lhs
+      = (preds, ty, conToDataCons con)
+    go (DataInstD preds _ lhs _ cons _)
+      | [_, ty] <- unAppsT lhs
+      = (preds, ty, concatMap conToDataCons cons)
+#elif MIN_VERSION_template_haskell(2,11,0)
     go (NewtypeInstD preds _ [ty] _ con _) = (preds, ty, conToDataCons con)
     go (DataInstD preds _ [ty] _ cons _) = (preds, ty, concatMap conToDataCons 
cons)
 #else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/store-0.5.1.2/src/Data/Store/TH.hs 
new/store-0.7.1/src/Data/Store/TH.hs
--- old/store-0.5.1.2/src/Data/Store/TH.hs      2019-07-07 04:55:51.000000000 
+0200
+++ new/store-0.7.1/src/Data/Store/TH.hs        2019-11-17 19:14:03.000000000 
+0100
@@ -37,6 +37,7 @@
     , assertRoundtrip
     ) where
 
+import qualified Control.Monad.Fail as Fail
 import Data.Complex ()
 import Data.Store.Impl
 import Data.Typeable (Typeable, typeOf)
@@ -60,7 +61,7 @@
         expr <- [e| property $ changeDepth (\_ -> depth) $ \x -> 
checkRoundtrip verbose (x :: $(return ty)) |]
         return ("Roundtrips (" ++ pprint ty ++ ")", expr)
 
-assertRoundtrip :: (Eq a, Show a, Store a, Monad m, Typeable a) => Bool -> a 
-> m ()
+assertRoundtrip :: (Eq a, Show a, Store a, Fail.MonadFail m, Typeable a) => 
Bool -> a -> m ()
 assertRoundtrip verbose x
     | checkRoundtrip verbose x = return ()
     | otherwise = fail $ "Failed to roundtrip "  ++ show (typeOf x)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/store-0.5.1.2/src/Data/Store/Version.hs 
new/store-0.7.1/src/Data/Store/Version.hs
--- old/store-0.5.1.2/src/Data/Store/Version.hs 2019-07-07 04:55:51.000000000 
+0200
+++ new/store-0.7.1/src/Data/Store/Version.hs   2019-11-17 19:14:03.000000000 
+0100
@@ -217,7 +217,7 @@
     goField = do
         s <- get
         case sFieldNames s of
-            [] -> fail "impossible case in getStructureInfo'"
+            [] -> error "impossible case in getStructureInfo'"
             (name:names) -> do
                 getStructureInfo' ignore renames (Proxy :: Proxy b)
                 s' <- get
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/store-0.5.1.2/src/Data/Store.hs 
new/store-0.7.1/src/Data/Store.hs
--- old/store-0.5.1.2/src/Data/Store.hs 2019-07-07 04:55:51.000000000 +0200
+++ new/store-0.7.1/src/Data/Store.hs   2019-11-17 19:14:02.000000000 +0100
@@ -10,6 +10,22 @@
 --
 -- If you need streaming encode / decode of multiple store encoded
 -- messages, take a look at the @store-streaming@ package.
+--
+-- = Gotchas
+--
+-- Store is best used for communication between trusted processes and
+-- local caches.  It can certainly be used for other purposes, but the
+-- builtin set of instances have some gotchas to be aware of:
+--
+-- * Store's builtin instances serialize in a format which depends on
+--   machine endianness.
+--
+-- * Store's builtin instances trust the data when deserializing. For
+--   example, the deserialization of `Vector` will read the vector's
+--   link from the first 8 bytes. It will then allocate enough memory
+--   to store all the elements. Malicious or malformed input could
+--   cause allocation of large amounts of memory.  See
+--   https://github.com/fpco/store/issues/122
 module Data.Store
     (
     -- * Encoding and decoding strict ByteStrings.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/store-0.5.1.2/src/System/IO/ByteBuffer.hs 
new/store-0.7.1/src/System/IO/ByteBuffer.hs
--- old/store-0.5.1.2/src/System/IO/ByteBuffer.hs       2019-07-07 
04:55:51.000000000 +0200
+++ new/store-0.7.1/src/System/IO/ByteBuffer.hs 2019-11-17 19:14:03.000000000 
+0100
@@ -43,6 +43,7 @@
 import           Control.Applicative
 import           Control.Exception (SomeException, throwIO)
 import           Control.Exception.Lifted (Exception, bracket, catch)
+import qualified Control.Monad.Fail as Fail
 import           Control.Monad.IO.Class (MonadIO, liftIO)
 import           Control.Monad.Trans.Control (MonadBaseControl)
 import           Data.ByteString (ByteString)
@@ -280,7 +281,7 @@
 -- such the ones created by the @network@ package.
 --
 -- Returns how many bytes could be read non-blockingly.
-fillFromFd :: MonadIO m => ByteBuffer -> Fd -> Int -> m Int
+fillFromFd :: (MonadIO m, Fail.MonadFail m) => ByteBuffer -> Fd -> Int -> m Int
 fillFromFd bb sock maxBytes = if maxBytes < 0
     then fail ("fillFromFd: negative argument (" ++ show maxBytes ++ ")")
     else bbHandler "fillFromFd" bb go
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/store-0.5.1.2/store.cabal new/store-0.7.1/store.cabal
--- old/store-0.5.1.2/store.cabal       2019-07-07 05:33:20.000000000 +0200
+++ new/store-0.7.1/store.cabal 2019-11-17 20:27:26.000000000 +0100
@@ -4,15 +4,15 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 432401eddc329fdeadc94cd6a50d7641756074a9537ef2306c874619e22c33af
+-- hash: d5e9f1dc824c80abb31d16173dc0f03262e5125f67a92e81d0c5da4796ed8a26
 
 name:           store
-version:        0.5.1.2
+version:        0.7.1
 synopsis:       Fast binary serialization
 category:       Serialization, Data
 homepage:       https://github.com/fpco/store#readme
 bug-reports:    https://github.com/fpco/store/issues
-maintainer:     Michael Sloan <[email protected]>
+maintainer:     Michael Sloan <[email protected]>
 copyright:      2016 FP Complete
 license:        MIT
 license-file:   LICENSE
@@ -29,6 +29,11 @@
   manual: True
   default: False
 
+flag integer-simple
+  description: Use the [simple integer 
library](http://hackage.haskell.org/package/integer-simple) instead of 
[integer-gmp](http://hackage.haskell.org/package/integer-gmp)
+  manual: False
+  default: False
+
 flag small-bench
   manual: True
   default: False
@@ -61,13 +66,13 @@
     , cryptohash >=0.11.6
     , deepseq >=1.3.0.2
     , directory >=1.2
+    , fail >=4.9
     , filepath >=1.3
     , free >=4.11
     , ghc-prim >=0.3.1.0
     , hashable >=1.2.3.1
     , hspec >=2.1.2
     , hspec-smallcheck >=0.3.0
-    , integer-gmp >=0.5.1.0
     , lifted-base >=0.2.3.3
     , monad-control >=0.3.3.0
     , mono-traversable >=0.7.0
@@ -83,7 +88,7 @@
     , text >=1.2.0.4
     , th-lift >=0.7.1
     , th-lift-instances >=0.1.4
-    , th-orphans >=0.12.2
+    , th-orphans >=0.13.2
     , th-reify-many >=0.1.6
     , th-utilities >=0.2
     , time >=1.4.2
@@ -91,6 +96,13 @@
     , unordered-containers >=0.2.5.1
     , vector >=0.10.12.3
     , void >=0.5.11
+  if flag(integer-simple)
+    build-depends:
+        integer-simple >=0.1.1.1
+  else
+    cpp-options: -DINTEGER_GMP
+    build-depends:
+        integer-gmp >=0.5.1.0
   default-language: Haskell2010
 
 test-suite store-test
@@ -118,13 +130,13 @@
     , cryptohash >=0.11.6
     , deepseq >=1.3.0.2
     , directory >=1.2
+    , fail >=4.9
     , filepath >=1.3
     , free >=4.11
     , ghc-prim >=0.3.1.0
     , hashable >=1.2.3.1
     , hspec >=2.1.2
     , hspec-smallcheck >=0.3.0
-    , integer-gmp >=0.5.1.0
     , lifted-base >=0.2.3.3
     , monad-control >=0.3.3.0
     , mono-traversable >=0.7.0
@@ -141,7 +153,7 @@
     , text >=1.2.0.4
     , th-lift >=0.7.1
     , th-lift-instances >=0.1.4
-    , th-orphans >=0.12.2
+    , th-orphans >=0.13.2
     , th-reify-many >=0.1.6
     , th-utilities >=0.2
     , time >=1.4.2
@@ -149,6 +161,13 @@
     , unordered-containers >=0.2.5.1
     , vector >=0.10.12.3
     , void >=0.5.11
+  if flag(integer-simple)
+    build-depends:
+        integer-simple >=0.1.1.1
+  else
+    cpp-options: -DINTEGER_GMP
+    build-depends:
+        integer-gmp >=0.5.1.0
   default-language: Haskell2010
 
 benchmark store-bench
@@ -173,13 +192,13 @@
     , cryptohash >=0.11.6
     , deepseq >=1.3.0.2
     , directory >=1.2
+    , fail >=4.9
     , filepath >=1.3
     , free >=4.11
     , ghc-prim >=0.3.1.0
     , hashable >=1.2.3.1
     , hspec >=2.1.2
     , hspec-smallcheck >=0.3.0
-    , integer-gmp >=0.5.1.0
     , lifted-base >=0.2.3.3
     , monad-control >=0.3.3.0
     , mono-traversable >=0.7.0
@@ -196,7 +215,7 @@
     , text >=1.2.0.4
     , th-lift >=0.7.1
     , th-lift-instances >=0.1.4
-    , th-orphans >=0.12.2
+    , th-orphans >=0.13.2
     , th-reify-many >=0.1.6
     , th-utilities >=0.2
     , time >=1.4.2
@@ -204,6 +223,13 @@
     , unordered-containers >=0.2.5.1
     , vector >=0.10.12.3
     , void >=0.5.11
+  if flag(integer-simple)
+    build-depends:
+        integer-simple >=0.1.1.1
+  else
+    cpp-options: -DINTEGER_GMP
+    build-depends:
+        integer-gmp >=0.5.1.0
   if flag(comparison-bench)
     cpp-options: -DCOMPARISON_BENCH
     build-depends:
@@ -237,13 +263,13 @@
     , cryptohash >=0.11.6
     , deepseq >=1.3.0.2
     , directory >=1.2
+    , fail >=4.9
     , filepath >=1.3
     , free >=4.11
     , ghc-prim >=0.3.1.0
     , hashable >=1.2.3.1
     , hspec >=2.1.2
     , hspec-smallcheck >=0.3.0
-    , integer-gmp >=0.5.1.0
     , lifted-base >=0.2.3.3
     , monad-control >=0.3.3.0
     , mono-traversable >=0.7.0
@@ -260,7 +286,7 @@
     , text >=1.2.0.4
     , th-lift >=0.7.1
     , th-lift-instances >=0.1.4
-    , th-orphans >=0.12.2
+    , th-orphans >=0.13.2
     , th-reify-many >=0.1.6
     , th-utilities >=0.2
     , time >=1.4.2
@@ -270,4 +296,11 @@
     , vector-binary-instances
     , void >=0.5.11
     , weigh
+  if flag(integer-simple)
+    build-depends:
+        integer-simple >=0.1.1.1
+  else
+    cpp-options: -DINTEGER_GMP
+    build-depends:
+        integer-gmp >=0.5.1.0
   default-language: Haskell2010
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/store-0.5.1.2/test/Data/StoreSpec.hs 
new/store-0.7.1/test/Data/StoreSpec.hs
--- old/store-0.5.1.2/test/Data/StoreSpec.hs    2019-07-07 04:55:51.000000000 
+0200
+++ new/store-0.7.1/test/Data/StoreSpec.hs      2019-11-17 20:28:37.000000000 
+0100
@@ -16,6 +16,7 @@
 import           Control.Applicative
 import           Control.Exception (evaluate)
 import           Control.Monad (unless)
+import           Control.Monad.Fail (MonadFail)
 import qualified Data.Array.Unboxed as A
 import qualified Data.ByteString as BS
 import qualified Data.ByteString.Lazy as LBS
@@ -31,7 +32,9 @@
 import qualified Data.List.NonEmpty as NE
 import           Data.Map (Map)
 import           Data.Monoid
+#if !MIN_VERSION_primitive(0,7,0)
 import           Data.Primitive.Types (Addr)
+#endif
 import           Data.Proxy (Proxy(..))
 import           Data.Sequence (Seq)
 import           Data.Sequences (fromList)
@@ -233,11 +236,6 @@
 instance Monad m => Serial m Void where
     series = generate (\_ -> [])
 
-#if !MIN_VERSION_template_haskell(2,11,0)
-deriving instance Show NameFlavour
-deriving instance Show NameSpace
-#endif
-
 -- We define our own Serial instance for 'Ratio' because of 
<https://github.com/feuerbach/smallcheck/pull/34>
 
 newtype SerialRatio a = SerialRatio (Ratio a)
@@ -284,9 +282,11 @@
 spec = do
     describe "Store on all monomorphic instances"
         $(do insts <- getAllInstanceTypes1 ''Store
-             omitTys0 <- sequence
-                 [ [t| Addr |]
-                 , [t| CUIntPtr |]
+             omitTys0 <- sequence $
+#if !MIN_VERSION_primitive(0,7,0)
+                 [t| Addr |] :
+#endif
+                 [ [t| CUIntPtr |]
                  , [t| CIntPtr |]
                  , [t| IntPtr |]
                  , [t| WordPtr |]
@@ -303,7 +303,7 @@
                  filtered = filter f insts
              smallcheckManyStore verbose 2 $ map return filtered)
     it "Store on non-numeric Float/Double values" $ do
-        let testNonNumeric :: forall a m. (RealFloat a, Eq a, Show a, Typeable 
a, Store a, Monad m) => Proxy a -> m ()
+        let testNonNumeric :: forall a m. (RealFloat a, Eq a, Show a, Typeable 
a, Store a, Monad m, MonadFail m) => Proxy a -> m ()
             testNonNumeric _proxy = do
                 assertRoundtrip verbose ((1/0) :: a)
                 assertRoundtrip verbose ((-1/0) :: a)


Reply via email to