on master help sign in
Array.Foreign -> Array.Unboxed in tests and benchmarks & intenals
18a226bRanjeet Kumar Ranjan
.github/workflows/regression-check.yml+1−1
@@ -19,7 +19,7 @@ jobs:
19 env:
19 env:
20 CI_BENCHMARKS_WITH_CUTOFF: >-
20 CI_BENCHMARKS_WITH_CUTOFF: >-
21 Data.Array
21 Data.Array
22− Data.Array.Foreign
22+ Data.Array.Unboxed
23 Data.Fold
23 Data.Fold
24 Data.Parser
24 Data.Parser
25 Data.Parser.ParserD
25 Data.Parser.ParserD
benchmark/Streamly/Benchmark/Data/Array/Foreign.hs → benchmark/Streamly/Benchmark/Data/Array/Unboxed.hsrenamed+1−1
@@ -114,7 +114,7 @@ o_n_heap_serial value =
114 ]
114 ]
115
115
116moduleName :: String
116moduleName :: String
117−moduleName = "Data.Array.Foreign"
117+moduleName = "Data.Array.Unboxed"
118
118
119defStreamSize :: Int
119defStreamSize :: Int
120defStreamSize = defaultStreamSize
120defStreamSize = defaultStreamSize
benchmark/Streamly/Benchmark/Data/Array/Foreign/Mut.hs → benchmark/Streamly/Benchmark/Data/Array/Unboxed/Mut.hsrenamed+2−2
@@ -1,5 +1,5 @@
1-- |
1-- |
2−-- Module : Streamly.Benchmark.Data.Array.Foreign.Mut
2+-- Module : Streamly.Benchmark.Data.Array.Unboxed.Mut
3-- Copyright : (c) 2021 Composewell Technologies
3-- Copyright : (c) 2021 Composewell Technologies
4-- License : BSD-3-Clause
4-- License : BSD-3-Clause
5-- Maintainer : streamly@composewell.com
5-- Maintainer : streamly@composewell.com
@@ -264,7 +264,7 @@ o_1_space_serial_marray value ~(array, indices) =
264-------------------------------------------------------------------------------
264-------------------------------------------------------------------------------
265
265
266moduleName :: String
266moduleName :: String
267−moduleName = "Data.Array.Foreign.Mut"
267+moduleName = "Data.Array.Unboxed.Mut"
268
268
269main :: IO ()
269main :: IO ()
270main = do
270main = do
benchmark/bench-runner/Main.hs+2−2
@@ -76,9 +76,9 @@ rtsOpts exeName benchName0 = unwords [general, exeSpecific, benchSpecific]
76 | "Data.Array" `isPrefixOf` benchName
76 | "Data.Array" `isPrefixOf` benchName
77 && "/o-1-space.generation.show" `isSuffixOf` benchName = "-M32M"
77 && "/o-1-space.generation.show" `isSuffixOf` benchName = "-M32M"
78 | "Data.Array/o-1-space.transformationX4.map" == benchName = "-M32M"
78 | "Data.Array/o-1-space.transformationX4.map" == benchName = "-M32M"
79− | "Data.Array.Foreign/o-1-space.elimination.foldable.foldl"
79+ | "Data.Array.Unboxed/o-1-space.elimination.foldable.foldl"
80 `isPrefixOf` benchName = "-K8M"
80 `isPrefixOf` benchName = "-K8M"
81− | "Data.Array.Foreign/o-1-space.elimination.foldable.sum" == benchName =
81+ | "Data.Array.Unboxed/o-1-space.elimination.foldable.sum" == benchName =
82 "-K8M"
82 "-K8M"
83 | "Unicode.Char/o-1-space." `isPrefixOf` benchName = "-M32M"
83 | "Unicode.Char/o-1-space." `isPrefixOf` benchName = "-M32M"
84 | otherwise = ""
84 | otherwise = ""
benchmark/streamly-benchmarks.cabal+4−4
@@ -512,10 +512,10 @@ benchmark Data.SmallArray
512 else
512 else
513 buildable: True
513 buildable: True
514
514
515−benchmark Data.Array.Foreign
515+benchmark Data.Array.Unboxed
516 import: bench-options
516 import: bench-options
517 type: exitcode-stdio-1.0
517 type: exitcode-stdio-1.0
518− main-is: Streamly/Benchmark/Data/Array/Foreign.hs
518+ main-is: Streamly/Benchmark/Data/Array/Unboxed.hs
519 if flag(bench-core)
519 if flag(bench-core)
520 buildable: False
520 buildable: False
521 else
521 else
@@ -523,10 +523,10 @@ benchmark Data.Array.Foreign
523 if flag(limit-build-mem)
523 if flag(limit-build-mem)
524 ghc-options: +RTS -M1500M -RTS
524 ghc-options: +RTS -M1500M -RTS
525
525
526−benchmark Data.Array.Foreign.Mut
526+benchmark Data.Array.Unboxed.Mut
527 import: bench-options
527 import: bench-options
528 type: exitcode-stdio-1.0
528 type: exitcode-stdio-1.0
529− main-is: Streamly/Benchmark/Data/Array/Foreign/Mut.hs
529+ main-is: Streamly/Benchmark/Data/Array/Unboxed/Mut.hs
530 if flag(limit-build-mem)
530 if flag(limit-build-mem)
531 ghc-options: +RTS -M1500M -RTS
531 ghc-options: +RTS -M1500M -RTS
532 if flag(bench-core)
532 if flag(bench-core)
core/src/Streamly/Internal/Data/Array/Unboxed.hs+1−1
@@ -1,5 +1,5 @@
1-- |
1-- |
2−-- Module : Streamly.Internal.Data.Array.Foreign
2+-- Module : Streamly.Internal.Data.Array.Unboxed
3-- Copyright : (c) 2019 Composewell Technologies
3-- Copyright : (c) 2019 Composewell Technologies
4--
4--
5-- License : BSD3
5-- License : BSD3
hie.yaml+2−2
@@ -72,8 +72,8 @@ cradle:
72 cabal:
72 cabal:
73 - path: "./test/Streamly/Test/Data/Array.hs"
73 - path: "./test/Streamly/Test/Data/Array.hs"
74 component: "test:Data.Array"
74 component: "test:Data.Array"
75− - path: "./test/Streamly/Test/Data/Array/Foreign.hs"
75+ - path: "./test/Streamly/Test/Data/Array/Unboxed.hs"
76− component: "test:Data.Array.Foreign"
76+ component: "test:Data.Array.Unboxed"
77 - path: "./test/Streamly/Test/Data/Array/Stream/Foreign.hs"
77 - path: "./test/Streamly/Test/Data/Array/Stream/Foreign.hs"
78 component: "test:Data.Array.Stream.Foreign"
78 component: "test:Data.Array.Stream.Foreign"
79 - path: "./test/Streamly/Test/Data/Fold.hs"
79 - path: "./test/Streamly/Test/Data/Fold.hs"
streamly.cabal+3−3
@@ -55,9 +55,9 @@ extra-source-files:
55 benchmark/Streamly/Benchmark/Data/Array/Common.hs
55 benchmark/Streamly/Benchmark/Data/Array/Common.hs
56 benchmark/Streamly/Benchmark/Data/Array/CommonImports.hs
56 benchmark/Streamly/Benchmark/Data/Array/CommonImports.hs
57 benchmark/Streamly/Benchmark/Data/Array/SmallArray.hs
57 benchmark/Streamly/Benchmark/Data/Array/SmallArray.hs
58− benchmark/Streamly/Benchmark/Data/Array/Foreign.hs
58+ benchmark/Streamly/Benchmark/Data/Array/Unboxed.hs
59 benchmark/Streamly/Benchmark/Data/Ring/Unboxed.hs
59 benchmark/Streamly/Benchmark/Data/Ring/Unboxed.hs
60− benchmark/Streamly/Benchmark/Data/Array/Foreign/Mut.hs
60+ benchmark/Streamly/Benchmark/Data/Array/Unboxed/Mut.hs
61 benchmark/Streamly/Benchmark/Data/Array/Stream/Foreign.hs
61 benchmark/Streamly/Benchmark/Data/Array/Stream/Foreign.hs
62 benchmark/Streamly/Benchmark/Data/Fold/Window.hs
62 benchmark/Streamly/Benchmark/Data/Fold/Window.hs
63 benchmark/Streamly/Benchmark/Data/Parser/*.hs
63 benchmark/Streamly/Benchmark/Data/Parser/*.hs
@@ -91,7 +91,7 @@ extra-source-files:
91 test/Streamly/Test/Data/*.hs
91 test/Streamly/Test/Data/*.hs
92 test/Streamly/Test/Data/Array/CommonImports.hs
92 test/Streamly/Test/Data/Array/CommonImports.hs
93 test/Streamly/Test/Data/Array/Common.hs
93 test/Streamly/Test/Data/Array/Common.hs
94− test/Streamly/Test/Data/Array/Foreign.hs
94+ test/Streamly/Test/Data/Array/Unboxed.hs
95 test/Streamly/Test/Data/Ring/Unboxed.hs
95 test/Streamly/Test/Data/Ring/Unboxed.hs
96 test/Streamly/Test/Data/Array/Stream/Foreign.hs
96 test/Streamly/Test/Data/Array/Stream/Foreign.hs
97 test/Streamly/Test/Data/Parser/ParserD.hs
97 test/Streamly/Test/Data/Parser/ParserD.hs
targets/Targets.hs+2−2
@@ -94,13 +94,13 @@ targets =
94 , "array_cmp"
94 , "array_cmp"
95 ]
95 ]
96 )
96 )
97− , ("Data.Array.Foreign",
97+ , ("Data.Array.Unboxed",
98 [ "array_grp"
98 [ "array_grp"
99 , "array_cmp"
99 , "array_cmp"
100 , "pinned_array_cmp"
100 , "pinned_array_cmp"
101 ]
101 ]
102 )
102 )
103− , ("Data.Array.Foreign.Mut",
103+ , ("Data.Array.Unboxed.Mut",
104 [ "array_grp"
104 [ "array_grp"
105 , "array_cmp"
105 , "array_cmp"
106 , "noTest"
106 , "noTest"
test/Streamly/Test/Data/Array/Foreign.hs → test/Streamly/Test/Data/Array/Unboxed.hsrenamed+9−9
@@ -1,12 +1,12 @@
1-- |
1-- |
2−-- Module : Streamly.Test.Data.Array.Foreign
2+-- Module : Streamly.Test.Data.Array.Unboxed
3-- Copyright : (c) 2019 Composewell technologies
3-- Copyright : (c) 2019 Composewell technologies
4-- License : BSD-3-Clause
4-- License : BSD-3-Clause
5-- Maintainer : streamly@composewell.com
5-- Maintainer : streamly@composewell.com
6-- Stability : experimental
6-- Stability : experimental
7-- Portability : GHC
7-- Portability : GHC
8
8
9−module Streamly.Test.Data.Array.Foreign (main) where
9+module Streamly.Test.Data.Array.Unboxed (main) where
10
10
11#include "Streamly/Test/Data/Array/CommonImports.hs"
11#include "Streamly/Test/Data/Array/CommonImports.hs"
12
12
@@ -27,7 +27,7 @@ import qualified Streamly.Internal.Data.Array.Stream.Foreign as AS
27type Array = A.Array
27type Array = A.Array
28
28
29moduleName :: String
29moduleName :: String
30−moduleName = "Data.Array.Foreign"
30+moduleName = "Data.Array.Unboxed"
31
31
32#include "Streamly/Test/Data/Array/Common.hs"
32#include "Streamly/Test/Data/Array/Common.hs"
33
33
@@ -43,7 +43,7 @@ testFromList =
43 forAll (vectorOf len (arbitrary :: Gen Int)) $ \list ->
43 forAll (vectorOf len (arbitrary :: Gen Int)) $ \list ->
44 monadicIO $ do
44 monadicIO $ do
45 let arr = A.fromList list
45 let arr = A.fromList list
46− xs <- run $ S.toList $ (S.unfold A.read) arr
46+ xs <- run $ S.toList $ S.unfold A.read arr
47 assert (xs == list)
47 assert (xs == list)
48
48
49testLengthFromStream :: Property
49testLengthFromStream :: Property
@@ -133,7 +133,7 @@ concatArrayW8 =
133
133
134unsafeSlice :: Int -> Int -> [Int] -> Bool
134unsafeSlice :: Int -> Int -> [Int] -> Bool
135unsafeSlice i n list =
135unsafeSlice i n list =
136− let lst = take n $ drop i $ list
136+ let lst = take n $ drop i list
137 arr = A.toList $ A.getSliceUnsafe i n $ A.fromList list
137 arr = A.toList $ A.getSliceUnsafe i n $ A.fromList list
138 in arr == lst
138 in arr == lst
139
139
@@ -190,7 +190,7 @@ testByteLengthWithMA _ = do
190 let arrW8 = MA.castUnsafe arrA :: MA.Array Word8
190 let arrW8 = MA.castUnsafe arrA :: MA.Array Word8
191 MA.byteLength arrA `shouldBe` MA.length arrW8
191 MA.byteLength arrA `shouldBe` MA.length arrW8
192
192
193−testBreakOn :: [Word8] -> Word8 -> [Word8] -> (Maybe [Word8]) -> IO ()
193+testBreakOn :: [Word8] -> Word8 -> [Word8] -> Maybe [Word8] -> IO ()
194testBreakOn inp sep bef aft = do
194testBreakOn inp sep bef aft = do
195 (bef_, aft_) <- A.breakOn sep (A.fromList inp)
195 (bef_, aft_) <- A.breakOn sep (A.fromList inp)
196 bef_ `shouldBe` A.fromList bef
196 bef_ `shouldBe` A.fromList bef
@@ -207,7 +207,7 @@ testFromToList inp = A.toList (A.fromList inp) `shouldBe` inp
207testUnsafeIndxedFromList :: [Char] -> IO ()
207testUnsafeIndxedFromList :: [Char] -> IO ()
208testUnsafeIndxedFromList inp =
208testUnsafeIndxedFromList inp =
209 let arr = A.fromList inp
209 let arr = A.fromList inp
210− in fmap (flip A.unsafeIndex arr) [0 .. (length inp - 1)] `shouldBe` inp
210+ in fmap (`A.unsafeIndex` arr) [0 .. (length inp - 1)] `shouldBe` inp
211
211
212testAsPtrUnsafeMA :: IO ()
212testAsPtrUnsafeMA :: IO ()
213testAsPtrUnsafeMA = do
213testAsPtrUnsafeMA = do
@@ -257,7 +257,7 @@ main =
257 prop "fromList" testFromList
257 prop "fromList" testFromList
258 prop "foldMany with writeNUnsafe concats to original"
258 prop "foldMany with writeNUnsafe concats to original"
259 (foldManyWith (\n -> Fold.take n (A.writeNUnsafe n)))
259 (foldManyWith (\n -> Fold.take n (A.writeNUnsafe n)))
260− prop "AS.concat . (A.fromList . (:[]) <$>) === id" $ concatArrayW8
260+ prop "AS.concat . (A.fromList . (:[]) <$>) === id" concatArrayW8
261 describe "unsafeSlice" $ do
261 describe "unsafeSlice" $ do
262 it "partial" $ unsafeSlice 2 4 [1..10]
262 it "partial" $ unsafeSlice 2 4 [1..10]
263 it "none" $ unsafeSlice 10 0 [1..10]
263 it "none" $ unsafeSlice 10 0 [1..10]
@@ -267,7 +267,7 @@ main =
267 it "middle" (unsafeWriteIndex [1..10] 5 0 `shouldReturn` True)
267 it "middle" (unsafeWriteIndex [1..10] 5 0 `shouldReturn` True)
268 it "last" (unsafeWriteIndex [1..10] 9 0 `shouldReturn` True)
268 it "last" (unsafeWriteIndex [1..10] 9 0 `shouldReturn` True)
269 describe "Fold" $ do
269 describe "Fold" $ do
270− prop "writeLastN : 0 <= n <= len" $ testLastN
270+ prop "writeLastN : 0 <= n <= len" testLastN
271 describe "writeLastN boundary conditions" $ do
271 describe "writeLastN boundary conditions" $ do
272 it "writeLastN -1" (testLastN_LN 10 (-1) `shouldReturn` True)
272 it "writeLastN -1" (testLastN_LN 10 (-1) `shouldReturn` True)
273 it "writeLastN 0" (testLastN_LN 10 0 `shouldReturn` True)
273 it "writeLastN 0" (testLastN_LN 10 0 `shouldReturn` True)
test/streamly-tests.cabal+3−3
@@ -223,11 +223,11 @@ test-suite Data.Array
223 main-is: Streamly/Test/Data/Array.hs
223 main-is: Streamly/Test/Data/Array.hs
224 ghc-options: -main-is Streamly.Test.Data.Array.main
224 ghc-options: -main-is Streamly.Test.Data.Array.main
225
225
226−test-suite Data.Array.Foreign
226+test-suite Data.Array.Unboxed
227 import: test-options
227 import: test-options
228 type: exitcode-stdio-1.0
228 type: exitcode-stdio-1.0
229− main-is: Streamly/Test/Data/Array/Foreign.hs
229+ main-is: Streamly/Test/Data/Array/Unboxed.hs
230− ghc-options: -main-is Streamly.Test.Data.Array.Foreign.main
230+ ghc-options: -main-is Streamly.Test.Data.Array.Unboxed.main
231
231
232test-suite Data.Ring.Unboxed
232test-suite Data.Ring.Unboxed
233 import: test-options
233 import: test-options
test/test-runner/Main.hs+1−1
@@ -21,7 +21,7 @@ rtsOpts relaxMem exeName target =
21 targetSpecific =
21 targetSpecific =
22 case target of
22 case target of
23 -- XXX Data.Array.* heap requirement increased for GHC-8.10
23 -- XXX Data.Array.* heap requirement increased for GHC-8.10
24− "Data.Array.Foreign" -> "-M128M"
24+ "Data.Array.Unboxed" -> "-M128M"
25 "Prelude.Rate" -> "-M512M"
25 "Prelude.Rate" -> "-M512M"
26 -- For -O0 case writeChunks test fails, maybe we should have a
26 -- For -O0 case writeChunks test fails, maybe we should have a
27 -- separate flag for O0 case?
27 -- separate flag for O0 case?