Hello community, here is the log from the commit of package ghc-store for openSUSE:Factory checked in at 2018-05-30 12:14:08 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-store (Old) and /work/SRC/openSUSE:Factory/.ghc-store.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-store" Wed May 30 12:14:08 2018 rev:3 rq:607891 version:0.4.3.2 Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-store/ghc-store.changes 2017-08-31 20:59:53.438525082 +0200 +++ /work/SRC/openSUSE:Factory/.ghc-store.new/ghc-store.changes 2018-05-30 12:27:19.734231607 +0200 @@ -1,0 +2,6 @@ +Mon May 14 17:02:11 UTC 2018 - psim...@suse.com + +- Update store to version 0.4.3.2. + * Buildable with GHC 8.2 + +------------------------------------------------------------------- Old: ---- store-0.4.3.1.tar.gz New: ---- store-0.4.3.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-store.spec ++++++ --- /var/tmp/diff_new_pack.BJtSY2/_old 2018-05-30 12:27:20.758196047 +0200 +++ /var/tmp/diff_new_pack.BJtSY2/_new 2018-05-30 12:27:20.762195909 +0200 @@ -1,7 +1,7 @@ # # spec file for package ghc-store # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,12 +19,12 @@ %global pkg_name store %bcond_with tests Name: ghc-%{pkg_name} -Version: 0.4.3.1 +Version: 0.4.3.2 Release: 0 Summary: Fast binary serialization License: MIT -Group: Development/Languages/Other -Url: https://hackage.haskell.org/package/%{pkg_name} +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 BuildRequires: ghc-array-devel @@ -68,7 +68,6 @@ BuildRequires: ghc-unordered-containers-devel BuildRequires: ghc-vector-devel BuildRequires: ghc-void-devel -BuildRoot: %{_tmppath}/%{name}-%{version}-build %if %{with tests} BuildRequires: ghc-cereal-devel BuildRequires: ghc-cereal-vector-devel @@ -82,7 +81,7 @@ %package devel Summary: Haskell %{pkg_name} library development files -Group: Development/Libraries/Other +Group: Development/Libraries/Haskell Requires: %{name} = %{version}-%{release} Requires: ghc-compiler = %{ghc_version} Requires(post): ghc-compiler = %{ghc_version} @@ -110,11 +109,9 @@ %ghc_pkg_recache %files -f %{name}.files -%defattr(-,root,root,-) -%doc LICENSE +%license LICENSE %files devel -f %{name}-devel.files -%defattr(-,root,root,-) %doc ChangeLog.md README.md %changelog ++++++ store-0.4.3.1.tar.gz -> store-0.4.3.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/store-0.4.3.1/ChangeLog.md new/store-0.4.3.2/ChangeLog.md --- old/store-0.4.3.1/ChangeLog.md 2017-05-09 02:43:17.000000000 +0200 +++ new/store-0.4.3.2/ChangeLog.md 2017-08-31 22:39:28.000000000 +0200 @@ -1,5 +1,9 @@ # ChangeLog +## 0.4.3.2 + +* Buildable with GHC 8.2 + ## 0.4.3.1 * Fixed compilation on GHC 7.8 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/store-0.4.3.1/README.md new/store-0.4.3.2/README.md --- old/store-0.4.3.1/README.md 2016-10-20 23:42:50.000000000 +0200 +++ new/store-0.4.3.2/README.md 2017-06-07 10:29:25.000000000 +0200 @@ -15,7 +15,7 @@ the default, so that the most common endianness has no overhead. * Instead of implementing lazy serialization / deserialization involving - multiple input / output buffers, `peek` an `poke` always work with a single + 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 encoding. This simplifies the encoding logic, and allows for highly optimized tight loops. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/store-0.4.3.1/src/Data/Store/Internal.hs new/store-0.4.3.2/src/Data/Store/Internal.hs --- old/store-0.4.3.1/src/Data/Store/Internal.hs 2017-05-06 04:50:14.000000000 +0200 +++ new/store-0.4.3.2/src/Data/Store/Internal.hs 2017-08-31 22:39:28.000000000 +0200 @@ -107,13 +107,14 @@ import qualified Data.Text.Foreign as T import qualified Data.Text.Internal as T import qualified Data.Time as Time -import Data.Typeable.Internal (Typeable) +import Data.Typeable (Typeable) import qualified Data.Vector as V import qualified Data.Vector.Mutable as MV import qualified Data.Vector.Storable as SV import qualified Data.Vector.Storable.Mutable as MSV import Data.Void import Data.Word +import Foreign.C.Types () import Foreign.Ptr (plusPtr, minusPtr) import Foreign.Storable (Storable, sizeOf) import GHC.Generics (Generic) @@ -126,6 +127,7 @@ import Language.Haskell.TH.Instances () import Language.Haskell.TH.ReifyMany import Language.Haskell.TH.Syntax +import Network.Socket (AddrInfo) import Prelude import TH.Derive @@ -707,7 +709,28 @@ $(deriveManyStoreUnboxVector) -$(deriveManyStoreFromStorable (\_ -> True)) +$(deriveManyStoreFromStorable + -- TODO: Figure out why on GHC-8.2.1 this internal datatype is visible + -- in the instances of Storable. Here's a gist of an attempt at + -- debugging the issue: + -- + -- https://gist.github.com/mgsloan/a7c416b961015949d3b5674ce053bbf6 + -- + -- The mysterious thing is why this is happening despite not having a + -- direct import of Data.Text.Encoding. + (\ty -> + case ty of + ConT n | nameModule n == Just "Data.Text.Encoding" + && nameBase n == "DecoderState" -> False + ConT n | nameModule n == Just "Data.Text.Encoding" + && nameBase n == "CodePoint" -> False + ConT n | nameModule n == Just "Network.Socket.Types" + && nameBase n == "In6Addr" -> False + -- AddrInfo's Storable instance is lossy, so avoid having a Store + -- instance for it. + ConT n | n == ''AddrInfo -> False + _ -> True + )) $(deriveManyStorePrimVector) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/store-0.4.3.1/src/Data/Store/TH.hs new/store-0.4.3.2/src/Data/Store/TH.hs --- old/store-0.4.3.1/src/Data/Store/TH.hs 2017-05-09 01:45:00.000000000 +0200 +++ new/store-0.4.3.2/src/Data/Store/TH.hs 2017-08-31 22:42:02.000000000 +0200 @@ -7,17 +7,17 @@ -- do not, then instead use "TH.Derive" like this: -- -- @ --- {-# LANGUAGE TemplateHaskell #-} --- {-# LANGUAGE ScopedTypeVariables #-} +-- \{\-\# LANGUAGE TemplateHaskell \#\-\} +-- \{\-\# LANGUAGE ScopedTypeVariables \#\-\} -- --- import TH.Derive --- import Data.Store +-- import TH.Derive +-- import Data.Store -- --- data Foo a = Foo a | Bar Int +-- data Foo a = Foo a | Bar Int -- --- $($(derive [d| --- instance Store a => Deriving (Store (Foo a)) --- |])) +-- \$($(derive [d| +-- instance Store a => Deriving (Store (Foo a)) +-- |])) -- @ -- -- Note that when used with datatypes that require type variables, the diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/store-0.4.3.1/src/Data/Store/TypeHash/Internal.hs new/store-0.4.3.2/src/Data/Store/TypeHash/Internal.hs --- old/store-0.4.3.1/src/Data/Store/TypeHash/Internal.hs 2017-02-19 00:31:02.000000000 +0100 +++ new/store-0.4.3.2/src/Data/Store/TypeHash/Internal.hs 2017-08-25 09:47:41.000000000 +0200 @@ -78,6 +78,9 @@ go (_, ClassOpI{}) = return (False, []) go (_, VarI{}) = return (False, []) go (_, TyVarI{}) = return (False, []) +#if MIN_VERSION_template_haskell(2,12,0) + go (_, PatSynI{}) = return (False, []) +#endif -- | At compiletime, this yields a hash of the specified datatypes. -- Not only does this cover the datatypes themselves, but also all diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/store-0.4.3.1/src/Data/Store/Version.hs new/store-0.4.3.2/src/Data/Store/Version.hs --- old/store-0.4.3.1/src/Data/Store/Version.hs 2017-03-04 07:37:56.000000000 +0100 +++ new/store-0.4.3.2/src/Data/Store/Version.hs 2017-08-25 07:42:33.000000000 +0200 @@ -44,7 +44,6 @@ import Data.Text.Encoding (encodeUtf8, decodeUtf8, decodeUtf8With) import Data.Text.Encoding.Error (lenientDecode) import qualified Data.Text.IO as T -import Data.Typeable.Internal (TypeRep(..)) import Data.Word (Word32) import GHC.Generics (Generic) import Language.Haskell.TH @@ -230,12 +229,9 @@ return (error "unexpected evaluation") showsQualTypeRep :: M.Map String String -> Int -> TypeRep -> ShowS -#if MIN_VERSION_base(4,8,0) -showsQualTypeRep renames p (TypeRep _ tycon _ tys) = -#else -showsQualTypeRep renames p (TypeRep _ tycon tys) = -#endif - case tys of +showsQualTypeRep renames p tyrep = + let (tycon, tys) = splitTyConApp tyrep + in case tys of [] -> showsQualTyCon renames tycon [x] | tycon == tcList -> showChar '[' . showsQualTypeRep renames 0 x . showChar ']' where diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/store-0.4.3.1/store.cabal new/store-0.4.3.2/store.cabal --- old/store-0.4.3.1/store.cabal 2017-05-09 02:44:12.000000000 +0200 +++ new/store-0.4.3.2/store.cabal 2017-08-31 22:39:28.000000000 +0200 @@ -1,9 +1,9 @@ --- This file has been generated from package.yaml by hpack version 0.17.0. +-- This file has been generated from package.yaml by hpack version 0.18.1. -- -- see: https://github.com/sol/hpack name: store -version: 0.4.3.1 +version: 0.4.3.2 synopsis: Fast binary serialization category: Serialization, Data homepage: https://github.com/fpco/store#readme diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/store-0.4.3.1/test/Data/Store/StreamingSpec.hs new/store-0.4.3.2/test/Data/Store/StreamingSpec.hs --- old/store-0.4.3.1/test/Data/Store/StreamingSpec.hs 2017-01-06 04:12:07.000000000 +0100 +++ new/store-0.4.3.2/test/Data/Store/StreamingSpec.hs 2017-08-25 09:47:51.000000000 +0200 @@ -8,17 +8,15 @@ import Control.Concurrent.Async (race, concurrently) import Control.Concurrent.MVar import Control.Exception (try) -import Control.Monad (void, (<=<), forM_, unless) +import Control.Monad (void, (<=<), forM_) import Control.Monad.Trans.Free (runFreeT, FreeF(..)) import Control.Monad.Trans.Free.Church (fromFT) import Control.Monad.Trans.Resource import qualified Data.ByteString as BS import Data.Conduit ((=$=), ($$)) import qualified Data.Conduit.List as C -import Data.Int import Data.List (unfoldr) import Data.Monoid -import Data.Store.Core (unsafeEncodeWith) import Data.Store.Internal import Data.Store.Streaming import Data.Store.Streaming.Internal @@ -164,8 +162,8 @@ return x decodeTricklingMessageFd :: Integer -> Property IO -decodeTricklingMessageFd x = monadic $ do - let bs = encodeMessage (Message x) +decodeTricklingMessageFd v = monadic $ do + let bs = encodeMessage (Message v) BB.with Nothing $ \bb -> withServer $ \sock1 sock2 -> do let generateChunks :: [Int] -> BS.ByteString -> [BS.ByteString] @@ -175,12 +173,12 @@ then [] else BS.take x bs_ : generateChunks xs (BS.drop x bs_) let chunks = generateChunks [] bs - ((), Message x') <- concurrently + ((), Message v') <- concurrently (forM_ chunks $ \chunk -> do void (send sock1 chunk) threadDelay (10 * 1000)) (decodeMessageFd bb (socketFd sock2)) - return (x == x') + return (v == v') #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/store-0.4.3.1/test/Data/StoreSpec.hs new/store-0.4.3.2/test/Data/StoreSpec.hs --- old/store-0.4.3.1/test/Data/StoreSpec.hs 2017-03-04 08:07:44.000000000 +0100 +++ new/store-0.4.3.2/test/Data/StoreSpec.hs 2017-08-25 09:47:41.000000000 +0200 @@ -1,4 +1,4 @@ -{-# OPTIONS_GHC -fno-warn-orphans #-} +{-# OPTIONS_GHC -fno-warn-orphans -fno-warn-deprecations #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleContexts #-} @@ -10,6 +10,7 @@ {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE CPP #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} +{-# LANGUAGE MonoLocalBinds #-} module Data.StoreSpec where import Control.Applicative @@ -32,7 +33,6 @@ import Data.Monoid import Data.Primitive.Types (Addr) import Data.Proxy (Proxy(..)) -import Data.Ratio (numerator, denominator) import Data.Sequence (Seq) import Data.Sequences (fromList) import Data.Set (Set) @@ -61,6 +61,7 @@ import Language.Haskell.TH import Language.Haskell.TH.ReifyMany import Language.Haskell.TH.Syntax +import Network.Socket import Prelude import System.Posix.Types import Test.Hspec hiding (runIO) @@ -82,12 +83,21 @@ -- Serial instances for (Num a, Bounded a) types. Only really -- appropriate for the use here. +instance Bounded PortNumber where + minBound = 0 + maxBound = 65535 + $(do let ns = [ ''CWchar, ''CUShort, ''CULong, ''CULLong, ''CIntMax , ''CUIntMax, ''CPtrdiff, ''CSChar, ''CShort, ''CUInt, ''CLLong , ''CLong, ''CInt, ''CChar, ''CSsize, ''CPid , ''COff, ''CMode, ''CIno, ''CDev , ''Word8, ''Word16, ''Word32, ''Word64, ''Word , ''Int8, ''Int16, ''Int32, ''Int64 + , ''PortNumber +#if MIN_VERSION_base(4,10,0) + , ''CBool, ''CClockId, ''CKey, ''CId + , ''CBlkSize, ''CFsBlkCnt, ''CFsFilCnt, ''CBlkCnt +#endif ] ++ #ifdef mingw32_HOST_OS [] @@ -279,6 +289,9 @@ , [t| TypeHash |] , [t| Fd |] , [t| NameFlavour |] +#if MIN_VERSION_base(4,10,0) + , [t| CTimer |] +#endif ] let f ty = isMonoType ty && ty `notElem` omitTys smallcheckManyStore verbose 2 . map return . filter f $ insts)