on master help sign in
Reorder benchmarks wrt the export structure in Internal.Unfold
9018907adithyaov
benchmark/Streamly/Benchmark/Data/Unfold.hs+27−27
@@ -193,6 +193,11 @@ unfoldrM size start = drainGeneration (UF.unfoldrM step) start
193fromList :: Monad m => Int -> Int -> m ()
193fromList :: Monad m => Int -> Int -> m ()
194fromList size start = drainGeneration UF.fromList [start .. start + size]
194fromList size start = drainGeneration UF.fromList [start .. start + size]
195
195
196+{-# INLINE fromListM #-}
197+fromListM :: Monad m => Int -> Int -> m ()
198+fromListM size start =
199+ drainGeneration UF.fromListM (Prelude.map return [start .. start + size])
200+
196{-# INLINE _fromSVar #-}
201{-# INLINE _fromSVar #-}
197_fromSVar :: Int -> Int -> m ()
202_fromSVar :: Int -> Int -> m ()
198_fromSVar = undefined
203_fromSVar = undefined
@@ -201,11 +206,6 @@ _fromSVar = undefined
201_fromProducer :: Int -> Int -> m ()
206_fromProducer :: Int -> Int -> m ()
202_fromProducer = undefined
207_fromProducer = undefined
203
208
204−{-# INLINE fromListM #-}
205−fromListM :: Monad m => Int -> Int -> m ()
206−fromListM size start =
207− drainGeneration UF.fromListM (Prelude.map return [start .. start + size])
208−
209{-# INLINE replicateM #-}
209{-# INLINE replicateM #-}
210replicateM :: Monad m => Int -> Int -> m ()
210replicateM :: Monad m => Int -> Int -> m ()
211replicateM size start = drainGeneration (UF.replicateM size) (return start)
211replicateM size start = drainGeneration (UF.replicateM size) (return start)
@@ -277,6 +277,14 @@ mapMWithInput size start =
277 (UF.mapMWithInput (\a b -> return $ a + b))
277 (UF.mapMWithInput (\a b -> return $ a + b))
278 start
278 start
279
279
280+{-# INLINE takeWhileM #-}
281+takeWhileM :: Monad m => Int -> Int -> m ()
282+takeWhileM size start =
283+ drainTransformationDefault
284+ size
285+ (UF.takeWhileM (\b -> return (b <= size + start)))
286+ start
287+
280{-# INLINE takeWhile #-}
288{-# INLINE takeWhile #-}
281takeWhile :: Monad m => Int -> Int -> m ()
289takeWhile :: Monad m => Int -> Int -> m ()
282takeWhile size start =
290takeWhile size start =
@@ -285,6 +293,10 @@ takeWhile size start =
285 (UF.takeWhile (\b -> b <= size + start))
293 (UF.takeWhile (\b -> b <= size + start))
286 start
294 start
287
295
296+{-# INLINE take #-}
297+take :: Monad m => Int -> Int -> m ()
298+take size start = drainTransformationDefault size (UF.take size) start
299+
288{-# INLINE filter #-}
300{-# INLINE filter #-}
289filter :: Monad m => Int -> Int -> m ()
301filter :: Monad m => Int -> Int -> m ()
290filter size start =
302filter size start =
@@ -295,28 +307,6 @@ filterM :: Monad m => Int -> Int -> m ()
295filterM size start =
307filterM size start =
296 drainTransformationDefault size (UF.filterM (\_ -> (return True))) start
308 drainTransformationDefault size (UF.filterM (\_ -> (return True))) start
297
309
298−{-# INLINE dropWhileTrue #-}
299−dropWhileTrue :: Monad m => Int -> Int -> m ()
300−dropWhileTrue size start =
301− drainTransformationDefault size (UF.dropWhileM (\_ -> return True)) start
302−
303−{-# INLINE dropWhileFalse #-}
304−dropWhileFalse :: Monad m => Int -> Int -> m ()
305−dropWhileFalse size start =
306− drainTransformationDefault size (UF.dropWhileM (\_ -> return False)) start
307−
308−{-# INLINE take #-}
309−take :: Monad m => Int -> Int -> m ()
310−take size start = drainTransformationDefault size (UF.take size) start
311−
312−{-# INLINE takeWhileM #-}
313−takeWhileM :: Monad m => Int -> Int -> m ()
314−takeWhileM size start =
315− drainTransformationDefault
316− size
317− (UF.takeWhileM (\b -> return (b <= size + start)))
318− start
319−
320{-# INLINE _dropOne #-}
310{-# INLINE _dropOne #-}
321_dropOne :: Monad m => Int -> Int -> m ()
311_dropOne :: Monad m => Int -> Int -> m ()
322_dropOne size start =
312_dropOne size start =
@@ -327,6 +317,16 @@ dropAll :: Monad m => Int -> Int -> m ()
327dropAll size start =
317dropAll size start =
328 drainTransformationDefault size (UF.drop (size + 1)) start
318 drainTransformationDefault size (UF.drop (size + 1)) start
329
319
320+{-# INLINE dropWhileTrue #-}
321+dropWhileTrue :: Monad m => Int -> Int -> m ()
322+dropWhileTrue size start =
323+ drainTransformationDefault size (UF.dropWhileM (\_ -> return True)) start
324+
325+{-# INLINE dropWhileFalse #-}
326+dropWhileFalse :: Monad m => Int -> Int -> m ()
327+dropWhileFalse size start =
328+ drainTransformationDefault size (UF.dropWhileM (\_ -> return False)) start
329+
330{-# INLINE dropWhileMTrue #-}
330{-# INLINE dropWhileMTrue #-}
331dropWhileMTrue :: Monad m => Int -> Int -> m ()
331dropWhileMTrue :: Monad m => Int -> Int -> m ()
332dropWhileMTrue size start =
332dropWhileMTrue size start =