packages feed

primitive-extras 0.6.3 → 0.6.4

raw patch · 3 files changed

+32/−1 lines, 3 filesdep +bytestringPVP ok

version bump matches the API change (PVP)

Dependencies added: bytestring

API changes (from Hackage documentation)

+ PrimitiveExtras.PrimArray: cerealGetAsInMemory :: Prim element => Get Int -> Get (PrimArray element)
+ PrimitiveExtras.PrimArray: cerealPutAsInMemory :: Prim element => Putter Int -> Putter (PrimArray element)
+ PrimitiveExtras.PrimMultiArray: cerealGetAsInMemory :: Prim element => Get Int -> Get (PrimMultiArray element)
+ PrimitiveExtras.PrimMultiArray: cerealPutAsInMemory :: Prim element => Putter Int -> Putter (PrimMultiArray element)

Files

library/PrimitiveExtras/PrimArray.hs view
@@ -8,6 +8,7 @@ import qualified Data.Vector.Primitive as PrimitiveVector import qualified PrimitiveExtras.Folds as Folds import qualified PrimitiveExtras.FoldMs as FoldMs+import qualified Data.ByteString.Short.Internal as ShortByteString   oneHot :: Prim a => Int {-^ Size -} -> Int {-^ Index -} -> a -> PrimArray a@@ -95,12 +96,26 @@     size <- int     replicateM size element +cerealGetAsInMemory :: Prim element => Cereal.Get Int -> Cereal.Get (PrimArray element)+cerealGetAsInMemory int =+  do+    size <- int+    ShortByteString.SBS ba <- Cereal.getShortByteString size+    return (PrimArray ba)+ cerealPut :: Prim element => Cereal.Putter Int -> Cereal.Putter element -> Cereal.Putter (PrimArray element) cerealPut int element primArrayValue =   size <> elements   where     size = int (sizeofPrimArray primArrayValue)     elements = traverse_ element primArrayValue++cerealPutAsInMemory :: Prim element => Cereal.Putter Int -> Cereal.Putter (PrimArray element)+cerealPutAsInMemory int primArrayValue@(PrimArray ba) =+  size <> elements+  where+    size = int (sizeofPrimArray primArrayValue)+    elements = Cereal.putShortByteString (ShortByteString.SBS ba)  {-| Given a size of the array,
library/PrimitiveExtras/PrimMultiArray.hs view
@@ -11,7 +11,9 @@   toIndicesUnfoldM,   toUnfoldAtM,   cerealGet,+  cerealGetAsInMemory,   cerealPut,+  cerealPutAsInMemory,   fold, ) where@@ -90,12 +92,25 @@     size <- int     replicateM size (PrimArray.cerealGet int element) +cerealGetAsInMemory :: Prim element => Cereal.Get Int -> Cereal.Get (PrimMultiArray element)+cerealGetAsInMemory int =+  do+    size <- int+    replicateM size (PrimArray.cerealGetAsInMemory int)+ cerealPut :: Prim element => Cereal.Putter Int -> Cereal.Putter element -> Cereal.Putter (PrimMultiArray element) cerealPut int element (PrimMultiArray outerArrayValue) =   size <> innerArrays   where     size = int (sizeofUnliftedArray outerArrayValue)     innerArrays = UnliftedArray.traverse_ (PrimArray.cerealPut int element) outerArrayValue++cerealPutAsInMemory :: Prim element => Cereal.Putter Int -> Cereal.Putter (PrimMultiArray element)+cerealPutAsInMemory int (PrimMultiArray outerArrayValue) =+  size <> innerArrays+  where+    size = int (sizeofUnliftedArray outerArrayValue)+    innerArrays = UnliftedArray.traverse_ (PrimArray.cerealPutAsInMemory int) outerArrayValue  {-| Having a priorly computed array of inner dimension sizes,
primitive-extras.cabal view
@@ -1,7 +1,7 @@ name:   primitive-extras version:-  0.6.3+  0.6.4 category:   Primitive synopsis:@@ -53,6 +53,7 @@     PrimitiveExtras.FoldMs   build-depends:     base >=4.7 && <5,+    bytestring >=0.10 && <0.11,     cereal >=0.5.5 && <0.6,     deferred-folds >=0.6.5 && <0.7,     focus >=1 && <1.1,