@@ -11,7 +11,7 @@
1111
1212module Main (main) where
1313
14−import Control.DeepSeq (NFData(..))
14+import Control.DeepSeq (NFData(..), deepseq)
1515import System.Random (randomRIO)
1616
1717import qualified Streamly.Benchmark.Data.ArrayOps as Ops
@@ -48,6 +48,9 @@ benchIO' name src f = bench name $ nfIO $
4848benchIOSink :: NFData b => String -> (Ops.Stream Int -> IO b) -> Benchmark
4949benchIOSink name f = benchIO' name Ops.sourceIntFromTo f
5050
51+mkString :: String
52+mkString = "[1" ++ concat (replicate Ops.value ",1") ++ "]"
53+
5154main :: IO ()
5255main =
5356 defaultMain
@@ -60,15 +63,15 @@ main =
6063 , benchIOSrc "writeN . fromList" Ops.sourceFromList
6164 -- , benchPureSrc "writeN . IsList.fromList" Ops.sourceIsList
6265 -- , benchPureSrc "writeN . IsString.fromString" Ops.sourceIsString
63− -- , mkString `deepseq` (bench "read" $ nf Ops.readInstance mkString)
64− -- , benchPureSink "show" Ops.showInstance
66+ , mkString `deepseq` (bench "read" $ nf Ops.readInstance mkString)
67+ , benchPureSink "show" Ops.showInstance
6568 ]
6669 , bgroup "elimination"
6770 [ benchPureSink "id" id
68− -- , benchPureSink "==" Ops.eqInstance
69− -- , benchPureSink "/=" Ops.eqInstanceNotEq
70− -- , benchPureSink "<" Ops.ordInstance
71− -- , benchPureSink "min" Ops.ordInstanceMin
71+ , benchPureSink "==" Ops.eqInstance
72+ , benchPureSink "/=" Ops.eqInstanceNotEq
73+ , benchPureSink "<" Ops.ordInstance
74+ , benchPureSink "min" Ops.ordInstanceMin
7275 -- length is used to check for foldr/build fusion
7376 -- , benchPureSink "length . IsList.toList" (length . GHC.toList)
7477 , benchIOSink "foldl'" Ops.pureFoldl'