criterion-measurement 0.1.1.0 → 0.1.2.0
raw patch · 4 files changed
+21/−5 lines, 4 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Criterion.Measurement.Types: Benchmarkable :: Int64 -> IO a -> Int64 -> a -> IO () -> a -> Int64 -> IO () -> Bool -> Benchmarkable
+ Criterion.Measurement.Types: Benchmarkable :: (Int64 -> IO a) -> (Int64 -> a -> IO ()) -> (a -> Int64 -> IO ()) -> Bool -> Benchmarkable
- Criterion.Measurement.Types: measure :: (Unbox a) => (Measured -> a) -> Vector Measured -> Vector a
+ Criterion.Measurement.Types: measure :: Unbox a => (Measured -> a) -> Vector Measured -> Vector a
- Criterion.Measurement.Types.Internal: nf' :: (b -> ()) -> (a -> b) -> a -> (Int64 -> IO ())
+ Criterion.Measurement.Types.Internal: nf' :: (b -> ()) -> (a -> b) -> a -> Int64 -> IO ()
- Criterion.Measurement.Types.Internal: whnf' :: (a -> b) -> a -> (Int64 -> IO ())
+ Criterion.Measurement.Types.Internal: whnf' :: (a -> b) -> a -> Int64 -> IO ()
Files
- changelog.md +8/−0
- criterion-measurement.cabal +4/−3
- src/Criterion/Measurement/Types.hs +1/−1
- src/Criterion/Measurement/Types/Internal.hs +8/−1
changelog.md view
@@ -1,3 +1,11 @@+0.1.2.0++* Ensure that `Criterion.Measurement.Types.Internal` is always compiled with+ optimizations, even if the `criterion-measurement` library itself happens to+ be built with `-O0` or `-fprof-auto`. This is necessary to ensure that the+ inner benchmarking loop of criterion always finishes in a timely manner,+ even if the rest of the library is not fully optimized.+ 0.1.1.0 * Add `nfAppIO` and `whnfAppIO` functions, which take a function and its
criterion-measurement.cabal view
@@ -1,5 +1,5 @@ name: criterion-measurement-version: 0.1.1.0+version: 0.1.2.0 synopsis: Criterion measurement functionality and associated types description: Measurement-related functionality extracted from Criterion, with minimal dependencies. The rationale for this is to enable alternative analysis front-ends. homepage: https://github.com/bos/criterion@@ -19,8 +19,9 @@ 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.5,+ GHC==8.8.1 flag fast description: compile without optimizations
src/Criterion/Measurement/Types.hs view
@@ -5,7 +5,7 @@ {-# OPTIONS_GHC -funbox-strict-fields #-} -- |--- Module : Criterion.Types+-- Module : Criterion.Measurement.Types -- Copyright : (c) 2009-2014 Bryan O'Sullivan -- -- License : BSD-style
src/Criterion/Measurement/Types/Internal.hs view
@@ -1,7 +1,14 @@ {-# LANGUAGE BangPatterns #-}++-- Ensure that nf' and whnf' are always optimized, even if+-- criterion-measurement is compiled with -O0 or -fprof-auto (see #184).+{-# OPTIONS_GHC -O2 -fno-prof-auto #-}+-- Make the function applications in nf' and whnf' strict (avoiding allocation)+-- and avoid floating out the computations. {-# OPTIONS_GHC -fno-full-laziness #-}+ -- |--- Module : Criterion.Types.Internal+-- Module : Criterion.Measurement.Types.Internal -- Copyright : (c) 2017 Ryan Scott -- -- License : BSD-style