packages feed

hw-prim 0.6.2.3 → 0.6.2.4

raw patch · 6 files changed

+56/−4 lines, 6 filesdep ~criterionPVP: minor bump suggested

API additions: PVP suggests at least a minor version bump

Dependency ranges changed: criterion

API changes (from Hackage documentation)

+ HaskellWorks.Data.Vector.AsVector8: asVector8 :: AsVector8 a => a -> Vector Word8
+ HaskellWorks.Data.Vector.AsVector8: class AsVector8 a
+ HaskellWorks.Data.Vector.AsVector8: instance HaskellWorks.Data.Vector.AsVector8.AsVector8 (Data.Vector.Storable.Vector GHC.Word.Word16)
+ HaskellWorks.Data.Vector.AsVector8: instance HaskellWorks.Data.Vector.AsVector8.AsVector8 (Data.Vector.Storable.Vector GHC.Word.Word32)
+ HaskellWorks.Data.Vector.AsVector8: instance HaskellWorks.Data.Vector.AsVector8.AsVector8 (Data.Vector.Storable.Vector GHC.Word.Word64)
+ HaskellWorks.Data.Vector.AsVector8: instance HaskellWorks.Data.Vector.AsVector8.AsVector8 (Data.Vector.Storable.Vector GHC.Word.Word8)
+ HaskellWorks.Data.Vector.AsVector8: instance HaskellWorks.Data.Vector.AsVector8.AsVector8 Data.ByteString.Internal.ByteString

Files

hw-prim.cabal view
@@ -3,7 +3,7 @@ -- see: https://github.com/sol/hpack  name:           hw-prim-version:        0.6.2.3+version:        0.6.2.4 synopsis:       Primitive functions and data types description:    Primitive functions and data types. category:       Data@@ -73,6 +73,7 @@       HaskellWorks.Data.Unsign       HaskellWorks.Data.Vector.AsVector64       HaskellWorks.Data.Vector.AsVector64s+      HaskellWorks.Data.Vector.AsVector8       HaskellWorks.Data.Vector.BoxedVectorLike       HaskellWorks.Data.Vector.StorableVectorLike   other-modules:@@ -121,9 +122,9 @@     , mmap            >= 0.5        && < 0.6     , vector          >= 0.12       && < 0.13     , transformers    >= 0.4        && < 0.6-    , criterion >= 1.2 && < 1.5+    , criterion     >= 1.2      && < 1.6     , hw-prim-    , mmap >= 0.5 && < 0.6+    , mmap          >= 0.5      && < 0.6   if flag(bounds-checking-enabled)     cpp-options: -DBOUNDS_CHECKING_ENABLED   default-language: Haskell2010
src/HaskellWorks/Data/ByteString.hs view
@@ -16,6 +16,7 @@  instance ToByteString BS.ByteString where   toByteString = id+  {-# INLINE toByteString #-}  instance ToByteString (DVS.Vector Word8) where   toByteString v = case DVS.unsafeToForeignPtr v of@@ -43,3 +44,4 @@   then []   else case BS.splitAt n bs of     (as, zs) -> as : chunkedBy n zs+{-# INLINE chunkedBy #-}
src/HaskellWorks/Data/FromByteString.hs view
@@ -26,6 +26,7 @@           gen cs = case BS.uncons cs of             Just (d, ds) -> Just (d, ds)             Nothing      -> Nothing+  {-# INLINE fromByteString #-}  instance FromByteString (DVS.Vector Word16) where   fromByteString :: BS.ByteString -> DVS.Vector Word16@@ -40,6 +41,7 @@             | otherwise = case BS.uncons cs of                 Just (d, ds) -> gen' (n + 8) (w .|. (fromIntegral d `shiftL` fromIntegral n)) ds                 Nothing      -> Just (w, cs)+  {-# INLINE fromByteString #-}  instance FromByteString (DVS.Vector Word32) where   fromByteString :: BS.ByteString -> DVS.Vector Word32@@ -54,6 +56,7 @@             | otherwise = case BS.uncons cs of                 Just (d, ds) -> gen' (n + 8) (w .|. (fromIntegral d `shiftL` fromIntegral n)) ds                 Nothing      -> Just (w, cs)+  {-# INLINE fromByteString #-}  instance FromByteString (DVS.Vector Word64) where   fromByteString :: BS.ByteString -> DVS.Vector Word64@@ -68,7 +71,9 @@             | otherwise = case BS.uncons cs of                 Just (d, ds) -> gen' (n + 8) (w .|. (fromIntegral d `shiftL` fromIntegral n)) ds                 Nothing      -> Just (w, cs)+  {-# INLINE fromByteString #-}  instance FromByteString (DVSM.MVector s Word8) where   fromByteString bs = case BS.toForeignPtr bs of     (fptr, off, len) -> DVSM.unsafeFromForeignPtr (castForeignPtr fptr) off len+  {-# INLINE fromByteString #-}
src/HaskellWorks/Data/FromForeignRegion.hs view
@@ -26,26 +26,33 @@  instance FromForeignRegion BS.ByteString where   fromForeignRegion (fptr, offset, size) = BSI.fromForeignPtr (castForeignPtr fptr) offset size+  {-# INLINE fromForeignRegion #-}  instance FromForeignRegion (DVS.Vector Word8) where   fromForeignRegion (fptr, offset, size) = DVS.unsafeFromForeignPtr (castForeignPtr fptr) offset size+  {-# INLINE fromForeignRegion #-}  instance FromForeignRegion (DVS.Vector Word16) where   fromForeignRegion (fptr, offset, size) = DVS.unsafeFromForeignPtr (castForeignPtr fptr) offset ((size + 1) `div` 2)+  {-# INLINE fromForeignRegion #-}  instance FromForeignRegion (DVS.Vector Word32) where   fromForeignRegion (fptr, offset, size) = DVS.unsafeFromForeignPtr (castForeignPtr fptr) offset ((size + 3) `div` 4)+  {-# INLINE fromForeignRegion #-}  instance FromForeignRegion (DVS.Vector Word64) where   fromForeignRegion (fptr, offset, size) = DVS.unsafeFromForeignPtr (castForeignPtr fptr) offset ((size + 7) `div` 8)+  {-# INLINE fromForeignRegion #-}  instance  ( FromForeignRegion a           , FromForeignRegion b           ) => FromForeignRegion (a :*: b) where   fromForeignRegion r = fromForeignRegion r :*: fromForeignRegion r+  {-# INLINE fromForeignRegion #-}  mmapFromForeignRegion :: FromForeignRegion a => FilePath -> IO a mmapFromForeignRegion filePath = do   region <- IO.mmapFileForeignPtr filePath IO.ReadOnly Nothing   let !bs = fromForeignRegion region   return bs+{-# INLINE mmapFromForeignRegion #-}
src/HaskellWorks/Data/Vector/AsVector64.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE FlexibleInstances #-}+ module HaskellWorks.Data.Vector.AsVector64   ( AsVector64(..)   ) where@@ -14,6 +15,7 @@  instance AsVector64 (DVS.Vector Word64) where   asVector64 = id+  {-# INLINE asVector64 #-}  instance AsVector64 BS.ByteString where   asVector64 bs = DVS.constructN ((BS.length bs + 7) `div` 8) go@@ -52,4 +54,4 @@                         (w5 `shiftL` 40) .|.                         (w6 `shiftL` 48) .|.                         (w7 `shiftL` 56)-+  {-# INLINE asVector64 #-}
+ src/HaskellWorks/Data/Vector/AsVector8.hs view
@@ -0,0 +1,35 @@+{-# LANGUAGE FlexibleInstances #-}++module HaskellWorks.Data.Vector.AsVector8+  ( AsVector8(..)+  ) where++import Data.Word++import qualified Data.ByteString          as BS+import qualified Data.ByteString.Internal as BSI+import qualified Data.Vector.Storable     as DVS++class AsVector8 a where+  asVector8 :: a -> DVS.Vector Word8++instance AsVector8 (DVS.Vector Word8) where+  asVector8 = id+  {-# INLINE asVector8 #-}++instance AsVector8 (DVS.Vector Word16) where+  asVector8 = DVS.unsafeCast+  {-# INLINE asVector8 #-}++instance AsVector8 (DVS.Vector Word32) where+  asVector8 = DVS.unsafeCast+  {-# INLINE asVector8 #-}++instance AsVector8 (DVS.Vector Word64) where+  asVector8 = DVS.unsafeCast+  {-# INLINE asVector8 #-}++instance AsVector8 BS.ByteString where+  asVector8 bs = case BSI.toForeignPtr bs of+    (fptr, start, offset) -> DVS.unsafeFromForeignPtr fptr start offset+  {-# INLINE asVector8 #-}