@@ -1,3 +1,5 @@
1module Main where
3module Main where
3import Control.Applicative (Alternative(..))
5import Control.Applicative (Alternative(..))
@@ -13,8 +15,10 @@ import qualified Asyncly as A
13import qualified Conduit.Simple as S
15import qualified Conduit.Simple as S
14import qualified Control.Monad.Logic as LG
16import qualified Control.Monad.Logic as LG
15import qualified Data.Machine as M
17import qualified Data.Machine as M
18+#if MIN_VERSION_transient(0,5,1)
16import qualified Transient.Internals as T
19import qualified Transient.Internals as T
17import qualified Transient.Indeterminism as T
20import qualified Transient.Indeterminism as T
18import qualified ListT as LT
22import qualified ListT as LT
20main :: IO ()
24main :: IO ()
@@ -29,8 +33,10 @@ main = do
29 , bench "asyncly-interleaved-nil" $ nfIO (asyncly_nil (A.<=>))
33 , bench "asyncly-interleaved-nil" $ nfIO (asyncly_nil (A.<=>))
30 , bench "asyncly-parleft-nil" $ nfIO (asyncly_nil (A.<|))
34 , bench "asyncly-parleft-nil" $ nfIO (asyncly_nil (A.<|))
31 , bench "asyncly-parinterleaved-nil" $ nfIO (asyncly_nil (A.<|>))
35 , bench "asyncly-parinterleaved-nil" $ nfIO (asyncly_nil (A.<|>))
36+#if MIN_VERSION_transient(0,5,1)
32 , bench "transient" $ nfIO transient_basic
37 , bench "transient" $ nfIO transient_basic
33 , bench "transient-nil" $ nfIO transient_nil
38 , bench "transient-nil" $ nfIO transient_nil
34 , bench "logict" $ nfIO logict_basic
40 , bench "logict" $ nfIO logict_basic
35 , bench "list-t" $ nfIO list_t_basic
41 , bench "list-t" $ nfIO list_t_basic
36 , bench "simple-conduit" $ nfIO simple_conduit_basic
42 , bench "simple-conduit" $ nfIO simple_conduit_basic
@@ -58,6 +64,7 @@ drop num x = do
67+#if MIN_VERSION_transient(0,5,1)
61tmap :: (a -> Int) -> a -> T.TransIO Int
68tmap :: (a -> Int) -> a -> T.TransIO Int
62tmap = Main.map
69tmap = Main.map
@@ -68,6 +75,7 @@ tdrop :: Int -> Int -> T.TransIO Int
68tdrop = Main.drop
75tdrop = Main.drop
70transient_basic :: IO (Maybe Int)
77transient_basic :: IO (Maybe Int)
71transient_basic = T.keep' $ T.threads 0 $ do
79transient_basic = T.keep' $ T.threads 0 $ do
72 liftIO $ writeIORef count 0
80 liftIO $ writeIORef count 0
73 xs <- T.group 49900 $ do
81 xs <- T.group 49900 $ do
@@ -87,6 +95,7 @@ transient_nil = T.keep' $ T.threads 0 $ do
87 T.choose [1..100000 :: Int]
95 T.choose [1..100000 :: Int]
88 assert (Prelude.length xs == 49900) $
96 assert (Prelude.length xs == 49900) $
89 T.exit (Prelude.length xs)
97 T.exit (Prelude.length xs)
91amap :: (Int -> Int) -> Int -> A.AsyncT IO Int
100amap :: (Int -> Int) -> Int -> A.AsyncT IO Int
92amap = Main.map
101amap = Main.map