commit ghc-store for openSUSE:Factory
Hello community,
here is the log from the commit of package ghc-store for openSUSE:Factory checked in at 2019-04-28 20:13:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-store (Old)
and /work/SRC/openSUSE:Factory/.ghc-store.new.5536 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-store"
Sun Apr 28 20:13:48 2019 rev:7 rq:698561 version:0.5.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-store/ghc-store.changes 2018-11-09 07:53:01.739806844 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-store.new.5536/ghc-store.changes 2019-04-28 20:13:51.962403093 +0200
@@ -1,0 +2,10 @@
+Thu Apr 25 02:02:26 UTC 2019 - psimons@suse.com
+
+- Update store to version 0.5.1.0.
+ ## 0.5.1.0
+
+ * Update to TH to support sum types with more than 62 constructors.
+
+ * Uses TH to derive Either instance, so that it can sometimes have ConstSize #119.
+
+-------------------------------------------------------------------
Old:
----
store-0.5.0.1.tar.gz
New:
----
store-0.5.1.0.tar.gz
store.cabal
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-store.spec ++++++
--- /var/tmp/diff_new_pack.aPkMsk/_old 2019-04-28 20:13:52.526402743 +0200
+++ /var/tmp/diff_new_pack.aPkMsk/_new 2019-04-28 20:13:52.526402743 +0200
@@ -1,7 +1,7 @@
#
# spec file for package ghc-store
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 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,13 +19,14 @@
%global pkg_name store
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 0.5.0.1
+Version: 0.5.1.0
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
+Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/1.cabal#/%{pkg_name}.cabal
BuildRequires: ghc-Cabal-devel
BuildRequires: ghc-array-devel
BuildRequires: ghc-async-devel
@@ -68,12 +69,7 @@
BuildRequires: ghc-vector-devel
BuildRequires: ghc-void-devel
%if %{with tests}
-BuildRequires: ghc-cereal-devel
-BuildRequires: ghc-cereal-vector-devel
BuildRequires: ghc-clock-devel
-BuildRequires: ghc-criterion-devel
-BuildRequires: ghc-vector-binary-instances-devel
-BuildRequires: ghc-weigh-devel
%endif
%description
@@ -92,6 +88,7 @@
%prep
%setup -q -n %{pkg_name}-%{version}
+cp -p %{SOURCE1} %{pkg_name}.cabal
%build
%ghc_lib_build
++++++ store-0.5.0.1.tar.gz -> store-0.5.1.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/store-0.5.0.1/ChangeLog.md new/store-0.5.1.0/ChangeLog.md
--- old/store-0.5.0.1/ChangeLog.md 2018-10-21 09:35:42.000000000 +0200
+++ new/store-0.5.1.0/ChangeLog.md 2019-04-24 21:03:02.000000000 +0200
@@ -1,5 +1,11 @@
# ChangeLog
+## 0.5.1.0
+
+* Update to TH to support sum types with more than 62 constructors.
+
+* Uses TH to derive Either instance, so that it can sometimes have ConstSize #119.
+
## 0.5.0.1
* Updates to test-suite enabling `store` to build with newer dependencies.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/store-0.5.0.1/src/Data/Store/Internal.hs new/store-0.5.1.0/src/Data/Store/Internal.hs
--- old/store-0.5.0.1/src/Data/Store/Internal.hs 2018-06-01 23:30:19.000000000 +0200
+++ new/store-0.5.1.0/src/Data/Store/Internal.hs 2019-04-24 21:00:08.000000000 +0200
@@ -688,7 +688,6 @@
instance Store a => Store (First a)
instance Store a => Store (Last a)
instance Store a => Store (Maybe a)
-instance (Store a, Store b) => Store (Either a b)
-- FIXME: have TH deriving handle unboxed fields?
@@ -702,6 +701,7 @@
instance Deriving (Store Any)
instance Deriving (Store Void)
instance Deriving (Store Bool)
+ instance (Store a, Store b) => Deriving (Store (Either a b))
|]))
-- TODO: higher arities? Limited now by Generics instances for tuples
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/store-0.5.0.1/src/Data/Store/TH/Internal.hs new/store-0.5.1.0/src/Data/Store/TH/Internal.hs
--- old/store-0.5.0.1/src/Data/Store/TH/Internal.hs 2017-11-22 16:23:16.000000000 +0100
+++ new/store-0.5.1.0/src/Data/Store/TH/Internal.hs 2019-04-24 20:58:44.000000000 +0200
@@ -103,9 +103,16 @@
sizeNames = zipWith (\_ -> mkName . ("sz" ++) . show) cons ints
tagName = mkName "tag"
valName = mkName "val"
- sizeExpr =
- caseE (tupE (concatMap (map sizeAtType . snd) cons))
- (if null sizeNames then [matchConstSize] else [matchConstSize, matchVarSize])
+ sizeExpr
+ -- Maximum size of GHC tuples
+ | length cons <= 62 =
+ caseE (tupE (concatMap (map sizeAtType . snd) cons))
+ (case cons of
+ -- Avoid overlapping matches when the case expression is ()
+ [] -> [matchConstSize]
+ [c] | null (snd c) -> [matchConstSize]
+ _ -> [matchConstSize, matchVarSize])
+ | otherwise = varSizeExpr
where
sizeAtType :: (Name, Type) -> ExpQ
sizeAtType (_, ty) = [| size :: Size $(return ty) |]
@@ -139,9 +146,11 @@
matchVarSize :: MatchQ
matchVarSize = do
match (tupP (map (\(n, _) -> varP n) (concatMap snd cons)))
- (normalB [| VarSize $ \x -> tagSize +
- $(caseE [| x |] (map matchVar cons)) |])
+ (normalB varSizeExpr)
[]
+ varSizeExpr :: ExpQ
+ varSizeExpr =
+ [| VarSize $ \x -> tagSize + $(caseE [| x |] (map matchVar cons)) |]
matchVar :: (Name, [(Name, Type)]) -> MatchQ
matchVar (cname, []) =
match (conP cname []) (normalB [| 0 |]) []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/store-0.5.0.1/store.cabal new/store-0.5.1.0/store.cabal
--- old/store-0.5.0.1/store.cabal 2018-10-21 09:52:04.000000000 +0200
+++ new/store-0.5.1.0/store.cabal 2019-04-24 21:05:35.000000000 +0200
@@ -1,13 +1,13 @@
-cabal-version: >= 1.10
+cabal-version: 1.12
--- This file has been generated from package.yaml by hpack version 0.29.0.
+-- This file has been generated from package.yaml by hpack version 0.31.1.
--
-- see: https://github.com/sol/hpack
--
--- hash: cf65d77ec7461cd466e325a485e2ac48b5cbfcf303c243e11f5b8e9674d9057e
+-- hash: 5c038df3338fc7661664ddc082dde9288b48c1153a7680a63b2aed528590535e
name: store
-version: 0.5.0.1
+version: 0.5.1.0
synopsis: Fast binary serialization
category: Serialization, Data
homepage: https://github.com/fpco/store#readme
@@ -151,12 +151,14 @@
, void >=0.5.11
default-language: Haskell2010
-test-suite store-weigh
+benchmark store-bench
type: exitcode-stdio-1.0
- main-is: Allocations.hs
+ main-is: Bench.hs
+ other-modules:
+ Paths_store
hs-source-dirs:
- test
- ghc-options: -Wall -fwarn-tabs -fwarn-incomplete-uni-patterns -fwarn-incomplete-record-updates -O2 -threaded -rtsopts -with-rtsopts=-N -with-rtsopts=-T -O2
+ bench
+ ghc-options: -Wall -fwarn-tabs -fwarn-incomplete-uni-patterns -fwarn-incomplete-record-updates -O2 -threaded -rtsopts -with-rtsopts=-N1 -with-rtsopts=-s -with-rtsopts=-qg
build-depends:
array >=0.5.0.0
, async >=2.0.2
@@ -165,8 +167,6 @@
, base64-bytestring >=0.1.1
, bifunctors >=4.0
, bytestring >=0.10.4.0
- , cereal
- , cereal-vector
, containers >=0.5.5.1
, contravariant >=1.3
, criterion
@@ -203,19 +203,24 @@
, transformers >=0.3.0.0
, unordered-containers >=0.2.5.1
, vector >=0.10.12.3
- , vector-binary-instances
, void >=0.5.11
- , weigh
+ if flag(comparison-bench)
+ cpp-options: -DCOMPARISON_BENCH
+ build-depends:
+ binary
+ , cereal
+ , cereal-vector
+ , vector-binary-instances
+ if flag(small-bench)
+ cpp-options: -DSMALL_BENCH
default-language: Haskell2010
-benchmark store-bench
+benchmark store-weigh
type: exitcode-stdio-1.0
- main-is: Bench.hs
- other-modules:
- Paths_store
+ main-is: Allocations.hs
hs-source-dirs:
- bench
- ghc-options: -Wall -fwarn-tabs -fwarn-incomplete-uni-patterns -fwarn-incomplete-record-updates -O2 -threaded -rtsopts -with-rtsopts=-N1 -with-rtsopts=-s -with-rtsopts=-qg
+ test
+ ghc-options: -Wall -fwarn-tabs -fwarn-incomplete-uni-patterns -fwarn-incomplete-record-updates -O2 -threaded -rtsopts -with-rtsopts=-N -with-rtsopts=-T -O2
build-depends:
array >=0.5.0.0
, async >=2.0.2
@@ -224,6 +229,8 @@
, base64-bytestring >=0.1.1
, bifunctors >=4.0
, bytestring >=0.10.4.0
+ , cereal
+ , cereal-vector
, containers >=0.5.5.1
, contravariant >=1.3
, criterion
@@ -260,14 +267,7 @@
, transformers >=0.3.0.0
, unordered-containers >=0.2.5.1
, vector >=0.10.12.3
+ , vector-binary-instances
, void >=0.5.11
- if flag(comparison-bench)
- cpp-options: -DCOMPARISON_BENCH
- build-depends:
- binary
- , cereal
- , cereal-vector
- , vector-binary-instances
- if flag(small-bench)
- cpp-options: -DSMALL_BENCH
+ , weigh
default-language: Haskell2010
++++++ store.cabal ++++++
cabal-version: 1.12
-- This file has been generated from package.yaml by hpack version 0.31.1.
--
-- see: https://github.com/sol/hpack
--
-- hash: 5c038df3338fc7661664ddc082dde9288b48c1153a7680a63b2aed528590535e
name: store
version: 0.5.1.0
x-revision: 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
participants (1)
-
root