@@ -21,28 +21,29 @@
21module Main (main) where
21module Main (main) where
23import Control.DeepSeq (NFData(..))
23import Control.DeepSeq (NFData(..))
24−import System.Random (randomRIO)
24+import Control.Exception (SomeException)
25+import System.IO (Handle, hClose)
25import Streamly.Internal.Data.Unfold (Unfold)
26import Streamly.Internal.Data.Unfold (Unfold)
27+import System.Random (randomRIO)
27import qualified Prelude
29import qualified Prelude
30+import qualified Streamly.Benchmark.Data.NestedUnfoldOps as Nested
31+import qualified Streamly.FileSystem.Handle as FH
28import qualified Streamly.Internal.Data.Fold as FL
32import qualified Streamly.Internal.Data.Fold as FL
29import qualified Streamly.Internal.Data.Unfold as UF
33import qualified Streamly.Internal.Data.Unfold as UF
30import qualified Streamly.Internal.Data.Stream.IsStream as S
34import qualified Streamly.Internal.Data.Stream.IsStream as S
31import qualified Streamly.Internal.Data.Stream.StreamD as D
35import qualified Streamly.Internal.Data.Stream.StreamD as D
32import qualified Streamly.Internal.Data.Stream.StreamK as K
36import qualified Streamly.Internal.Data.Stream.StreamK as K
33−import qualified Streamly.Benchmark.Data.NestedUnfoldOps as Nested
35−-- For Unfold Exception Benchmarks
36−import qualified Streamly.FileSystem.Handle as FH
37−import qualified Streamly.Internal.Data.Unfold as IUF
38import qualified Streamly.Prelude as SP
37import qualified Streamly.Prelude as SP
39−import Streamly.Benchmark.CommonH
40−import System.IO (Handle, hClose)
41−import Control.Exception (SomeException)
43−import Streamly.Benchmark.Common
44import Gauge hiding (env)
39import Gauge hiding (env)
45import Prelude hiding (concat, take, filter, zipWith, map, mapM, takeWhile)
40import Prelude hiding (concat, take, filter, zipWith, map, mapM, takeWhile)
41+import Streamly.Benchmark.Common
42+import Streamly.Benchmark.CommonH
45+import Test.Inspection
47{-# INLINE benchIO #-}
48{-# INLINE benchIO #-}
48benchIO :: (NFData b) => String -> (Int -> IO b) -> Benchmark
49benchIO :: (NFData b) => String -> (Int -> IO b) -> Benchmark
@@ -428,7 +429,6 @@ _apDiscardFst = undefined
428_apDiscardSnd :: Int -> Int -> m ()
429_apDiscardSnd :: Int -> Int -> m ()
429_apDiscardSnd = undefined
430_apDiscardSnd = undefined
432-------------------------------------------------------------------------------
432-------------------------------------------------------------------------------
433-- Benchmarks
433-- Benchmarks
434-------------------------------------------------------------------------------
434-------------------------------------------------------------------------------
@@ -558,7 +558,7 @@ o_n_space_nested size =
558-- | Send the file contents to /dev/null with exception handling
558-- | Send the file contents to /dev/null with exception handling
559readWriteOnExceptionUnfold :: Handle -> Handle -> IO ()
559readWriteOnExceptionUnfold :: Handle -> Handle -> IO ()
560readWriteOnExceptionUnfold inh devNull =
560readWriteOnExceptionUnfold inh devNull =
561− let readEx = IUF.onException (\_ -> hClose inh) FH.read
561+ let readEx = UF.onException (\_ -> hClose inh) FH.read
562 in SP.fold (FH.write devNull) $ SP.unfold readEx inh
562 in SP.fold (FH.write devNull) $ SP.unfold readEx inh
564#ifdef INSPECTION
564#ifdef INSPECTION
@@ -570,7 +570,7 @@ inspect $ hasNoTypeClasses 'readWriteOnExceptionUnfold
570readWriteHandleExceptionUnfold :: Handle -> Handle -> IO ()
570readWriteHandleExceptionUnfold :: Handle -> Handle -> IO ()
571readWriteHandleExceptionUnfold inh devNull =
571readWriteHandleExceptionUnfold inh devNull =
572 let handler (_e :: SomeException) = hClose inh >> return 10
572 let handler (_e :: SomeException) = hClose inh >> return 10
573− readEx = IUF.handle (IUF.singletonM handler) FH.read
573+ readEx = UF.handle (UF.singletonM handler) FH.read
574 in SP.fold (FH.write devNull) $ SP.unfold readEx inh
574 in SP.fold (FH.write devNull) $ SP.unfold readEx inh
576#ifdef INSPECTION
576#ifdef INSPECTION
@@ -581,7 +581,7 @@ inspect $ hasNoTypeClasses 'readWriteHandleExceptionUnfold
581-- | Send the file contents to /dev/null with exception handling
581-- | Send the file contents to /dev/null with exception handling
582readWriteFinally_Unfold :: Handle -> Handle -> IO ()
582readWriteFinally_Unfold :: Handle -> Handle -> IO ()
583readWriteFinally_Unfold inh devNull =
583readWriteFinally_Unfold inh devNull =
584− let readEx = IUF.finally_ (\_ -> hClose inh) FH.read
584+ let readEx = UF.finally_ (\_ -> hClose inh) FH.read
585 in SP.fold (FH.write devNull) $ SP.unfold readEx inh
585 in SP.fold (FH.write devNull) $ SP.unfold readEx inh
587#ifdef INSPECTION
587#ifdef INSPECTION
@@ -591,13 +591,13 @@ inspect $ hasNoTypeClasses 'readWriteFinally_Unfold
592readWriteFinallyUnfold :: Handle -> Handle -> IO ()
592readWriteFinallyUnfold :: Handle -> Handle -> IO ()
593readWriteFinallyUnfold inh devNull =
593readWriteFinallyUnfold inh devNull =
594− let readEx = IUF.finally (\_ -> hClose inh) FH.read
594+ let readEx = UF.finally (\_ -> hClose inh) FH.read
595 in SP.fold (FH.write devNull) $ SP.unfold readEx inh
595 in SP.fold (FH.write devNull) $ SP.unfold readEx inh
597-- | Send the file contents to /dev/null with exception handling
597-- | Send the file contents to /dev/null with exception handling
598readWriteBracket_Unfold :: Handle -> Handle -> IO ()
598readWriteBracket_Unfold :: Handle -> Handle -> IO ()
599readWriteBracket_Unfold inh devNull =
599readWriteBracket_Unfold inh devNull =
600− let readEx = IUF.bracket_ return (\_ -> hClose inh) FH.read
600+ let readEx = UF.bracket_ return (\_ -> hClose inh) FH.read
601 in SP.fold (FH.write devNull) $ SP.unfold readEx inh
601 in SP.fold (FH.write devNull) $ SP.unfold readEx inh
603#ifdef INSPECTION
603#ifdef INSPECTION
@@ -607,7 +607,7 @@ inspect $ hasNoTypeClasses 'readWriteBracket_Unfold
608readWriteBracketUnfold :: Handle -> Handle -> IO ()
608readWriteBracketUnfold :: Handle -> Handle -> IO ()
609readWriteBracketUnfold inh devNull =
609readWriteBracketUnfold inh devNull =
610− let readEx = IUF.bracket return (\_ -> hClose inh) FH.read
610+ let readEx = UF.bracket return (\_ -> hClose inh) FH.read
611 in SP.fold (FH.write devNull) $ S.unfold readEx inh
611 in SP.fold (FH.write devNull) $ S.unfold readEx inh
613o_1_space_copy_read_exceptions :: BenchEnv -> [Benchmark]
613o_1_space_copy_read_exceptions :: BenchEnv -> [Benchmark]
@@ -651,9 +651,6 @@ main = do
651 , o_1_space_filtering size
651 , o_1_space_filtering size
652 , o_1_space_zip size
652 , o_1_space_zip size
653 , o_1_space_nested size
653 , o_1_space_nested size
654− -- I have to pass BenchEnv instead of size here
656− -- , o_1_space_copy_read_exceptions env
658 , bgroup (o_n_space_prefix moduleName)
655 , bgroup (o_n_space_prefix moduleName)
659 $ Prelude.concat [o_n_space_nested size]
656 $ Prelude.concat [o_n_space_nested size]