xor 0.0.1.1 → 0.0.1.2
raw patch · 4 files changed
+23/−13 lines, 4 filesdep ~QuickCheckdep ~basedep ~tasty
Dependency ranges changed: QuickCheck, base, tasty
Files
- CHANGELOG.md +7/−0
- src-bench/Main.hs +3/−3
- src/Data/XOR.hs +3/−2
- xor.cabal +10/−8
CHANGELOG.md view
@@ -1,4 +1,11 @@ +## 0.0.1.2++_Andreas Abel, 2023-07-19_++- Use `copyBytes` for deprecated `memcpy` as suggested by `bytestring-0.11.5`.+- Tested with GHC 7.4 - 9.6.+ ## 0.0.1.1 _Andreas Abel, 2022-02-16_
src-bench/Main.hs view
@@ -25,6 +25,7 @@ import qualified Data.ByteString.Short as SBS import Data.Word (Word32, Word8) import Foreign.ForeignPtr+import Foreign.Marshal.Utils (copyBytes) import Foreign.Ptr import Foreign.Storable import GHC.ByteOrder (ByteOrder (..), targetByteOrder)@@ -106,7 +107,7 @@ xor32ByteString'v3 msk0 (BS.PS x s l) = unsafeCreate l $ \p8 -> withForeignPtr x $ \f -> do- memcpy p8 (f `plusPtr` s) (fromIntegral l)+ copyBytes p8 (f `plusPtr` s) (fromIntegral l) let p32 = castPtr p8 :: Ptr Word32 l32 = l `quot` 4 p32end = p32 `plusPtr` (l32*4)@@ -122,7 +123,7 @@ xor32ByteString'v4 msk0 (BS.PS x s l) = unsafeCreate l $ \p8 -> withForeignPtr x $ \f -> do- memcpy p8 (f `plusPtr` s) (fromIntegral l)+ copyBytes p8 (f `plusPtr` s) (fromIntegral l) _ <- IUT.xor32CStringLen msk0 (castPtr p8,l) return () @@ -164,4 +165,3 @@ xor32Ptr1 :: Word32 -> Ptr Word32 -> IO () xor32Ptr1 msk ptr = do { x <- peek ptr; poke ptr (xor msk x) }-
src/Data/XOR.hs view
@@ -37,6 +37,7 @@ targetByteOrder) import Foreign.C (CStringLen) import Foreign.ForeignPtr (withForeignPtr)+import Foreign.Marshal.Utils (copyBytes) import Foreign.Ptr (Ptr, alignPtr, castPtr, minusPtr, plusPtr) import Foreign.Storable (peek, poke) import System.IO.Unsafe (unsafeDupablePerformIO)@@ -47,7 +48,7 @@ -- bytestring import qualified Data.ByteString as BS-import Data.ByteString.Internal (mallocByteString, memcpy)+import Data.ByteString.Internal (mallocByteString) import qualified Data.ByteString.Internal as BS (ByteString (..)) import qualified Data.ByteString.Lazy.Internal as BL (ByteString (..)) import qualified Data.ByteString.Short as SBS@@ -136,7 +137,7 @@ xor32StrictByteString'' msk0 (BS.PS x s l) = unsafeCreate' l $ \p8 -> withForeignPtr x $ \f -> do- memcpy p8 (f `plusPtr` s) (fromIntegral l)+ copyBytes p8 (f `plusPtr` s) (fromIntegral l) case remPtr p8 4 of 0 -> do
xor.cabal view
@@ -1,10 +1,10 @@ cabal-version: 2.2 name: xor-version: 0.0.1.1+version: 0.0.1.2 category: Data, Codec author: Herbert Valerio Riedel-maintainer: https://github.com/haskell-hvr/xor+maintainer: Andreas Abel bug-reports: https://github.com/haskell-hvr/xor/issues copyright: © 2020 Herbert Valerio Riedel@@ -30,7 +30,9 @@ The performance is comparable to portable ISO C99 implementations but this library is implemented as pure Haskell and is thereby compatible with compile targets such as <https://github.com/ghcjs/ghcjs GHCJS>. tested-with:- GHC == 9.2.1+ GHC == 9.6.2+ GHC == 9.4.5+ GHC == 9.2.8 GHC == 9.0.2 GHC == 8.10.7 GHC == 8.8.4@@ -43,12 +45,12 @@ GHC == 7.6.3 GHC == 7.4.2 -extra-source-files:+extra-doc-files: CHANGELOG.md source-repository head type: git- location: https://github.com/hvr/xor.git+ location: https://github.com/haskell-hvr/xor.git common defaults default-language: Haskell2010@@ -58,8 +60,8 @@ MagicHash build-depends:- , base >= 4.5 && < 4.17- , bytestring >= 0.10.4 && < 0.12+ , base >= 4.5 && < 4.19+ , bytestring >= 0.10.4 && < 0.13 , ghc-byteorder ^>= 4.11.0.0 -- Andreas Abel, 2022-02-16:@@ -96,7 +98,7 @@ build-depends: , xor -- dependencies specific to this component- , criterion ^>= 1.5.6+ , criterion ^>= 1.5.6 || ^>= 1.6.0.0 test-suite test import: defaults