packages feed

ptr 0.16.2 → 0.16.3

raw patch · 4 files changed

+91/−4 lines, 4 files

Files

library/Ptr/IO.hs view
@@ -131,12 +131,18 @@   {-# SCC "pokeWord8" #-}    poke ptr value +{-# INLINE pokeWord8Off #-}+pokeWord8Off :: Ptr Word8 -> Int -> Word8 -> IO ()+pokeWord8Off ptr off value =+  {-# SCC "pokeWord8Off" #-} +  pokeByteOff ptr off value+ {-# INLINE pokeBEWord16 #-} pokeBEWord16 :: Ptr Word8 -> Word16 -> IO () #ifdef WORDS_BIGENDIAN pokeBEWord16 =   {-# SCC "pokeBEWord16" #-} -  poke+  pokeStorable #else pokeBEWord16 ptr value =   {-# SCC "pokeBEWord16" #-} @@ -191,6 +197,76 @@     pokeByteOff ptr 6 (fromIntegral (D.shiftr_w64 value  8) :: Word8)     pokeByteOff ptr 7 (fromIntegral value :: Word8) #endif+#endif++{-# INLINE pokeLEWord16 #-}+pokeLEWord16 :: Ptr Word8 -> Word16 -> IO ()+#ifdef WORDS_BIGENDIAN+pokeLEWord16 p w =+  {-# SCC "pokeLEWord16" #-} +  do+    pokeWord8 p (fromIntegral w)+    pokeWord8Off p 1 (fromIntegral (D.shiftr_w16 w 8))+#else+pokeLEWord16 =+  {-# SCC "pokeLEWord16" #-} +  pokeStorable+#endif++{-# INLINE pokeLEWord32 #-}+pokeLEWord32 :: Ptr Word8 -> Word32 -> IO ()+#ifdef WORDS_BIGENDIAN+pokeLEWord32 p w =+  {-# SCC "pokeLEWord32" #-}+  do+    pokeWord8 p (fromIntegral w)+    pokeWord8Off p 1 (fromIntegral (D.shiftr_w32 w 8))+    pokeWord8Off p 2 (fromIntegral (D.shiftr_w32 w 16))+    pokeWord8Off p 3 (fromIntegral (D.shiftr_w32 w 24))+#else+pokeLEWord32 =+  {-# SCC "pokeLEWord32" #-} +  pokeStorable+#endif++{-# INLINE pokeLEWord64 #-}+pokeLEWord64 :: Ptr Word8 -> Word64 -> IO ()+#ifdef WORDS_BIGENDIAN+#if WORD_SIZE_IN_BITS < 64+--+-- To avoid expensive 64 bit shifts on 32 bit machines, we cast to+-- Word32, and write that+--+pokeLEWord64 p w =+  {-# SCC "pokeLEWord64" #-} +  do+    let b = fromIntegral (D.shiftr_w64 w 32) :: Word32+        a = fromIntegral w                   :: Word32+    pokeWord8 p (fromIntegral a)+    pokeWord8Off p 1 (fromIntegral (D.shiftr_w32 a 8))+    pokeWord8Off p 2 (fromIntegral (D.shiftr_w32 a 16))+    pokeWord8Off p 3 (fromIntegral (D.shiftr_w32 a 24))+    pokeWord8Off p 4 (fromIntegral b)+    pokeWord8Off p 5 (fromIntegral (D.shiftr_w32 b 8))+    pokeWord8Off p 6 (fromIntegral (D.shiftr_w32 b 16))+    pokeWord8Off p 7 (fromIntegral (D.shiftr_w32 b 24))+#else+pokeLEWord64 p w =+  {-# SCC "pokeLEWord64" #-} +  do+    pokeWord8 p (fromIntegral w)+    pokeWord8Off p 1 (fromIntegral (D.shiftr_w64 w 8))+    pokeWord8Off p 2 (fromIntegral (D.shiftr_w64 w 16))+    pokeWord8Off p 3 (fromIntegral (D.shiftr_w64 w 24))+    pokeWord8Off p 4 (fromIntegral (D.shiftr_w64 w 32))+    pokeWord8Off p 5 (fromIntegral (D.shiftr_w64 w 40))+    pokeWord8Off p 6 (fromIntegral (D.shiftr_w64 w 48))+    pokeWord8Off p 7 (fromIntegral (D.shiftr_w64 w 56))+#endif+#else+pokeLEWord64 =+  {-# SCC "pokeLEWord64" #-} +  pokeStorable #endif  {-# INLINE pokeBytesTrimming #-}
library/Ptr/Poking.hs view
@@ -59,6 +59,16 @@ word8 x =   Poking 1 (flip A.pokeWord8 x) +{-# INLINE leWord32 #-}+leWord32 :: Word32 -> Poking+leWord32 x =+  Poking 4 (flip A.pokeLEWord32 x)++{-# INLINE leWord64 #-}+leWord64 :: Word64 -> Poking+leWord64 x =+  Poking 8 (flip A.pokeLEWord64 x)+ {-# INLINE beWord32 #-} beWord32 :: Word32 -> Poking beWord32 x =
ptr.cabal view
@@ -1,7 +1,7 @@ name:   ptr version:-  0.16.2+  0.16.3 category:   Ptr, Data synopsis:
tests/Main.hs view
@@ -48,8 +48,9 @@ parsing =   testGroup "Parsing" $   [-    testCase "" $-    assertEqual "" "123" (A.parse "123456" (G.bytesWhile (< 52)) undefined undefined)+    testCase "bytesWhile" $ assertEqual "" "123" (A.parse "123456" (G.bytesWhile (< 52)) undefined undefined)+    ,+    testCase "bytesWhile 2" $ assertEqual "" "123456" (A.parse "123456" (G.bytesWhile (< 59)) undefined undefined)   ]  pokeThenPeek :: B.Poke a -> C.Peek a -> Maybe (a -> a)