criterion 1.6.0.0 → 1.6.1.0
raw patch · 7 files changed
+42/−27 lines, 7 filesdep −ansi-wl-pprintdep ~optparse-applicativePVP ok
version bump matches the API change (PVP)
Dependencies removed: ansi-wl-pprint
Dependency ranges changed: optparse-applicative
API changes (from Hackage documentation)
Files
- Criterion/Main/Options.hs +2/−3
- Criterion/Main/Options/Internal.hs +21/−7
- README.markdown +0/−8
- changelog.md +4/−0
- criterion.cabal +7/−6
- examples/Fibber.hs +5/−2
- examples/criterion-examples.cabal +3/−1
Criterion/Main/Options.hs view
@@ -25,7 +25,7 @@ import Control.Monad (when) import Criterion.Analysis (validateAccessors)-import Criterion.Main.Options.Internal (tabulate)+import Criterion.Main.Options.Internal (tabulate, text) import Criterion.Types (Config(..), Verbosity(..), measureAccessors, measureKeys) import Data.Char (isSpace, toLower)@@ -36,13 +36,12 @@ import GHC.Generics (Generic) import Options.Applicative import Options.Applicative.Help (Chunk(..))-import Options.Applicative.Help.Pretty ((.$.))+import Options.Applicative.Help.Pretty ((.$.), Doc) import Options.Applicative.Types import Paths_criterion (version) import Prelude () import Prelude.Compat import Statistics.Types (mkCL,cl95)-import Text.PrettyPrint.ANSI.Leijen (Doc, text) import qualified Data.Map as M -- | How to match a benchmark name.
Criterion/Main/Options/Internal.hs view
@@ -9,17 +9,22 @@ -- Stability : experimental -- Portability : GHC ----- Provides a shim on top of @optparse-applicative@'s 'Options.tabulate'--- function that is backwards-compatible with pre-@0.17.*@ versions of--- @optparse-applicative@. This is deliberately kept separate from the rest of--- "Criterion.Main.Options" because this function requires CPP to define, and+-- Provides a shim on top of @optparse-applicative@ to define two functions:+--+-- * Define a 'tabulate' function that is backwards-compatible with+-- pre-@0.17.*@ versions of @optparse-applicative@.+-- * Define a 'text' function that is forward-compatible with+-- @optparse-applicative-0.18.*@ or later.+--+-- These are deliberately kept separate from the rest of+-- "Criterion.Main.Options" because these functions require CPP to define, and -- there is a Haddock comment in "Criterion.Main.Options" that will cause the -- CPP preprocessor to trigger an \"unterminated comment\" error. Ugh. ----- TODO: When we support @optparse-applicative-0.17@ as the minimum, remove--- this module and simply inline the definition of 'tabulate' in+-- TODO: When we support @optparse-applicative-0.18@ as the minimum, remove+-- this module, and simply inline the definitions of 'tabulate' and 'text' in -- "Criterion.Main.Options".-module Criterion.Main.Options.Internal (tabulate) where+module Criterion.Main.Options.Internal (tabulate, text) where import qualified Options.Applicative.Help as Options import Options.Applicative.Help (Chunk, Doc)@@ -35,4 +40,13 @@ tabulate = Options.tabulate (prefTabulateFill defaultPrefs) #else tabulate = Options.tabulate+#endif++-- | A shim on top of 'Options.pretty' from @optparse-applicative@ that is+-- forward-compatible with @optparse-applicative-0.18.*@ or later.+text :: String -> Doc+#if MIN_VERSION_optparse_applicative(0,18,0)+text = Options.pretty+#else+text = Options.text #endif
README.markdown view
@@ -13,14 +13,6 @@ in the <a href="/examples" target="_blank">examples directory</a>. --# Building and installing--To build and install criterion, just run-- cabal install criterion-- # Get involved! Please report bugs via the
changelog.md view
@@ -1,3 +1,7 @@+1.6.1.0++* Support building with `optparse-applicative-0.18.*`.+ 1.6.0.0 * `criterion-measurement-0.2.0.0` adds the `measPeakMbAllocated` field to
criterion.cabal view
@@ -1,5 +1,5 @@ name: criterion-version: 1.6.0.0+version: 1.6.1.0 synopsis: Robust, reliable performance measurement and analysis license: BSD3 license-file: LICENSE@@ -29,7 +29,9 @@ GHC==8.8.4, GHC==8.10.7, GHC==9.0.2,- GHC==9.2.2+ GHC==9.2.7,+ GHC==9.4.5,+ GHC==9.6.1 data-files: templates/*.css@@ -85,9 +87,8 @@ -- TODO: Eventually, we should bump the lower version bounds to >=2 so that -- we can remove some CPP in Criterion.Report. See #247. aeson >= 1 && < 2.2,- ansi-wl-pprint >= 0.6.7.2, base >= 4.5 && < 5,- base-compat-batteries >= 0.10 && < 0.13,+ base-compat-batteries >= 0.10 && < 0.14, binary >= 0.5.1.0, binary-orphans >= 1.0.1 && < 1.1, bytestring >= 0.9 && < 1.0,@@ -104,8 +105,8 @@ js-chart >= 2.9.4 && < 3, mtl >= 2, mwc-random >= 0.8.0.3,- -- TODO: Depend on optparse-applicative-0.17 as the minimum (see #258)- optparse-applicative >= 0.13 && < 0.18,+ -- TODO: Depend on optparse-applicative-0.18 as the minimum (see #258)+ optparse-applicative >= 0.13 && < 0.19, parsec >= 3.1.0, statistics >= 0.14 && < 0.17, text >= 0.11,
examples/Fibber.hs view
@@ -1,8 +1,11 @@--- The simplest/silliest of all benchmarks!+{- cabal:+build-depends: base, criterion+-} import Criterion.Main -fib :: Integer -> Integer+-- The function we're benchmarking.+fib :: Int -> Int fib m | m < 0 = error "negative!" | otherwise = go m where
examples/criterion-examples.cabal view
@@ -22,7 +22,9 @@ GHC==8.8.4, GHC==8.10.7, GHC==9.0.2,- GHC==9.2.2+ GHC==9.2.7,+ GHC==9.4.5,+ GHC==9.6.1 flag conduit-vs-pipes default: True