packages feed

criterion 1.5.2.0 → 1.5.3.0

raw patch · 6 files changed

+14/−19 lines, 6 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Criterion.Report: instance GHC.Exception.Exception Criterion.Report.TemplateException
+ Criterion.Report: instance GHC.Exception.Type.Exception Criterion.Report.TemplateException
- Criterion: env :: NFData env => IO env -> env -> Benchmark -> Benchmark
+ Criterion: env :: NFData env => IO env -> (env -> Benchmark) -> Benchmark
- Criterion: envWithCleanup :: NFData env => IO env -> env -> IO a -> env -> Benchmark -> Benchmark
+ Criterion: envWithCleanup :: NFData env => IO env -> (env -> IO a) -> (env -> Benchmark) -> Benchmark
- Criterion: nf :: NFData b => a -> b -> a -> Benchmarkable
+ Criterion: nf :: NFData b => (a -> b) -> a -> Benchmarkable
- Criterion: nfAppIO :: NFData b => a -> IO b -> a -> Benchmarkable
+ Criterion: nfAppIO :: NFData b => (a -> IO b) -> a -> Benchmarkable
- Criterion: perBatchEnv :: (NFData env, NFData b) => Int64 -> IO env -> env -> IO b -> Benchmarkable
+ Criterion: perBatchEnv :: (NFData env, NFData b) => (Int64 -> IO env) -> (env -> IO b) -> Benchmarkable
- Criterion: perBatchEnvWithCleanup :: (NFData env, NFData b) => Int64 -> IO env -> Int64 -> env -> IO () -> env -> IO b -> Benchmarkable
+ Criterion: perBatchEnvWithCleanup :: (NFData env, NFData b) => (Int64 -> IO env) -> (Int64 -> env -> IO ()) -> (env -> IO b) -> Benchmarkable
- Criterion: perRunEnv :: (NFData env, NFData b) => IO env -> env -> IO b -> Benchmarkable
+ Criterion: perRunEnv :: (NFData env, NFData b) => IO env -> (env -> IO b) -> Benchmarkable
- Criterion: perRunEnvWithCleanup :: (NFData env, NFData b) => IO env -> env -> IO () -> env -> IO b -> Benchmarkable
+ Criterion: perRunEnvWithCleanup :: (NFData env, NFData b) => IO env -> (env -> IO ()) -> (env -> IO b) -> Benchmarkable
- Criterion: toBenchmarkable :: Int64 -> IO () -> Benchmarkable
+ Criterion: toBenchmarkable :: (Int64 -> IO ()) -> Benchmarkable
- Criterion: whnf :: () => a -> b -> a -> Benchmarkable
+ Criterion: whnf :: () => (a -> b) -> a -> Benchmarkable
- Criterion: whnfAppIO :: () => a -> IO b -> a -> Benchmarkable
+ Criterion: whnfAppIO :: () => (a -> IO b) -> a -> Benchmarkable
- Criterion.IO.Printf: note :: (CritHPrintfType r) => String -> r
+ Criterion.IO.Printf: note :: CritHPrintfType r => String -> r
- Criterion.IO.Printf: printError :: (CritHPrintfType r) => String -> r
+ Criterion.IO.Printf: printError :: CritHPrintfType r => String -> r
- Criterion.IO.Printf: prolix :: (CritHPrintfType r) => String -> r
+ Criterion.IO.Printf: prolix :: CritHPrintfType r => String -> r
- Criterion.Main: env :: NFData env => IO env -> env -> Benchmark -> Benchmark
+ Criterion.Main: env :: NFData env => IO env -> (env -> Benchmark) -> Benchmark
- Criterion.Main: envWithCleanup :: NFData env => IO env -> env -> IO a -> env -> Benchmark -> Benchmark
+ Criterion.Main: envWithCleanup :: NFData env => IO env -> (env -> IO a) -> (env -> Benchmark) -> Benchmark
- Criterion.Main: nf :: NFData b => a -> b -> a -> Benchmarkable
+ Criterion.Main: nf :: NFData b => (a -> b) -> a -> Benchmarkable
- Criterion.Main: nfAppIO :: NFData b => a -> IO b -> a -> Benchmarkable
+ Criterion.Main: nfAppIO :: NFData b => (a -> IO b) -> a -> Benchmarkable
- Criterion.Main: perBatchEnv :: (NFData env, NFData b) => Int64 -> IO env -> env -> IO b -> Benchmarkable
+ Criterion.Main: perBatchEnv :: (NFData env, NFData b) => (Int64 -> IO env) -> (env -> IO b) -> Benchmarkable
- Criterion.Main: perBatchEnvWithCleanup :: (NFData env, NFData b) => Int64 -> IO env -> Int64 -> env -> IO () -> env -> IO b -> Benchmarkable
+ Criterion.Main: perBatchEnvWithCleanup :: (NFData env, NFData b) => (Int64 -> IO env) -> (Int64 -> env -> IO ()) -> (env -> IO b) -> Benchmarkable
- Criterion.Main: perRunEnv :: (NFData env, NFData b) => IO env -> env -> IO b -> Benchmarkable
+ Criterion.Main: perRunEnv :: (NFData env, NFData b) => IO env -> (env -> IO b) -> Benchmarkable
- Criterion.Main: perRunEnvWithCleanup :: (NFData env, NFData b) => IO env -> env -> IO () -> env -> IO b -> Benchmarkable
+ Criterion.Main: perRunEnvWithCleanup :: (NFData env, NFData b) => IO env -> (env -> IO ()) -> (env -> IO b) -> Benchmarkable
- Criterion.Main: toBenchmarkable :: Int64 -> IO () -> Benchmarkable
+ Criterion.Main: toBenchmarkable :: (Int64 -> IO ()) -> Benchmarkable
- Criterion.Main: whnf :: () => a -> b -> a -> Benchmarkable
+ Criterion.Main: whnf :: () => (a -> b) -> a -> Benchmarkable
- Criterion.Main: whnfAppIO :: () => a -> IO b -> a -> Benchmarkable
+ Criterion.Main: whnfAppIO :: () => (a -> IO b) -> a -> Benchmarkable
- Criterion.Report: includeFile :: (MonadIO m) => [FilePath] -> FilePath -> m Text
+ Criterion.Report: includeFile :: MonadIO m => [FilePath] -> FilePath -> m Text
- Criterion.Types: Measurement :: Int -> String -> (Vector Measured) -> DataRecord
+ Criterion.Types: Measurement :: Int -> String -> Vector Measured -> DataRecord
- Criterion.Types: [BenchGroup] :: Benchmark
+ Criterion.Types: [BenchGroup] :: () => String -> [Benchmark] -> Benchmark
- Criterion.Types: [Benchmark] :: Benchmark
+ Criterion.Types: [Benchmark] :: () => String -> Benchmarkable -> Benchmark
- Criterion.Types: [Benchmarkable] :: Benchmarkable
+ Criterion.Types: [Benchmarkable] :: forall a. NFData a => {allocEnv :: Int64 -> IO a, cleanEnv :: Int64 -> a -> IO (), runRepeatedly :: a -> Int64 -> IO (), perRun :: Bool} -> Benchmarkable
- Criterion.Types: [Environment] :: Benchmark
+ Criterion.Types: [Environment] :: forall env a. NFData env => IO env -> (env -> IO a) -> (env -> Benchmark) -> Benchmark
- Criterion.Types: env :: NFData env => IO env -> env -> Benchmark -> Benchmark
+ Criterion.Types: env :: NFData env => IO env -> (env -> Benchmark) -> Benchmark
- Criterion.Types: envWithCleanup :: NFData env => IO env -> env -> IO a -> env -> Benchmark -> Benchmark
+ Criterion.Types: envWithCleanup :: NFData env => IO env -> (env -> IO a) -> (env -> Benchmark) -> Benchmark
- Criterion.Types: measure :: Unbox a => Measured -> a -> Vector Measured -> Vector a
+ Criterion.Types: measure :: Unbox a => (Measured -> a) -> Vector Measured -> Vector a
- Criterion.Types: nf :: NFData b => a -> b -> a -> Benchmarkable
+ Criterion.Types: nf :: NFData b => (a -> b) -> a -> Benchmarkable
- Criterion.Types: nfAppIO :: NFData b => a -> IO b -> a -> Benchmarkable
+ Criterion.Types: nfAppIO :: NFData b => (a -> IO b) -> a -> Benchmarkable
- Criterion.Types: perBatchEnv :: (NFData env, NFData b) => Int64 -> IO env -> env -> IO b -> Benchmarkable
+ Criterion.Types: perBatchEnv :: (NFData env, NFData b) => (Int64 -> IO env) -> (env -> IO b) -> Benchmarkable
- Criterion.Types: perBatchEnvWithCleanup :: (NFData env, NFData b) => Int64 -> IO env -> Int64 -> env -> IO () -> env -> IO b -> Benchmarkable
+ Criterion.Types: perBatchEnvWithCleanup :: (NFData env, NFData b) => (Int64 -> IO env) -> (Int64 -> env -> IO ()) -> (env -> IO b) -> Benchmarkable
- Criterion.Types: perRunEnv :: (NFData env, NFData b) => IO env -> env -> IO b -> Benchmarkable
+ Criterion.Types: perRunEnv :: (NFData env, NFData b) => IO env -> (env -> IO b) -> Benchmarkable
- Criterion.Types: perRunEnvWithCleanup :: (NFData env, NFData b) => IO env -> env -> IO () -> env -> IO b -> Benchmarkable
+ Criterion.Types: perRunEnvWithCleanup :: (NFData env, NFData b) => IO env -> (env -> IO ()) -> (env -> IO b) -> Benchmarkable
- Criterion.Types: toBenchmarkable :: Int64 -> IO () -> Benchmarkable
+ Criterion.Types: toBenchmarkable :: (Int64 -> IO ()) -> Benchmarkable
- Criterion.Types: whnf :: () => a -> b -> a -> Benchmarkable
+ Criterion.Types: whnf :: () => (a -> b) -> a -> Benchmarkable
- Criterion.Types: whnfAppIO :: () => a -> IO b -> a -> Benchmarkable
+ Criterion.Types: whnfAppIO :: () => (a -> IO b) -> a -> Benchmarkable

Files

Criterion/Main.hs view
@@ -75,7 +75,6 @@ import System.Environment (getProgName) import System.Exit (ExitCode(..), exitWith) import System.FilePath.Glob-import System.IO.CodePage (withCP65001)  -- | An entry point that can be used as a @main@ function. --@@ -147,7 +146,7 @@ defaultMainWith :: Config                 -> [Benchmark]                 -> IO ()-defaultMainWith defCfg bs = withCP65001 $ do+defaultMainWith defCfg bs = do   wat <- execParser (describe defCfg)   runMode wat bs 
Criterion/Monad.hs view
@@ -21,11 +21,12 @@ import Criterion.Monad.Internal (Criterion(..), Crit(..)) import Criterion.Types hiding (measure) import Data.IORef (IORef, newIORef, readIORef, writeIORef)+import System.IO.CodePage (withCP65001) import System.Random.MWC (GenIO, createSystemRandom)  -- | Run a 'Criterion' action with the given 'Config'. withConfig :: Config -> Criterion a -> IO a-withConfig cfg (Criterion act) = do+withConfig cfg (Criterion act) = withCP65001 $ do   g <- newIORef Nothing   runReaderT act (Crit cfg g) 
changelog.md view
@@ -1,3 +1,8 @@+1.5.3.0++* Make more functions (e.g., `runMode`) able to print the `µ` character on+  non-UTF-8 encodings.+ 1.5.2.0  * Fix a bug in which HTML reports would render incorrectly when including
criterion.cabal view
@@ -1,5 +1,5 @@ name:           criterion-version:        1.5.2.0+version:        1.5.3.0 synopsis:       Robust, reliable performance measurement and analysis license:        BSD3 license-file:   LICENSE@@ -24,8 +24,8 @@   GHC==7.10.3,   GHC==8.0.2,   GHC==8.2.2,-  GHC==8.4.3,-  GHC==8.6.1+  GHC==8.4.4,+  GHC==8.6.2  data-files:   templates/*.css@@ -99,7 +99,7 @@     mwc-random >= 0.8.0.3,     optparse-applicative >= 0.13,     parsec >= 3.1.0,-    statistics >= 0.14 && < 0.15,+    statistics >= 0.14 && < 0.16,     text >= 0.11,     time,     transformers,
examples/Maps.hs view
@@ -7,7 +7,6 @@ import Data.ByteString (ByteString, pack) import Data.Hashable (Hashable) import System.Random.MWC-import qualified Data.CritBit.Map.Lazy as C import qualified Data.HashMap.Lazy as H import qualified Data.IntMap as I import qualified Data.Map as M@@ -71,16 +70,8 @@            , bench "random"    $ whnf hashmap random            , bench "revsorted" $ whnf hashmap revsorted            ]-         , bgroup "CritBit" [-             bench "sorted"    $ whnf critbit sorted-           , bench "random"    $ whnf critbit random-           , bench "revsorted" $ whnf critbit revsorted-           ]          ]        ]--critbit :: (G.Vector v k, C.CritBitKey k) => v k -> C.CritBit k Int-critbit xs = G.foldl' (\m k -> C.insert k value m) C.empty xs  hashmap :: (G.Vector v k, Hashable k, Eq k) => v k -> H.HashMap k Int hashmap xs = G.foldl' (\m k -> H.insert k value m) H.empty xs
examples/criterion-examples.cabal view
@@ -17,8 +17,8 @@   GHC==7.10.3,   GHC==8.0.2,   GHC==8.2.2,-  GHC==8.4.3,-  GHC==8.6.1+  GHC==8.4.4,+  GHC==8.6.2  flag conduit-vs-pipes   default: True@@ -59,7 +59,6 @@     base == 4.*,     bytestring,     containers,-    critbit,     criterion,     deepseq,     hashable,