Copyright | (c) 2017 Ryan Scott |
---|---|
License | BSD-style |
Maintainer | bos@serpentine.com |
Stability | experimental |
Portability | GHC |
Safe Haskell | None |
Language | Haskell2010 |
Criterion.Measurement.Types.Internal
Description
Exports fakeEnvironment
.
Documentation
fakeEnvironment :: env #
A dummy environment that is passed to functions that create benchmarks from environments when no concrete environment is available.
nf' :: (b -> ()) -> (a -> b) -> a -> Int64 -> IO () #
Generate a function which applies an argument to a function a given number of times, reducing the result to normal form.
whnf' :: (a -> b) -> a -> Int64 -> IO () #
Generate a function which applies an argument to a function a given number of times.
SPEC
is used by GHC in the SpecConstr
pass in order to inform
the compiler when to be particularly aggressive. In particular, it
tells GHC to specialize regardless of size or the number of
specializations. However, not all loops fall into this category.
Libraries can specify this by using SPEC
data type to inform which
loops should be aggressively specialized. For example,
instead of
loop x where loop arg = ...
write
loop SPEC x where loop !_ arg = ...
There is no semantic difference between SPEC
and SPEC2
,
we just need a type with two constructors lest it is optimised away
before SpecConstr
.
This type is reexported from GHC.Exts since GHC 9.0 and base-4.15
.
For compatibility with earlier releases import it from GHC.Types
in ghc-prim
package.
Since: ghc-prim-0.3.1.0