hsbencher- Launch and gather data from Haskell and non-Haskell benchmarks.

Safe HaskellNone



These are the built-in build methods for HSBencher that come with the main package. They are relatively unsophisticated.



makeMethod :: BuildMethod Source

Build with GNU Make. This is a basic Make protocol; your application may need something more complicated. This assumes targets clean, run, and the default target for building.

The variables RUN_ARGS and COMPILE_ARGS are used to pass in the per-benchmark run and compile options, so the Makefile must be written with these conventions in mind. Note that this build method never knows where or if any resulting binaries reside. One effect of that is that this simple build method can never be used for PARALLEL compiles, because it cannot manage where the build-intermediates are stored.

ghcMethod :: BuildMethod Source

Build with GHC directly. This assumes that all dependencies are installed and a single call to ghc can build the file.

Compile-time arguments go directly to GHC, and runtime arguments directly to the resulting binary.

cabalMethod :: BuildMethod Source

Build with cabal. Specifically, this uses "cabal install".

This build method attempts to choose reasonable defaults for benchmarking. It takes control of the output program suffix and directory (setting it to BENCHROOT/bin). It passes compile-time arguments directly to cabal. Likewise, runtime arguments get passed directly to the resulting binary.