gambler 0.0.0.0 → 0.0.0.1
raw patch · 3 files changed
+9/−88 lines, 3 filesdep −criterionPVP ok
version bump matches the API change (PVP)
Dependencies removed: criterion
API changes (from Hackage documentation)
Files
- benchmark/Main.hs +0/−73
- changelog.md +7/−1
- gambler.cabal +2/−14
− benchmark/Main.hs
@@ -1,73 +0,0 @@-module Main (main) where--import Criterion.Main--import Data.Functor ((<$>))-import Control.Applicative (pure, (<*>))-import Data.Function ((.), ($))-import Data.Int (Int)-import Prelude ((+), Num)-import System.IO (IO)--import qualified Data.List as List-import qualified Prelude-import qualified Data.Foldable as Foldable--import qualified Fold.Pure-import qualified Fold.Effectful--main :: IO ()-main = defaultMain- [ env (pure [1..10000 :: Int]) $ \ns ->- bgroup "[1..10000 :: Int]"- [ bgroup "sum" $ List.map ($ ns)- [ bench "Fold.Pure.run sum" .- whnf (Fold.Pure.run Fold.Pure.sum)- , bench "Fold.Effectful.run (fold sum)" .- whnfIO . Fold.Effectful.run (Fold.Effectful.fold Fold.Pure.sum)- , bench "Prelude.sum" .- whnf Prelude.sum- , bench "Data.List.foldl' (+) 0" .- whnf (List.foldl' (+) 0)- ]- , bgroup "length" $ List.map ($ ns)- [ bench "Fold.Pure.run length" .- whnf (Fold.Pure.run Fold.Pure.length)- , bench "Fold.Effectful.run (generalize length)" .- whnfIO . Fold.Effectful.run (Fold.Effectful.fold Fold.Pure.length)- , bench "Prelude.length" .- whnf Prelude.length- ]- , bgroup "sumAndLength" $ List.map ($ ns)- [ bench "naive sumAndLength" .- nf sumAndLength- , bench "foldl' sumAndLength" .- nf sumAndLength'- , bench "strict pair sumAndLength" .- nf sumAndLength_Pair- , bench "foldl sumAndLength" .- nf sumAndLength_foldl- ]- ]- ]---sumAndLength :: Num a => [a] -> (a, Int)-sumAndLength xs = (Prelude.sum xs, Prelude.length xs)--sumAndLength' :: Num a => [a] -> (a, Int)-sumAndLength' xs = Foldable.foldl' step (0, 0) xs- where- step (x, y) n = (x + n, y + 1)--data Pair a b = Pair !a !b--sumAndLength_Pair :: Num a => [a] -> (a, Int)-sumAndLength_Pair xs = done (Foldable.foldl' step (Pair 0 0) xs)- where- step (Pair x y) n = Pair (x + n) (y + 1)-- done (Pair x y) = (x, y)--sumAndLength_foldl :: Num a => [a] -> (a, Int)-sumAndLength_foldl = Fold.Pure.run ((,) <$> Fold.Pure.sum <*> Fold.Pure.length)
changelog.md view
@@ -1,1 +1,7 @@-0.0.0.0 - Initial release+## 0.0.0.1 (2023-02-17)++Remove benchmark, which was broken++## 0.0.0.0 (2023-01-07)++Initial release
gambler.cabal view
@@ -1,7 +1,7 @@ cabal-version: 3.0 name: gambler-version: 0.0.0.0+version: 0.0.0.1 category: Streaming synopsis: Composable, streaming, and efficient left folds@@ -80,16 +80,4 @@ OverloadedLists build-depends: , gambler- , hspec ^>= 2.10--benchmark benchmark-gambler- import: base- hs-source-dirs: benchmark- type: exitcode-stdio-1.0- main-is: Main.hs- build-depends:- , criterion ^>= 1.6- , gambler- ghc-options:- -rtsopts- -with-rtsopts=-T+ , hspec ^>= 2.8.5 || ^>= 2.9 || ^>= 2.10