massiv-serialise 0.1.0.0 → 1.0.0.0
raw patch · 6 files changed
+39/−28 lines, 6 filesdep ~massivPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: massiv
API changes (from Hackage documentation)
- Massiv.Serialise: instance (Data.Massiv.Core.Index.Internal.Index ix, Codec.Serialise.Class.Serialise ix) => Codec.Serialise.Class.Serialise (Data.Massiv.Core.Index.Internal.Sz ix)
- Massiv.Serialise: instance (Data.Massiv.Core.Index.Internal.Index ix, Codec.Serialise.Class.Serialise ix, Codec.Serialise.Class.Serialise e) => Codec.Serialise.Class.Serialise (Data.Massiv.Core.Common.Array Data.Massiv.Array.Manifest.Boxed.B ix e)
- Massiv.Serialise: instance (Data.Massiv.Core.Index.Internal.Index ix, Control.DeepSeq.NFData e, Codec.Serialise.Class.Serialise ix, Codec.Serialise.Class.Serialise e) => Codec.Serialise.Class.Serialise (Data.Massiv.Core.Common.Array Data.Massiv.Array.Manifest.Boxed.N ix e)
- Massiv.Serialise: instance (Data.Massiv.Core.Index.Internal.Index ix, Data.Primitive.Types.Prim e, Codec.Serialise.Class.Serialise ix, Codec.Serialise.Class.Serialise e) => Codec.Serialise.Class.Serialise (Data.Massiv.Core.Common.Array Data.Massiv.Array.Manifest.Primitive.P ix e)
- Massiv.Serialise: instance (Data.Massiv.Core.Index.Internal.Index ix, Data.Vector.Unboxed.Base.Unbox e, Codec.Serialise.Class.Serialise ix, Codec.Serialise.Class.Serialise e) => Codec.Serialise.Class.Serialise (Data.Massiv.Core.Common.Array Data.Massiv.Array.Manifest.Unboxed.U ix e)
- Massiv.Serialise: instance (Data.Massiv.Core.Index.Internal.Index ix, Foreign.Storable.Storable e, Codec.Serialise.Class.Serialise ix, Codec.Serialise.Class.Serialise e) => Codec.Serialise.Class.Serialise (Data.Massiv.Core.Common.Array Data.Massiv.Array.Manifest.Storable.S ix e)
+ Massiv.Serialise: instance (Data.Massiv.Core.Index.Internal.Index ix, Codec.Serialise.Class.Serialise e) => Codec.Serialise.Class.Serialise (Data.Massiv.Core.Common.Array Data.Massiv.Array.Manifest.Boxed.B ix e)
+ Massiv.Serialise: instance (Data.Massiv.Core.Index.Internal.Index ix, Codec.Serialise.Class.Serialise e) => Codec.Serialise.Class.Serialise (Data.Massiv.Core.Common.Array Data.Massiv.Array.Manifest.Boxed.BL ix e)
+ Massiv.Serialise: instance (Data.Massiv.Core.Index.Internal.Index ix, Control.DeepSeq.NFData e, Codec.Serialise.Class.Serialise e) => Codec.Serialise.Class.Serialise (Data.Massiv.Core.Common.Array Data.Massiv.Array.Manifest.Boxed.BN ix e)
+ Massiv.Serialise: instance (Data.Massiv.Core.Index.Internal.Index ix, Data.Primitive.Types.Prim e, Codec.Serialise.Class.Serialise e) => Codec.Serialise.Class.Serialise (Data.Massiv.Core.Common.Array Data.Massiv.Array.Manifest.Primitive.P ix e)
+ Massiv.Serialise: instance (Data.Massiv.Core.Index.Internal.Index ix, Data.Vector.Unboxed.Base.Unbox e, Codec.Serialise.Class.Serialise e) => Codec.Serialise.Class.Serialise (Data.Massiv.Core.Common.Array Data.Massiv.Array.Manifest.Unboxed.U ix e)
+ Massiv.Serialise: instance (Data.Massiv.Core.Index.Internal.Index ix, Foreign.Storable.Storable e, Codec.Serialise.Class.Serialise e) => Codec.Serialise.Class.Serialise (Data.Massiv.Core.Common.Array Data.Massiv.Array.Manifest.Storable.S ix e)
+ Massiv.Serialise: instance Data.Massiv.Core.Index.Internal.Index ix => Codec.Serialise.Class.Serialise (Data.Massiv.Core.Index.Internal.Sz ix)
- Massiv.Serialise: decodeArray :: forall v r ix e s. (Typeable v, Vector v e, Mutable (ARepr v) ix e, Mutable r ix e, Serialise ix, Serialise (v e)) => Decoder s (Array r ix e)
+ Massiv.Serialise: decodeArray :: forall v r ix e s. (Typeable v, Vector v e, Load r ix e, Load (ARepr v) ix e, Mutable r e, Serialise (v e)) => Decoder s (Array r ix e)
- Massiv.Serialise: encodeArray :: forall v r ix e. (Manifest r ix e, Mutable (ARepr v) ix e, Vector v e, VRepr (ARepr v) ~ v, Serialise ix, Serialise (v e)) => Array r ix e -> Encoding
+ Massiv.Serialise: encodeArray :: forall v r ix e. (Manifest r e, Load r ix e, Mutable (ARepr v) e, Vector v e, VRepr (ARepr v) ~ v, Serialise (v e)) => Array r ix e -> Encoding
Files
- CHANGELOG.md +4/−0
- massiv-serialise.cabal +3/−3
- src/Massiv/Serialise.hs +18/−15
- tests/Main.hs +1/−1
- tests/Spec.hs +1/−1
- tests/Test/Massiv/SerialiseSpec.hs +12/−8
CHANGELOG.md view
@@ -1,5 +1,9 @@ # Changelog for `massiv-serialise` +## 1.0.0.0++* Switch to support `massiv-1.0.0.0`+ ## 0.1.0.0 * Initial release
massiv-serialise.cabal view
@@ -1,5 +1,5 @@ name: massiv-serialise-version: 0.1.0.0+version: 1.0.0.0 synopsis: Compatibility of 'massiv' with 'serialise' description: Orphan 'Serialise' class instances from <https://hackage.haskell.org/package/serialise serialise> package that allow serialization of arrays defined in <https://hackage.haskell.org/package/massiv massiv> package homepage: https://github.com/lehins/massiv-compat@@ -8,7 +8,7 @@ author: Alexey Kuleshevich maintainer: alexey@kuleshevi.ch copyright: 2021 Alexey Kuleshevich-category: Algorithms+category: Array, Data Structures, Serialization build-type: Simple extra-source-files: README.md , CHANGELOG.md@@ -29,7 +29,7 @@ other-modules: build-depends: base >= 4.8 && < 5 , deepseq- , massiv >= 0.5.0.0+ , massiv >= 1.0.0.0 , serialise >= 0.2.0.0 , vector
src/Massiv/Serialise.hs view
@@ -125,7 +125,7 @@ pure acc' Sz ix <$ foldlIndex (\acc i -> acc >>= guardNegativeOverflow i) (pure 1) ix -instance (Index ix, Serialise ix) => Serialise (Sz ix) where+instance Index ix => Serialise (Sz ix) where encode = encodeIx . unSz decode = mkSzFail =<< decodeIx @@ -136,11 +136,11 @@ -- @since 0.1.0 encodeArray :: forall v r ix e.- ( Manifest r ix e- , Mutable (ARepr v) ix e+ ( Manifest r e+ , Load r ix e+ , Mutable (ARepr v) e , VG.Vector v e , VRepr (ARepr v) ~ v- , Serialise ix , Serialise (v e) ) => Array r ix e@@ -155,9 +155,9 @@ forall v r ix e s. ( Typeable v , VG.Vector v e- , Mutable (ARepr v) ix e- , Mutable r ix e- , Serialise ix+ , Load r ix e+ , Load (ARepr v) ix e+ , Mutable r e , Serialise (v e) ) => Decoder s (Array r ix e)@@ -165,26 +165,29 @@ comp <- decode sz <- decode vector :: v e <- decode- -- setComp is to workaround a minor bug for boxed arrays in massiv < 0.6- either (Fail.fail . show) (pure . setComp comp) $ fromVectorM comp sz vector+ either (Fail.fail . show) pure $ fromVectorM comp sz vector -instance (Index ix, Serialise ix, Serialise e) => Serialise (Array B ix e) where+instance (Index ix, Serialise e) => Serialise (Array BL ix e) where encode = encodeArray @V.Vector decode = decodeArray @V.Vector -instance (Index ix, NFData e, Serialise ix, Serialise e) => Serialise (Array N ix e) where+instance (Index ix, Serialise e) => Serialise (Array B ix e) where+ encode = encode . toLazyArray+ decode = evalLazyArray <$> decode++instance (Index ix, NFData e, Serialise e) => Serialise (Array BN ix e) where encode = encode . unwrapNormalForm- decode = evalNormalForm <$> decode+ decode = forceLazyArray <$> decode -instance (Index ix, Storable e, Serialise ix, Serialise e) => Serialise (Array S ix e) where+instance (Index ix, Storable e, Serialise e) => Serialise (Array S ix e) where encode = encodeArray @VS.Vector decode = decodeArray @VS.Vector -instance (Index ix, Unbox e, Serialise ix, Serialise e) => Serialise (Array U ix e) where+instance (Index ix, Unbox e, Serialise e) => Serialise (Array U ix e) where encode = encodeArray @VU.Vector decode = decodeArray @VU.Vector -instance (Index ix, Prim e, Serialise ix, Serialise e) => Serialise (Array P ix e) where+instance (Index ix, Prim e, Serialise e) => Serialise (Array P ix e) where encode = encodeArray @VP.Vector decode = decodeArray @VP.Vector
tests/Main.hs view
@@ -1,6 +1,6 @@ module Main where -import Spec+import Spec (spec) import System.IO (BufferMode (LineBuffering), hSetBuffering, hSetEncoding, stdout, utf8) import Test.Hspec
tests/Spec.hs view
@@ -1,1 +1,1 @@-{-# OPTIONS_GHC -F -pgmF hspec-discover -optF --no-main #-}+{-# OPTIONS_GHC -F -pgmF hspec-discover -optF --module-name=Spec #-}
tests/Test/Massiv/SerialiseSpec.hs view
@@ -32,10 +32,8 @@ forall r ix e. ( Eq (Array r ix e) , Show (Array r ix e)- , Typeable ix , Typeable e , Arbitrary ix- , Construct r ix e , Load r ix e , Arbitrary e , Serialise (Array r ix e)@@ -104,9 +102,15 @@ roundtripArraySpec @B @Ix3 @Integer roundtripArraySpec @B @Ix4 @Integer roundtripArraySpec @B @Ix5 @Integer- describe "N" $ do- roundtripArraySpec @N @Ix1 @Integer- roundtripArraySpec @N @Ix2 @Integer- roundtripArraySpec @N @Ix3 @Integer- roundtripArraySpec @N @Ix4 @Integer- roundtripArraySpec @N @Ix5 @Integer+ describe "BN" $ do+ roundtripArraySpec @BN @Ix1 @Integer+ roundtripArraySpec @BN @Ix2 @Integer+ roundtripArraySpec @BN @Ix3 @Integer+ roundtripArraySpec @BN @Ix4 @Integer+ roundtripArraySpec @BN @Ix5 @Integer+ describe "BL" $ do+ roundtripArraySpec @BL @Ix1 @Integer+ roundtripArraySpec @BL @Ix2 @Integer+ roundtripArraySpec @BL @Ix3 @Integer+ roundtripArraySpec @BL @Ix4 @Integer+ roundtripArraySpec @BL @Ix5 @Integer