@@ -156,6 +156,12 @@ splitOnSuffixSeq str inh =
156-- inspect $ 'splitOnSuffixSeq `hasNoType` ''Step
156-- inspect $ 'splitOnSuffixSeq `hasNoType` ''Step
159+-- | Split on suffix sequence.
160+splitWithSuffixSeq :: String -> Handle -> IO Int
161+splitWithSuffixSeq str inh =
162+ S.length $ IP.splitWithSuffixSeq (toarr str) FL.drain
163+ $ S.unfold FH.read inh -- >>= print
159o_1_space_reduce_read_split :: BenchEnv -> [Benchmark]
165o_1_space_reduce_read_split :: BenchEnv -> [Benchmark]
160o_1_space_reduce_read_split env =
166o_1_space_reduce_read_split env =
161 [ bgroup "split"
167 [ bgroup "split"
@@ -185,6 +191,8 @@ o_1_space_reduce_read_split env =
185 splitOnSeq "\r\n" inh
191 splitOnSeq "\r\n" inh
186 , mkBench "S.splitOnSuffixSeq \"\\r\\n\" FL.drain" env $ \inh _ ->
192 , mkBench "S.splitOnSuffixSeq \"\\r\\n\" FL.drain" env $ \inh _ ->
187 splitOnSuffixSeq "\r\n" inh
193 splitOnSuffixSeq "\r\n" inh
194+ , mkBench "S.splitWithSuffixSeq \"\\r\\n\" FL.drain" env $ \inh _ ->
195+ splitWithSuffixSeq "\r\n" inh
188 , mkBench "S.splitOnSeq \"aa\" FL.drain" env $ \inh _ ->
196 , mkBench "S.splitOnSeq \"aa\" FL.drain" env $ \inh _ ->
189 splitOnSeq "aa" inh
197 splitOnSeq "aa" inh
190 , mkBench "S.splitOnSeq \"aaaa\" FL.drain" env $ \inh _ ->
198 , mkBench "S.splitOnSeq \"aaaa\" FL.drain" env $ \inh _ ->
@@ -201,6 +209,8 @@ o_1_space_reduce_read_split env =
201 env $ \inh _ -> splitOnSeq100k inh
209 env $ \inh _ -> splitOnSeq100k inh
202 , mkBenchSmall "S.splitOnSuffixSeq \"abcdefghijklmnopqrstuvwxyz\" FL.drain"
210 , mkBenchSmall "S.splitOnSuffixSeq \"abcdefghijklmnopqrstuvwxyz\" FL.drain"
203 env $ \inh _ -> splitOnSuffixSeq "abcdefghijklmnopqrstuvwxyz" inh
211 env $ \inh _ -> splitOnSuffixSeq "abcdefghijklmnopqrstuvwxyz" inh
212+ , mkBenchSmall "S.splitWithSuffixSeq \"abcdefghijklmnopqrstuvwxyz\" FL.drain"
213+ env $ \inh _ -> splitWithSuffixSeq "abcdefghijklmnopqrstuvwxyz" inh