packages feed

data-msgpack 0.0.4 → 0.0.5

raw patch · 7 files changed

+74/−29 lines, 7 filesdep +criteriondep +voidPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: criterion, void

API changes (from Hackage documentation)

- Data.MessagePack.Class: instance Data.MessagePack.Class.MessagePack a => Data.MessagePack.Class.MessagePack (GHC.Base.Maybe a)
+ Data.MessagePack.Generic: instance Data.MessagePack.Class.GMessagePack GHC.Generics.V1
+ Data.MessagePack.Instances: instance (Data.MessagePack.Class.MessagePack a, Data.MessagePack.Class.MessagePack b) => Data.MessagePack.Class.MessagePack (Data.Either.Either a b)
+ Data.MessagePack.Instances: instance Data.MessagePack.Class.MessagePack Data.Void.Void
+ Data.MessagePack.Instances: instance Data.MessagePack.Class.MessagePack a => Data.MessagePack.Class.MessagePack (GHC.Base.Maybe a)

Files

+ bench/benchmark.hs view
@@ -0,0 +1,14 @@+module Main (main) where++import           Criterion.Main            (bgroup, defaultMain)+import           Test.QuickCheck.Random    (mkQCGen)++import qualified Data.MessagePack.IntBench+import qualified Data.MessagePackBench+++main :: IO ()+main = defaultMain+  [ bgroup "Data.MessagePack" Data.MessagePackBench.suite+  , bgroup "Data.MessagePack.Int" Data.MessagePack.IntBench.suite+  ]
data-msgpack.cabal view
@@ -1,5 +1,5 @@ name:                 data-msgpack-version:              0.0.4+version:              0.0.5 synopsis:             A Haskell implementation of MessagePack homepage:             http://msgpack.org/ license:              BSD3@@ -26,12 +26,16 @@   default-language: Haskell2010   hs-source-dirs:       src+  ghc-options:+      -Wall+      -fno-warn-unused-imports   exposed-modules:       Data.MessagePack       Data.MessagePack.Assoc       Data.MessagePack.Class       Data.MessagePack.Generic       Data.MessagePack.Get+      Data.MessagePack.Instances       Data.MessagePack.Object       Data.MessagePack.Put       Data.MessagePack.Result@@ -46,6 +50,7 @@     , hashable     , text     , unordered-containers+    , void  executable msgpack-parser   default-language: Haskell2010@@ -66,6 +71,9 @@   default-language: Haskell2010   hs-source-dirs: test   main-is: testsuite.hs+  ghc-options:+      -Wall+      -fno-warn-unused-imports   build-depends:       base < 5     , QuickCheck@@ -76,3 +84,20 @@     , hspec     , text     , unordered-containers+    , void++benchmark benchmark+  type: exitcode-stdio-1.0+  default-language: Haskell2010+  hs-source-dirs: bench+  main-is: benchmark.hs+  ghc-options:+      -Wall+      -fno-warn-unused-imports+  build-depends:+      base < 5+    , QuickCheck+    , bytestring+    , criterion+    , data-msgpack+    , deepseq
src/Data/MessagePack.hs view
@@ -23,17 +23,18 @@   , module X   ) where -import           Control.Applicative      (Applicative)-import           Control.Monad            ((>=>))-import           Data.Binary              (decodeOrFail, encode)-import qualified Data.ByteString.Lazy     as L+import           Control.Applicative        (Applicative)+import           Control.Monad              ((>=>))+import           Data.Binary                (decodeOrFail, encode)+import qualified Data.ByteString.Lazy       as L -import           Data.MessagePack.Assoc   as X-import           Data.MessagePack.Class   as X-import           Data.MessagePack.Generic ()-import           Data.MessagePack.Get     as X-import           Data.MessagePack.Object  as X-import           Data.MessagePack.Put     as X+import           Data.MessagePack.Assoc     as X+import           Data.MessagePack.Class     as X+import           Data.MessagePack.Generic   ()+import           Data.MessagePack.Get       as X+import           Data.MessagePack.Instances as X+import           Data.MessagePack.Object    as X+import           Data.MessagePack.Put       as X   -- | Pack a Haskell value to MessagePack binary.
src/Data/MessagePack/Class.hs view
@@ -140,18 +140,6 @@   fromObject obj = T.unpack <$> fromObject obj  --- Instances for nullable types.--instance MessagePack a => MessagePack (Maybe a) where-  toObject = \case-    Just a  -> toObject a-    Nothing -> ObjectNil--  fromObject = \case-    ObjectNil -> return Nothing-    obj       -> Just <$> fromObject obj-- -- Instances for binary and UTF-8 encoded string.  instance MessagePack S.ByteString where
src/Data/MessagePack/Generic.hs view
@@ -18,6 +18,9 @@ import           Data.MessagePack.Class import           Data.MessagePack.Object (Object (..)) +instance GMessagePack V1 where+  gToObject = undefined+  gFromObject = fail "can't instantiate void type"  instance GMessagePack U1 where   gToObject U1 = ObjectNil
+ src/Data/MessagePack/Instances.hs view
@@ -0,0 +1,14 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+module Data.MessagePack.Instances () where++import           Data.Void                (Void)++import           Data.MessagePack.Class   (MessagePack)+import           Data.MessagePack.Generic ()+++instance MessagePack a => MessagePack (Maybe a)++instance (MessagePack a, MessagePack b) => MessagePack (Either a b)++instance MessagePack Void
src/Data/MessagePack/Put.hs view
@@ -48,21 +48,21 @@  putInt :: Int64 -> Put putInt n-  | -32 <= n && n <= 127 =+  | -0x20 <= n && n < 0x80 =                      putWord8     (fromIntegral n)-  | 0 <= n && n < 0x100 =+  | 0     <= n && n < 0x100 =     putWord8 0xCC >> putWord8     (fromIntegral n)-  | 0 <= n && n < 0x10000 =+  | 0     <= n && n < 0x10000 =     putWord8 0xCD >> putWord16be  (fromIntegral n)-  | 0 <= n && n < 0x100000000 =+  | 0     <= n && n < 0x100000000 =     putWord8 0xCE >> putWord32be  (fromIntegral n)-  | 0 <= n =+  | 0     <= n =     putWord8 0xCF >> putWord64be  (fromIntegral n)   | -0x80 <= n =     putWord8 0xD0 >> putWord8     (fromIntegral n)   | -0x8000 <= n =     putWord8 0xD1 >> putWord16be  (fromIntegral n)-  | -0x80000000  <= n =+  | -0x80000000 <= n =     putWord8 0xD2 >> putWord32be  (fromIntegral n)   | otherwise =     putWord8 0xD3 >> putWord64be (fromIntegral n)