@@ -15,7 +15,7 @@ import System.Process.Typed (shell, runProcess_)
15import Data.IORef
15import Data.IORef
16import Gauge
16import Gauge
18−import qualified Streamly.FileSystem.File as File
18+import qualified Streamly.FileSystem.Handle as FH
19import qualified Streamly.Mem.Array as A
19import qualified Streamly.Mem.Array as A
20import qualified Streamly.Prelude as S
20import qualified Streamly.Prelude as S
@@ -91,7 +91,7 @@ main = do
91 [ bgroup "readArray"
91 [ bgroup "readArray"
92 [ mkBench "last" href $ do
92 [ mkBench "last" href $ do
93 Handles inh _ <- readIORef href
93 Handles inh _ <- readIORef href
94− let s = File.readArrays inh
94+ let s = FH.readArrays inh
95 larr <- S.last s
95 larr <- S.last s
96 return $ case larr of
96 return $ case larr of
97 Nothing -> Nothing
97 Nothing -> Nothing
@@ -101,53 +101,53 @@ main = do
101 -- and counting characters.
101 -- and counting characters.
102 , mkBench "length (bytecount)" href $ do
102 , mkBench "length (bytecount)" href $ do
103 Handles inh _ <- readIORef href
103 Handles inh _ <- readIORef href
104− let s = File.readArrays inh
104+ let s = FH.readArrays inh
105 S.sum (S.map A.length s)
105 S.sum (S.map A.length s)
106 , mkBench "sum" href $ do
106 , mkBench "sum" href $ do
107 let foldlArr' f z = runIdentity . S.foldl' f z . A.read
107 let foldlArr' f z = runIdentity . S.foldl' f z . A.read
108 Handles inh _ <- readIORef href
108 Handles inh _ <- readIORef href
109− let s = File.readArrays inh
109+ let s = FH.readArrays inh
110 S.foldl' (\acc arr -> acc + foldlArr' (+) 0 arr) 0 s
110 S.foldl' (\acc arr -> acc + foldlArr' (+) 0 arr) 0 s
112 , bgroup "readStream"
112 , bgroup "readStream"
113 [ mkBench "last" href $ do
113 [ mkBench "last" href $ do
114 Handles inh _ <- readIORef href
114 Handles inh _ <- readIORef href
115− S.last $ File.read inh
115+ S.last $ FH.read inh
116 , mkBench "length (bytecount)" href $ do
116 , mkBench "length (bytecount)" href $ do
117 Handles inh _ <- readIORef href
117 Handles inh _ <- readIORef href
118− S.length $ File.read inh
118+ S.length $ FH.read inh
119 , mkBench "sum" href $ do
119 , mkBench "sum" href $ do
120 Handles inh _ <- readIORef href
120 Handles inh _ <- readIORef href
121− S.sum $ File.read inh
121+ S.sum $ FH.read inh
123 , bgroup "copyArray"
123 , bgroup "copyArray"
124 [ mkBench "copy" href $ do
124 [ mkBench "copy" href $ do
125 Handles inh outh <- readIORef href
125 Handles inh outh <- readIORef href
126− let s = File.readArrays inh
126+ let s = FH.readArrays inh
127− File.writeArrays outh s
127+ FH.writeArrays outh s
129#ifdef DEVBUILD
129#ifdef DEVBUILD
130 -- This takes a little longer therefore put under the dev conditional
130 -- This takes a little longer therefore put under the dev conditional
131 , bgroup "copyStream"
131 , bgroup "copyStream"
132 [ mkBench "fromToHandle" href $ do
132 [ mkBench "fromToHandle" href $ do
133 Handles inh outh <- readIORef href
133 Handles inh outh <- readIORef href
134− File.write outh (File.read inh)
134+ FH.write outh (FH.read inh)
136 , bgroup "grouping"
136 , bgroup "grouping"
137 [ mkBench "chunksOf 1 (toArray)" href $ do
137 [ mkBench "chunksOf 1 (toArray)" href $ do
138 Handles inh _ <- readIORef href
138 Handles inh _ <- readIORef href
139 S.length $ FL.chunksOf fileSize (A.toArrayN fileSize)
139 S.length $ FL.chunksOf fileSize (A.toArrayN fileSize)
140− (File.read inh)
140+ (FH.read inh)
142 , mkBench "chunksOf 1" href $ do
142 , mkBench "chunksOf 1" href $ do
143 Handles inh _ <- readIORef href
143 Handles inh _ <- readIORef href
144− S.length $ FL.chunksOf 1 FL.drain (File.read inh)
144+ S.length $ FL.chunksOf 1 FL.drain (FH.read inh)
145 , mkBench "chunksOf 10" href $ do
145 , mkBench "chunksOf 10" href $ do
146 Handles inh _ <- readIORef href
146 Handles inh _ <- readIORef href
147− S.length $ FL.chunksOf 10 FL.drain (File.read inh)
147+ S.length $ FL.chunksOf 10 FL.drain (FH.read inh)
148 , mkBench "chunksOf 1000" href $ do
148 , mkBench "chunksOf 1000" href $ do
149 Handles inh _ <- readIORef href
149 Handles inh _ <- readIORef href
150− S.length $ FL.chunksOf 1000 FL.drain (File.read inh)
150+ S.length $ FL.chunksOf 1000 FL.drain (FH.read inh)
153 , let lf = fromIntegral (ord '\n')
153 , let lf = fromIntegral (ord '\n')
@@ -158,66 +158,66 @@ main = do
158 [ bgroup "predicate"
158 [ bgroup "predicate"
159 [ mkBenchText "splitBy \\n (line count)" inText $ do
159 [ mkBenchText "splitBy \\n (line count)" inText $ do
160 (S.length $ FL.splitBy (== lf) FL.drain
160 (S.length $ FL.splitBy (== lf) FL.drain
161− $ File.read inText) >>= print
161+ $ FH.read inText) >>= print
162 , mkBenchText "splitSuffixBy \\n (line count)" inText $ do
162 , mkBenchText "splitSuffixBy \\n (line count)" inText $ do
163 (S.length $ FL.splitSuffixBy (== lf) FL.drain
163 (S.length $ FL.splitSuffixBy (== lf) FL.drain
164− $ File.read inText) >>= print
164+ $ FH.read inText) >>= print
165 , mkBenchText "wordsBy isSpace (word count)" inText $ do
165 , mkBenchText "wordsBy isSpace (word count)" inText $ do
166 (S.length $ FL.wordsBy isSp FL.drain
166 (S.length $ FL.wordsBy isSp FL.drain
167− $ File.read inText) >>= print
167+ $ FH.read inText) >>= print
170 , bgroup "empty-pattern"
170 , bgroup "empty-pattern"
171 [ mkBenchText "splitOn \"\"" inText $ do
171 [ mkBenchText "splitOn \"\"" inText $ do
172 (S.length $ FL.splitOn (A.fromList []) FL.drain
172 (S.length $ FL.splitOn (A.fromList []) FL.drain
173− $ File.read inText) >>= print
173+ $ FH.read inText) >>= print
174 , mkBenchText "splitSuffixOn \"\"" inText $ do
174 , mkBenchText "splitSuffixOn \"\"" inText $ do
175 (S.length $ FL.splitSuffixOn (A.fromList []) FL.drain
175 (S.length $ FL.splitSuffixOn (A.fromList []) FL.drain
176− $ File.read inText) >>= print
176+ $ FH.read inText) >>= print
178 , bgroup "short-pattern"
178 , bgroup "short-pattern"
179 [ mkBenchText "splitOn \\n (line count)" inText $ do
179 [ mkBenchText "splitOn \\n (line count)" inText $ do
180 (S.length $ FL.splitOn lfarr FL.drain
180 (S.length $ FL.splitOn lfarr FL.drain
181− $ File.read inText) >>= print
181+ $ FH.read inText) >>= print
182 , mkBenchText "splitSuffixOn \\n (line count)" inText $ do
182 , mkBenchText "splitSuffixOn \\n (line count)" inText $ do
183 (S.length $ FL.splitSuffixOn lfarr FL.drain
183 (S.length $ FL.splitSuffixOn lfarr FL.drain
184− $ File.read inText) >>= print
184+ $ FH.read inText) >>= print
185 , mkBenchText "splitOn a" inText $ do
185 , mkBenchText "splitOn a" inText $ do
186 (S.length $ FL.splitOn (toarr "a") FL.drain
186 (S.length $ FL.splitOn (toarr "a") FL.drain
187− $ File.read inText) >>= print
187+ $ FH.read inText) >>= print
188 , mkBenchText "splitOn \\r\\n" inText $ do
188 , mkBenchText "splitOn \\r\\n" inText $ do
189 (S.length $ FL.splitOn (toarr "\r\n") FL.drain
189 (S.length $ FL.splitOn (toarr "\r\n") FL.drain
190− $ File.read inText) >>= print
190+ $ FH.read inText) >>= print
191 , mkBenchText "splitSuffixOn \\r\\n)" inText $ do
191 , mkBenchText "splitSuffixOn \\r\\n)" inText $ do
192 (S.length $ FL.splitSuffixOn (toarr "\r\n") FL.drain
192 (S.length $ FL.splitSuffixOn (toarr "\r\n") FL.drain
193− $ File.read inText) >>= print
193+ $ FH.read inText) >>= print
194 , mkBenchText "splitOn aa" inText $ do
194 , mkBenchText "splitOn aa" inText $ do
195 (S.length $ FL.splitOn (toarr "aa") FL.drain
195 (S.length $ FL.splitOn (toarr "aa") FL.drain
196− $ File.read inText) >>= print
196+ $ FH.read inText) >>= print
197 , mkBenchText "splitOn aaaa" inText $ do
197 , mkBenchText "splitOn aaaa" inText $ do
198 (S.length $ FL.splitOn (toarr "aaaa") FL.drain
198 (S.length $ FL.splitOn (toarr "aaaa") FL.drain
199− $ File.read inText) >>= print
199+ $ FH.read inText) >>= print
200 , mkBenchText "splitOn abcdefgh" inText $ do
200 , mkBenchText "splitOn abcdefgh" inText $ do
201 (S.length $ FL.splitOn (toarr "abcdefgh") FL.drain
201 (S.length $ FL.splitOn (toarr "abcdefgh") FL.drain
202− $ File.read inText) >>= print
202+ $ FH.read inText) >>= print
204 , bgroup "long-pattern"
204 , bgroup "long-pattern"
205 [ mkBenchText "splitOn abcdefghi" inText $ do
205 [ mkBenchText "splitOn abcdefghi" inText $ do
206 (S.length $ FL.splitOn (toarr "abcdefghi") FL.drain
206 (S.length $ FL.splitOn (toarr "abcdefghi") FL.drain
207− $ File.read inText) >>= print
207+ $ FH.read inText) >>= print
208 , mkBenchText "splitOn catcatcatcatcat" inText $ do
208 , mkBenchText "splitOn catcatcatcatcat" inText $ do
209 (S.length $ FL.splitOn (toarr "catcatcatcatcat") FL.drain
209 (S.length $ FL.splitOn (toarr "catcatcatcatcat") FL.drain
210− $ File.read inText) >>= print
210+ $ FH.read inText) >>= print
211 , mkBenchText "splitOn abc...xyz" inText $ do
211 , mkBenchText "splitOn abc...xyz" inText $ do
212 (S.length $ FL.splitOn
212 (S.length $ FL.splitOn
213 (toarr "abcdefghijklmnopqrstuvwxyz")
213 (toarr "abcdefghijklmnopqrstuvwxyz")
215− $ File.read inText) >>= print
215+ $ FH.read inText) >>= print
216 , mkBenchText "splitSuffixOn abc...xyz" inText $ do
216 , mkBenchText "splitSuffixOn abc...xyz" inText $ do
217 (S.length $ FL.splitSuffixOn
217 (S.length $ FL.splitSuffixOn
218 (toarr "abcdefghijklmnopqrstuvwxyz")
218 (toarr "abcdefghijklmnopqrstuvwxyz")
220− $ File.read inText) >>= print
220+ $ FH.read inText) >>= print