riak 1.1.2.4 → 1.1.2.5
raw patch · 10 files changed
+29/−9 lines, 10 filesdep ~aesondep ~exceptionsPVP: minor bump suggested
API additions: PVP suggests at least a minor version bump
Dependency ranges changed: aeson, exceptions
API changes (from Hackage documentation)
+ Network.Riak.CRDT.Ops: instance Data.Semigroup.Semigroup Network.Riak.CRDT.Ops.SetOpsComb
+ Network.Riak.CRDT.Types: instance Data.Semigroup.Semigroup Network.Riak.CRDT.Types.CounterOp
+ Network.Riak.JSON: instance Data.Semigroup.Semigroup a => Data.Semigroup.Semigroup (Network.Riak.JSON.JSON a)
Files
- Changes.md +4/−0
- riak.cabal +3/−3
- src/Network/Riak/CRDT.hs +3/−0
- src/Network/Riak/CRDT/Ops.hs +4/−1
- src/Network/Riak/CRDT/Types.hs +3/−0
- src/Network/Riak/Connection/NoPush.hsc +4/−3
- src/Network/Riak/JSON.hs +2/−1
- src/Network/Riak/Request.hs +2/−0
- src/Network/Riak/Resolvable/Internal.hs +2/−1
- tests/Test.hs +2/−0
Changes.md view
@@ -1,3 +1,7 @@+* 1.1.2.5+ - Bump aeson and exceptions upper bounds.+* 1.1.2.4+ - Bump async upper bounds. * 1.1.2.2 - Fix for GHC 8.2.2 support * 1.1.2.1
riak.cabal view
@@ -1,5 +1,5 @@ name: riak-version: 1.1.2.4+version: 1.1.2.5 synopsis: A Haskell client for the Riak decentralized data store description: A Haskell client library for the Riak decentralized data@@ -101,7 +101,7 @@ Network.Riak.Tag build-depends:- aeson >= 0.8 && < 1.3,+ aeson >= 0.8 && < 1.4, async >= 2.0.0.0 && < 2.3, attoparsec >= 0.12.1.6 && < 0.14, base >= 3 && < 5,@@ -113,7 +113,7 @@ data-default-class >= 0.0.1, deepseq >= 1.3, enclosed-exceptions >= 1.0.1.1 && <= 1.1,- exceptions >= 0.8.0.2 && <= 0.9,+ exceptions >= 0.8.0.2 && < 0.11, hashable >= 1.2.3, transformers >= 0.3 && < 0.6, transformers-base == 0.4.*,
src/Network/Riak/CRDT.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {- | module: Network.Riak.CRDT copyright: (c) 2016 Sentenai author: Antonio Nikishaev <me@lelf.lu>@@ -43,7 +44,9 @@ import Data.Default.Class import qualified Data.Map as M import Data.Proxy+#if __GLASGOW_HASKELL__ < 804 import Data.Semigroup+#endif import qualified Data.Set as S import Network.Riak.CRDT.Ops import Network.Riak.CRDT.Riak
src/Network/Riak/CRDT/Ops.hs view
@@ -22,7 +22,7 @@ import qualified Network.Riak.Protocol.MapUpdate.FlagOp as PBFlag import Data.ByteString.Lazy (ByteString)-import Data.Monoid+import Data.Semigroup (Semigroup((<>))) import qualified Data.Sequence as Seq import qualified Data.Set as S import Network.Riak.CRDT.Types@@ -42,6 +42,9 @@ data SetOpsComb = SetOpsComb { setAdds :: S.Set ByteString, setRemoves :: S.Set ByteString } deriving (Show)++instance Semigroup SetOpsComb where+ (SetOpsComb a b) <> (SetOpsComb x y) = SetOpsComb (a<>x) (b<>y) instance Monoid SetOpsComb where mempty = SetOpsComb mempty mempty
src/Network/Riak/CRDT/Types.hs view
@@ -278,6 +278,9 @@ -- >>> CounterInc 1 data CounterOp = CounterInc !Count deriving (Eq,Show) +instance Semigroup CounterOp where+ CounterInc x <> CounterInc y = CounterInc . getSum $ Sum x <> Sum y+ instance Monoid CounterOp where mempty = CounterInc 0 CounterInc x `mappend` CounterInc y = CounterInc . getSum $ Sum x <> Sum y
src/Network/Riak/Connection/NoPush.hsc view
@@ -21,7 +21,7 @@ import Foreign.Marshal.Utils (with) import Foreign.Ptr (Ptr) import Foreign.Storable (sizeOf)-import Network.Socket (Socket(..))+import Network.Socket (Socket(..), fdSocket) noPush :: CInt #if defined(TCP_NOPUSH)@@ -37,11 +37,12 @@ setNoPush :: Socket -> Bool -> IO () setNoPush _ _ | noPush == 0 = return ()-setNoPush (MkSocket fd _ _ _ _) onOff = do+-- setNoPush (MkSocket fd _ _ _ _) onOff = do+setNoPush s onOff = do let v = if onOff then 1 else 0 with v $ \ptr -> throwErrnoIfMinus1_ "setNoPush" $- c_setsockopt fd (#const IPPROTO_TCP) noPush ptr (fromIntegral (sizeOf v))+ c_setsockopt (fdSocket s) (#const IPPROTO_TCP) noPush ptr (fromIntegral (sizeOf v)) foreign import ccall unsafe "setsockopt" c_setsockopt :: CInt -> CInt -> CInt -> Ptr CInt -> CInt -> IO CInt
src/Network/Riak/JSON.hs view
@@ -36,13 +36,14 @@ #if __GLASGOW_HASKELL__ < 710 import Data.Monoid (Monoid) #endif+import Data.Semigroup (Semigroup) import Data.Typeable (Typeable) import Network.Riak.Types.Internal import qualified Network.Riak.Value as V newtype JSON a = J { plain :: a -- ^ Unwrap a 'JSON'-wrapped value.- } deriving (Eq, Ord, Show, Read, Bounded, Typeable, Monoid)+ } deriving (Eq, Ord, Show, Read, Bounded, Typeable, Semigroup, Monoid) -- | Wrap up a value so that it will be encoded and decoded as JSON -- when converted to/from 'Content'.
src/Network/Riak/Request.hs view
@@ -56,7 +56,9 @@ import Control.Applicative ((<$>)) #endif import qualified Data.ByteString.Char8 as B8+#if __GLASGOW_HASKELL__ < 804 import Data.Monoid+#endif import Network.Riak.Protocol.BucketProps (BucketProps) import Network.Riak.Protocol.Content import Network.Riak.Protocol.GetClientIDRequest
src/Network/Riak/Resolvable/Internal.hs view
@@ -45,6 +45,7 @@ #if __GLASGOW_HASKELL__ < 710 import Data.Monoid (Monoid(mappend)) #endif+import Data.Semigroup (Semigroup) import Data.Typeable (Typeable) import Network.Riak.Debug (debugValues) import Network.Riak.Types.Internal hiding (MessageTag(..))@@ -86,7 +87,7 @@ -- | A newtype wrapper that uses the 'mappend' method of a type's -- 'Monoid' instance to perform vector clock conflict resolution. newtype ResolvableMonoid a = RM { unRM :: a }- deriving (Eq, Ord, Read, Show, Typeable, Data, Monoid, FromJSON, ToJSON)+ deriving (Eq, Ord, Read, Show, Typeable, Data, Semigroup, Monoid, FromJSON, ToJSON) instance (Show a, Monoid a) => Resolvable (ResolvableMonoid a) where resolve = mappend
tests/Test.hs view
@@ -15,7 +15,9 @@ import qualified Data.Sequence as Seq import Data.List.NonEmpty (NonEmpty(..)) import Data.Foldable (toList)+#if __GLASGOW_HASKELL__ < 804 import Data.Semigroup+#endif import Data.Text (Text) import Control.Concurrent (threadDelay) import Control.Exception