on master help sign in
merge the ArrayStream module to Array module itself
1bfca9eHarendra Kumar
benchmark/FileIO.hs+2−3
@@ -17,7 +17,6 @@ import Gauge
17
17
18import qualified Streamly.FileSystem.Handle as FH
18import qualified Streamly.FileSystem.Handle as FH
19import qualified Streamly.Memory.Array as A
19import qualified Streamly.Memory.Array as A
20−import qualified Streamly.Memory.ArrayStream as AS
21import qualified Streamly.Prelude as S
20import qualified Streamly.Prelude as S
22import qualified Streamly.Fold as FL
21import qualified Streamly.Fold as FL
23import qualified Streamly.Data.String as SS
22import qualified Streamly.Data.String as SS
@@ -111,7 +110,7 @@ main = do
111 S.sum (S.map A.length s)
110 S.sum (S.map A.length s)
112 , mkBench "linecount" href $ do
111 , mkBench "linecount" href $ do
113 Handles inh _ <- readIORef href
112 Handles inh _ <- readIORef href
114− S.length $ AS.splitOn 10 $ FH.readArrays inh
113+ S.length $ A.splitOn 10 $ FH.readArrays inh
115 , mkBench "sum" href $ do
114 , mkBench "sum" href $ do
116 let foldlArr' f z = runIdentity . S.foldl' f z . A.read
115 let foldlArr' f z = runIdentity . S.foldl' f z . A.read
117 Handles inh _ <- readIORef href
116 Handles inh _ <- readIORef href
@@ -201,7 +200,7 @@ main = do
201 Handles inh outh <- readIORef href
200 Handles inh outh <- readIORef href
202 S.runFold (FH.writeArraysInChunksOf (1024*1024) outh)
201 S.runFold (FH.writeArraysInChunksOf (1024*1024) outh)
203 $ Internal.insertAfterEach (return $ A.fromList [10])
202 $ Internal.insertAfterEach (return $ A.fromList [10])
204− $ AS.splitOn 10
203+ $ A.splitOn 10
205 $ FH.readArraysOf (1024*1024) inh
204 $ FH.readArraysOf (1024*1024) inh
206 , mkBench "words-unwords" href $ do
205 , mkBench "words-unwords" href $ do
207 Handles inh outh <- readIORef href
206 Handles inh outh <- readIORef href
examples/HandleIO.hs+2−3
@@ -1,7 +1,6 @@
1import qualified Streamly.Prelude as S
1import qualified Streamly.Prelude as S
2import qualified Streamly.Fold as FL
2import qualified Streamly.Fold as FL
3−-- import qualified Streamly.Memory.Array as A
3+import qualified Streamly.Memory.Array as A
4−import qualified Streamly.Memory.ArrayStream as AS
5import qualified Streamly.FileSystem.Handle as FH
4import qualified Streamly.FileSystem.Handle as FH
6import qualified System.IO as FH
5import qualified System.IO as FH
7-- import qualified Streamly.FileSystem.FD as FH
6-- import qualified Streamly.FileSystem.FD as FH
@@ -26,7 +25,7 @@ ord' = (fromIntegral . ord)
26
25
27wcl :: FH.Handle -> IO ()
26wcl :: FH.Handle -> IO ()
28wcl src = print =<< (S.length
27wcl src = print =<< (S.length
29− $ AS.splitOn 10
28+ $ A.splitOn 10
30 $ FH.readArrays src)
29 $ FH.readArrays src)
31{-
30{-
32-- Char stream version
31-- Char stream version
src/Streamly/Memory/Array.hs+19−3
@@ -65,7 +65,8 @@ module Streamly.Memory.Array
65
65
66 -- , defaultChunkSize
66 -- , defaultChunkSize
67
67
68+ -- * Arrays
68− -- * Construction
69+ -- ** Construction
69 -- | When performance matters, the fastest way to generate an array is
70 -- | When performance matters, the fastest way to generate an array is
70 -- 'writeN'. For regular use, 'IsList' and 'IsString' instances can be
71 -- 'writeN'. For regular use, 'IsList' and 'IsString' instances can be
71 -- used to conveniently construct arrays from literal values.
72 -- used to conveniently construct arrays from literal values.
@@ -86,7 +87,7 @@ module Streamly.Memory.Array
86 -- , writeNS
87 -- , writeNS
87 -- , writeS
88 -- , writeS
88
89
89− -- * Elimination
90+ -- ** Elimination
90 -- 'GHC.Exts.toList' from "GHC.Exts" can be used to convert an array to a
91 -- 'GHC.Exts.toList' from "GHC.Exts" can be used to convert an array to a
91 -- list.
92 -- list.
92
93
@@ -94,7 +95,7 @@ module Streamly.Memory.Array
94 , A.read
95 , A.read
95 , readRev
96 , readRev
96
97
97− -- * Random Access
98+ -- ** Random Access
98 , length
99 , length
99 -- , (!!)
100 -- , (!!)
100
101
@@ -118,6 +119,20 @@ module Streamly.Memory.Array
118 -- , runStreamFold
119 -- , runStreamFold
119 , runFold
120 , runFold
120 -}
121 -}
122+
123+ -- * Streams of Arrays
124+ -- ** Creation
125+ , AS.arraysOf
126+
127+ -- ** Elimination
128+ , AS.flatten
129+ -- , AS.concatRev
130+ , AS.unlinesBy
131+ , AS.toArray
132+
133+ -- ** Transformation
134+ , AS.splitOn
135+ , AS.compact -- compact
121 )
136 )
122where
137where
123
138
@@ -136,6 +151,7 @@ import Streamly.Streams.StreamK.Type (IsStream)
136import Streamly.Fold.Types (Fold(..))
151import Streamly.Fold.Types (Fold(..))
137
152
138import qualified Streamly.Memory.Array.Types as A
153import qualified Streamly.Memory.Array.Types as A
154+import qualified Streamly.Memory.ArrayStream as AS
139import qualified Streamly.Streams.Prelude as P
155import qualified Streamly.Streams.Prelude as P
140import qualified Streamly.Streams.Serial as Serial
156import qualified Streamly.Streams.Serial as Serial
141import qualified Streamly.Streams.StreamD as D
157import qualified Streamly.Streams.StreamD as D
src/Streamly/Prelude/Internal.hs+2−2
@@ -379,7 +379,7 @@ import qualified System.IO as IO
379
379
380import Streamly.Enumeration (Enumerable(..), enumerate, enumerateTo)
380import Streamly.Enumeration (Enumerable(..), enumerate, enumerateTo)
381import Streamly.Fold.Types (Fold (..))
381import Streamly.Fold.Types (Fold (..))
382−import Streamly.Memory.Array (Array)
382+import Streamly.Memory.Array.Types (Array)
383-- import Streamly.Memory.Ring (Ring)
383-- import Streamly.Memory.Ring (Ring)
384import Streamly.SVar (MonadAsync, defState)
384import Streamly.SVar (MonadAsync, defState)
385import Streamly.Streams.Async (mkAsync')
385import Streamly.Streams.Async (mkAsync')
@@ -396,7 +396,7 @@ import Streamly.Time.Units
396
396
397import Streamly.Strict
397import Streamly.Strict
398
398
399−import qualified Streamly.Memory.Array as A
399+import qualified Streamly.Memory.Array.Types as A
400import qualified Streamly.Fold as FL
400import qualified Streamly.Fold as FL
401import qualified Streamly.Fold.Types as FL
401import qualified Streamly.Fold.Types as FL
402import qualified Streamly.Streams.Prelude as P
402import qualified Streamly.Streams.Prelude as P
streamly.cabal+1−1
@@ -214,6 +214,7 @@ library
214 , Streamly.Pipe.Types
214 , Streamly.Pipe.Types
215 , Streamly.Pipe
215 , Streamly.Pipe
216
216
217+ , Streamly.Memory.ArrayStream
217 , Streamly.Prelude.Internal
218 , Streamly.Prelude.Internal
218 , Streamly.FileSystem.IOVec
219 , Streamly.FileSystem.IOVec
219 , Streamly.FileSystem.FDIO
220 , Streamly.FileSystem.FDIO
@@ -234,7 +235,6 @@ library
234
235
235 -- IO devices
236 -- IO devices
236 , Streamly.Memory.Array
237 , Streamly.Memory.Array
237− , Streamly.Memory.ArrayStream
238 , Streamly.FileSystem.Handle
238 , Streamly.FileSystem.Handle
239
239
240 , Streamly.Tutorial
240 , Streamly.Tutorial
test/Arrays.hs+3−4
@@ -12,7 +12,6 @@ import Test.QuickCheck.Monadic (monadicIO, assert)
12import Test.Hspec as H
12import Test.Hspec as H
13
13
14import qualified Streamly.Memory.Array as A
14import qualified Streamly.Memory.Array as A
15−import qualified Streamly.Memory.ArrayStream as AS
16import qualified Streamly.Prelude as S
15import qualified Streamly.Prelude as S
17
16
18-- Coverage build takes too long with default number of tests
17-- Coverage build takes too long with default number of tests
@@ -75,7 +74,7 @@ testArraysOf =
75 monadicIO $ do
74 monadicIO $ do
76 xs <- S.toList
75 xs <- S.toList
77 $ S.concatMap A.read
76 $ S.concatMap A.read
78− $ AS.arraysOf 240
77+ $ A.arraysOf 240
79 $ S.fromList list
78 $ S.fromList list
80 assert (xs == list)
79 assert (xs == list)
81
80
@@ -85,8 +84,8 @@ testFlattenArrays =
85 forAll (vectorOf len (arbitrary :: Gen Int)) $ \list ->
84 forAll (vectorOf len (arbitrary :: Gen Int)) $ \list ->
86 monadicIO $ do
85 monadicIO $ do
87 xs <- S.toList
86 xs <- S.toList
88− $ AS.flatten
87+ $ A.flatten
89− $ AS.arraysOf 240
88+ $ A.arraysOf 240
90 $ S.fromList list
89 $ S.fromList list
91 assert (xs == list)
90 assert (xs == list)
92
91
test/String.hs+1−2
@@ -13,7 +13,6 @@ import Test.QuickCheck.Monadic (run, monadicIO, assert)
13import Test.Hspec as H
13import Test.Hspec as H
14
14
15import qualified Streamly.Memory.Array as A
15import qualified Streamly.Memory.Array as A
16−import qualified Streamly.Memory.ArrayStream as AS
17import qualified Streamly.Prelude as S
16import qualified Streamly.Prelude as S
18import qualified Streamly.Data.String as SS
17import qualified Streamly.Data.String as SS
19
18
@@ -58,7 +57,7 @@ testLinesArray =
58 monadicIO $ do
57 monadicIO $ do
59 xs <- S.toList
58 xs <- S.toList
60 $ S.map A.toList
59 $ S.map A.toList
61− $ AS.splitOn 10
60+ $ A.splitOn 10
62 $ S.yield (A.fromList list)
61 $ S.yield (A.fromList list)
63 assert (xs == map (map (fromIntegral . ord))
62 assert (xs == map (map (fromIntegral . ord))
64 (lines (map (chr . fromIntegral) list)))
63 (lines (map (chr . fromIntegral) list)))