on master help sign in
Add simple conduit
e423770Harendra Kumar
asyncly.cabal+1
@@ -77,6 +77,7 @@ benchmark bench
77 , logict >= 0.6 && < 0.7
77 , logict >= 0.6 && < 0.7
78 , machines >= 0.6 && < 0.7
78 , machines >= 0.6 && < 0.7
79 , mtl >= 2.2 && < 3
79 , mtl >= 2.2 && < 3
80+ , simple-conduit >= 0.6 && < 0.7
80 , transient >= 0.5 && < 0.6
81 , transient >= 0.5 && < 0.6
81 default-language: Haskell2010
82 default-language: Haskell2010
82
83
benchmark/Main.hs+14
@@ -10,6 +10,7 @@ import Data.IORef (IORef, newIORef, writeIORef)
10import System.IO.Unsafe (unsafePerformIO)
10import System.IO.Unsafe (unsafePerformIO)
11
11
12import qualified Asyncly as A
12import qualified Asyncly as A
13+import qualified Conduit.Simple as S
13import qualified Control.Monad.Logic as LG
14import qualified Control.Monad.Logic as LG
14import qualified Data.Machine as M
15import qualified Data.Machine as M
15import qualified Transient.Internals as T
16import qualified Transient.Internals as T
@@ -32,6 +33,7 @@ main = do
32 , bench "transient-nil" $ nfIO transient_nil
33 , bench "transient-nil" $ nfIO transient_nil
33 , bench "logict" $ nfIO logict_basic
34 , bench "logict" $ nfIO logict_basic
34 , bench "list-t" $ nfIO list_t_basic
35 , bench "list-t" $ nfIO list_t_basic
36+ , bench "simple-conduit" $ nfIO simple_conduit_basic
35 , bench "machines" $ nfIO machines_basic
37 , bench "machines" $ nfIO machines_basic
36 ]
38 ]
37 ]
39 ]
@@ -166,6 +168,18 @@ logict_basic = do
166 assert (Prelude.length xs == 49900) $
168 assert (Prelude.length xs == 49900) $
167 return (Prelude.length xs)
169 return (Prelude.length xs)
168
170
171+simple_conduit_basic :: IO Int
172+simple_conduit_basic = do
173+ xs <- S.sourceList [1..100000]
174+ S.$= S.filterC even
175+ S.$= S.mapC ((+1) :: Int -> Int)
176+ S.$= S.dropC 100
177+ S.$= S.mapC ((+1) :: Int -> Int)
178+ S.$= S.filterC (\x -> x `mod` 2 == 0)
179+ S.$$ S.sinkList
180+ assert (Prelude.length xs == 49900) $
181+ return (Prelude.length (xs :: [Int]))
182+
169machines_basic :: IO Int
183machines_basic :: IO Int
170machines_basic = do
184machines_basic = do
171 xs <- M.runT $ M.source [1..100000]
185 xs <- M.runT $ M.source [1..100000]
stack.yaml+1
@@ -7,6 +7,7 @@ packages:
7 extra-dep: true
7 extra-dep: true
8extra-deps:
8extra-deps:
9 - lockfree-queue-0.2.3.1
9 - lockfree-queue-0.2.3.1
10+ - simple-conduit-0.6.0
10flags: {}
11flags: {}
11extra-package-dbs: []
12extra-package-dbs: []
12pvp-bounds: both
13pvp-bounds: both