on master help sign in
Rename unsafeIndex in Array module to getIndexUnsafe (#2540)
2e8c9acRanjeet Ranjan
core/src/Streamly/Internal/Data/Array/Type.hs+10−2
@@ -46,7 +46,7 @@ module Streamly.Internal.Data.Array.Type
46
46
47 -- * Elimination
47 -- * Elimination
48 , unsafeIndexIO
48 , unsafeIndexIO
49− , unsafeIndex -- getIndexUnsafe
49+ , getIndexUnsafe
50 , byteLength
50 , byteLength
51 , length
51 , length
52
52
@@ -83,6 +83,9 @@ module Streamly.Internal.Data.Array.Type
83 , bufferChunks
83 , bufferChunks
84 , flattenArrays
84 , flattenArrays
85 , flattenArraysRev
85 , flattenArraysRev
86+
87+ -- * Deprecated
88+ , unsafeIndex
86 )
89 )
87where
90where
88
91
@@ -370,9 +373,14 @@ unsafeIndexIO :: forall a. Unbox a => Int -> Array a -> IO a
370unsafeIndexIO i arr = MA.getIndexUnsafe i (unsafeThaw arr)
373unsafeIndexIO i arr = MA.getIndexUnsafe i (unsafeThaw arr)
371
374
372-- | Return element at the specified index without checking the bounds.
375-- | Return element at the specified index without checking the bounds.
376+{-# INLINE_NORMAL getIndexUnsafe #-}
377+getIndexUnsafe :: forall a. Unbox a => Int -> Array a -> a
378+getIndexUnsafe i arr = let !r = unsafeInlineIO $ unsafeIndexIO i arr in r
379+
380+{-# DEPRECATED unsafeIndex "Please use 'getIndexUnsafe' instead" #-}
373{-# INLINE_NORMAL unsafeIndex #-}
381{-# INLINE_NORMAL unsafeIndex #-}
374unsafeIndex :: forall a. Unbox a => Int -> Array a -> a
382unsafeIndex :: forall a. Unbox a => Int -> Array a -> a
375−unsafeIndex i arr = let !r = unsafeInlineIO $ unsafeIndexIO i arr in r
383+unsafeIndex = getIndexUnsafe
376
384
377-- | /O(1)/ Get the byte length of the array.
385-- | /O(1)/ Get the byte length of the array.
378--
386--
core/src/Streamly/Internal/Serialize/FromBytes.hs+2−2
@@ -51,7 +51,7 @@ import Streamly.Internal.Data.Maybe.Strict (Maybe'(..))
51import Streamly.Internal.Data.Tuple.Strict (Tuple' (..))
51import Streamly.Internal.Data.Tuple.Strict (Tuple' (..))
52import qualified Streamly.Data.Array as A
52import qualified Streamly.Data.Array as A
53import qualified Streamly.Internal.Data.Array as A
53import qualified Streamly.Internal.Data.Array as A
54− (unsafeIndex, castUnsafe)
54+ (getIndexUnsafe, castUnsafe)
55import qualified Streamly.Internal.Data.Parser as PR
55import qualified Streamly.Internal.Data.Parser as PR
56 (fromPure, either, satisfy, takeEQ)
56 (fromPure, either, satisfy, takeEQ)
57import qualified Streamly.Internal.Data.Parser as PRD
57import qualified Streamly.Internal.Data.Parser as PRD
@@ -382,7 +382,7 @@ charLatin1 = fmap (chr . fromIntegral) word8
382{-# INLINE word64host #-}
382{-# INLINE word64host #-}
383word64host :: MonadIO m => Parser Word8 m Word64
383word64host :: MonadIO m => Parser Word8 m Word64
384word64host =
384word64host =
385− fmap (A.unsafeIndex 0 . A.castUnsafe) $ PR.takeEQ 8 (A.writeN 8)
385+ fmap (A.getIndexUnsafe 0 . A.castUnsafe) $ PR.takeEQ 8 (A.writeN 8)
386
386
387-------------------------------------------------------------------------------
387-------------------------------------------------------------------------------
388-- Type class
388-- Type class
src/Streamly/Internal/FileSystem/Event/Darwin.hs+3−3
@@ -493,9 +493,9 @@ readOneEvent :: Parser Word8 IO Event
493readOneEvent = do
493readOneEvent = do
494 arr <- PR.takeEQ 24 (A.writeN 24)
494 arr <- PR.takeEQ 24 (A.writeN 24)
495 let arr1 = A.castUnsafe arr :: Array Word64
495 let arr1 = A.castUnsafe arr :: Array Word64
496− eid = A.unsafeIndex 0 arr1
496+ eid = A.getIndexUnsafe 0 arr1
497− eflags = A.unsafeIndex 1 arr1
497+ eflags = A.getIndexUnsafe 1 arr1
498− pathLen = fromIntegral $ A.unsafeIndex 2 arr1
498+ pathLen = fromIntegral $ A.getIndexUnsafe 2 arr1
499 path <- PR.takeEQ pathLen (A.writeN pathLen)
499 path <- PR.takeEQ pathLen (A.writeN pathLen)
500 return $ Event
500 return $ Event
501 { eventId = eid
501 { eventId = eid
test/Streamly/Test/Data/Array.hs+2−2
@@ -180,7 +180,7 @@ testFromToList inp = A.toList (A.fromList inp) `shouldBe` inp
180testUnsafeIndxedFromList :: [Char] -> IO ()
180testUnsafeIndxedFromList :: [Char] -> IO ()
181testUnsafeIndxedFromList inp =
181testUnsafeIndxedFromList inp =
182 let arr = A.fromList inp
182 let arr = A.fromList inp
183− in fmap (`A.unsafeIndex` arr) [0 .. (length inp - 1)] `shouldBe` inp
183+ in fmap (`A.getIndexUnsafe` arr) [0 .. (length inp - 1)] `shouldBe` inp
184
184
185testAsPtrUnsafeMA :: IO ()
185testAsPtrUnsafeMA :: IO ()
186testAsPtrUnsafeMA = do
186testAsPtrUnsafeMA = do
@@ -267,7 +267,7 @@ main =
267 describe "toList . fromList" $ do
267 describe "toList . fromList" $ do
268 it "testFromToList abc" (testFromToList "abc")
268 it "testFromToList abc" (testFromToList "abc")
269 it "testFromToList \\22407" (testFromToList "\22407")
269 it "testFromToList \\22407" (testFromToList "\22407")
270− describe "unsafeIndex . fromList" $ do
270+ describe "getIndexUnsafe . fromList" $ do
271 it "testUnsafeIndxedFromList abc" (testUnsafeIndxedFromList "abc")
271 it "testUnsafeIndxedFromList abc" (testUnsafeIndxedFromList "abc")
272 it "testUnsafeIndxedFromList \\22407"
272 it "testUnsafeIndxedFromList \\22407"
273 (testUnsafeIndxedFromList "\22407")
273 (testUnsafeIndxedFromList "\22407")
test/Streamly/Test/Data/Parser.hs+3−3
@@ -912,9 +912,9 @@ readOneEvent :: P.Parser Word8 IO Event
912readOneEvent = do
912readOneEvent = do
913 arr <- P.takeEQ 24 (A.writeN 24)
913 arr <- P.takeEQ 24 (A.writeN 24)
914 let arr1 = A.castUnsafe arr :: A.Array Word64
914 let arr1 = A.castUnsafe arr :: A.Array Word64
915− eid = A.unsafeIndex 0 arr1
915+ eid = A.getIndexUnsafe 0 arr1
916− eflags = A.unsafeIndex 1 arr1
916+ eflags = A.getIndexUnsafe 1 arr1
917− pathLen = fromIntegral $ A.unsafeIndex 2 arr1
917+ pathLen = fromIntegral $ A.getIndexUnsafe 2 arr1
918 -- XXX handle if pathLen is 0
918 -- XXX handle if pathLen is 0
919 path <- P.takeEQ pathLen (A.writeN pathLen)
919 path <- P.takeEQ pathLen (A.writeN pathLen)
920 return $ Event
920 return $ Event
test/Streamly/Test/Data/ParserK.hs+3−3
@@ -722,9 +722,9 @@ readOneEvent :: P.Parser Word8 IO Event
722readOneEvent = do
722readOneEvent = do
723 arr <- P.takeEQ 24 (A.writeN 24)
723 arr <- P.takeEQ 24 (A.writeN 24)
724 let arr1 = A.castUnsafe arr :: A.Array Word64
724 let arr1 = A.castUnsafe arr :: A.Array Word64
725− eid = A.unsafeIndex 0 arr1
725+ eid = A.getIndexUnsafe 0 arr1
726− eflags = A.unsafeIndex 1 arr1
726+ eflags = A.getIndexUnsafe 1 arr1
727− pathLen = fromIntegral $ A.unsafeIndex 2 arr1
727+ pathLen = fromIntegral $ A.getIndexUnsafe 2 arr1
728 path <- P.takeEQ pathLen (A.writeN pathLen)
728 path <- P.takeEQ pathLen (A.writeN pathLen)
729 return $ Event
729 return $ Event
730 { eventId = eid
730 { eventId = eid