ptr-poker 0.1.2.13 → 0.1.2.14
raw patch · 5 files changed
+68/−61 lines, 5 filesdep ~bytestringPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: bytestring
API changes (from Hackage documentation)
Files
- bench/Main.hs +55/−52
- library/PtrPoker/Compat/ByteString.hs +3/−2
- library/PtrPoker/Prelude.hs +1/−3
- ptr-poker.cabal +6/−2
- test/Main.hs +3/−2
bench/Main.hs view
@@ -10,60 +10,63 @@ defaultMain [ bgroup "bWord32"- [ bench "4" $- nf+ [ bench "4"+ $ nf ( \(a, b, c, d) ->- Write.writeToByteString $- Write.bWord32 a <> Write.bWord32 b <> Write.bWord32 c <> Write.bWord32 d+ Write.writeToByteString+ $ Write.bWord32 a+ <> Write.bWord32 b+ <> Write.bWord32 c+ <> Write.bWord32 d ) (1, 2, 3, 4) ],- bgroup "textUtf8" $- let latinSampleBySize size =- enumFromTo 'a' 'z'- & replicate size- & concat- & fromString- greekSampleBySize size =- enumFromTo 'Α' 'Ω'- & replicate size- & concat- & fromString- !latinSample1 = latinSampleBySize 1- !latinSample10 = latinSampleBySize 10- !latinSample100 = latinSampleBySize 100- !greekSample1 = greekSampleBySize 1- !greekSample10 = greekSampleBySize 10- !greekSample100 = greekSampleBySize 100- in [ bgroup- "ptr-poker"- [ bgroup- "latin"- [ bench "1" (nf (Write.writeToByteString . Write.textUtf8) latinSample1),- bench "10" (nf (Write.writeToByteString . Write.textUtf8) latinSample10),- bench "100" (nf (Write.writeToByteString . Write.textUtf8) latinSample100)- ],- bgroup- "greek"- [ bench "1" (nf (Write.writeToByteString . Write.textUtf8) greekSample1),- bench "10" (nf (Write.writeToByteString . Write.textUtf8) greekSample10),- bench "100" (nf (Write.writeToByteString . Write.textUtf8) greekSample100)- ]- ],- bgroup- "text"- [ bgroup- "latin"- [ bench "1" (nf Text.encodeUtf8 latinSample1),- bench "10" (nf Text.encodeUtf8 latinSample10),- bench "100" (nf Text.encodeUtf8 latinSample100)- ],- bgroup- "greek"- [ bench "1" (nf Text.encodeUtf8 greekSample1),- bench "10" (nf Text.encodeUtf8 greekSample10),- bench "100" (nf Text.encodeUtf8 greekSample100)- ]- ]- ]+ bgroup "textUtf8"+ $ let latinSampleBySize size =+ enumFromTo 'a' 'z'+ & replicate size+ & concat+ & fromString+ greekSampleBySize size =+ enumFromTo 'Α' 'Ω'+ & replicate size+ & concat+ & fromString+ !latinSample1 = latinSampleBySize 1+ !latinSample10 = latinSampleBySize 10+ !latinSample100 = latinSampleBySize 100+ !greekSample1 = greekSampleBySize 1+ !greekSample10 = greekSampleBySize 10+ !greekSample100 = greekSampleBySize 100+ in [ bgroup+ "ptr-poker"+ [ bgroup+ "latin"+ [ bench "1" (nf (Write.writeToByteString . Write.textUtf8) latinSample1),+ bench "10" (nf (Write.writeToByteString . Write.textUtf8) latinSample10),+ bench "100" (nf (Write.writeToByteString . Write.textUtf8) latinSample100)+ ],+ bgroup+ "greek"+ [ bench "1" (nf (Write.writeToByteString . Write.textUtf8) greekSample1),+ bench "10" (nf (Write.writeToByteString . Write.textUtf8) greekSample10),+ bench "100" (nf (Write.writeToByteString . Write.textUtf8) greekSample100)+ ]+ ],+ bgroup+ "text"+ [ bgroup+ "latin"+ [ bench "1" (nf Text.encodeUtf8 latinSample1),+ bench "10" (nf Text.encodeUtf8 latinSample10),+ bench "100" (nf Text.encodeUtf8 latinSample100)+ ],+ bgroup+ "greek"+ [ bench "1" (nf Text.encodeUtf8 greekSample1),+ bench "10" (nf Text.encodeUtf8 greekSample10),+ bench "100" (nf Text.encodeUtf8 greekSample100)+ ]+ ]+ ] ]
library/PtrPoker/Compat/ByteString.hs view
@@ -3,6 +3,7 @@ module PtrPoker.Compat.ByteString (poke) where import Data.ByteString.Internal+import Foreign.Marshal.Utils import qualified PtrPoker.Compat.ForeignPtr as ForeignPtr import PtrPoker.Prelude hiding (poke) @@ -14,7 +15,7 @@ poke (BS fptr length) ptr = {-# SCC "poke" #-} ForeignPtr.unsafeWithForeignPtr fptr $ \ bytesPtr ->- memcpy ptr bytesPtr length $>+ copyBytes ptr bytesPtr length $> plusPtr ptr length #else@@ -22,7 +23,7 @@ poke (PS fptr offset length) ptr = {-# SCC "poke" #-} ForeignPtr.unsafeWithForeignPtr fptr $ \ bytesPtr ->- memcpy ptr (plusPtr bytesPtr offset) length $>+ copyBytes ptr (plusPtr bytesPtr offset) length $> plusPtr ptr length #endif
library/PtrPoker/Prelude.hs view
@@ -27,7 +27,7 @@ import Data.Fixed as Exports import Data.Foldable as Exports hiding (toList) import Data.Function as Exports hiding (id, (.))-import Data.Functor as Exports+import Data.Functor as Exports hiding (unzip) import Data.Functor.Compose as Exports import Data.IORef as Exports import Data.Int as Exports@@ -69,8 +69,6 @@ import System.Mem as Exports import System.Mem.StableName as Exports import System.Timeout as Exports-import Text.ParserCombinators.ReadP as Exports (ReadP, readP_to_S, readS_to_P)-import Text.ParserCombinators.ReadPrec as Exports (ReadPrec, readP_to_Prec, readPrec_to_P, readPrec_to_S, readS_to_Prec) import Text.Printf as Exports (hPrintf, printf) import Text.Read as Exports (Read (..), readEither, readMaybe) import Unsafe.Coerce as Exports
ptr-poker.cabal view
@@ -1,7 +1,11 @@ cabal-version: 3.0 name: ptr-poker-version: 0.1.2.13+version: 0.1.2.14 synopsis: Pointer poking action construction and composition toolkit+description:+ Abstraction over memory writes. Efficiently building strict bytestrings is one usecase for it.++category: Data, Memory, Ptr homepage: https://github.com/nikita-volkov/ptr-poker bug-reports: https://github.com/nikita-volkov/ptr-poker/issues author: Nikita Volkov <nikita.y.volkov@mail.ru>@@ -82,7 +86,7 @@ build-depends: , base >=4.11 && <5- , bytestring >=0.10 && <0.12+ , bytestring >=0.10 && <0.13 , scientific >=0.3.6.2 && <0.4 , text >=1 && <3
test/Main.hs view
@@ -65,8 +65,9 @@ read string === a prop_nonRealZeroNonRealDoubleAsciiDec =- withTests 99 $- property $ do+ withTests 99+ $ property+ $ do a <- forAll nonRealRealFloatGen let string = Char8ByteString.unpack (Write.writeToByteString (Write.zeroNonRealDoubleAsciiDec a))