Introduce Shake-based build system
This introduces a Shake-based build system, building on Neil Mitchell's prototype from several years ago [1]. This build system has a number of features relative to the existing make-based build system: * results are produced in a common CSV structure, making it easy to use the included analysis tool nofib-compare, to compare results from tests outside of nofib. * Cachegrind runs can be run in parallel, greatly speeding up such measurements * native support for (micro-)architectural performance counters on Linux via `perf stat` [1] https://gist.github.com/ndmitchell/4733855 There are also a few more changes to tests to make this build system work well with nofib. In particular: * The Main module for some benchmarks has been renamed. * The boot phase of benchmarks is now done by a boot.sh script. * Replace some uses of perl with ghci. * Some benchmarks that we didn't use to run by default had missing/wrong(!) stdout files. I added/updated these. Take note that shake will run *more* benchmarks by default than make used to. So you might want to select a subset of benchmarks to run when using it.
Showing
- .gitignore 2 additions, 0 deletions.gitignore
- .gitlab-ci.yml 14 additions, 19 deletions.gitlab-ci.yml
- cabal.project 6 additions, 0 deletionscabal.project
- gc/fulsom/fulsom.faststdout 0 additions, 0 deletionsgc/fulsom/fulsom.faststdout
- gc/gc_bench/Makefile 1 addition, 1 deletiongc/gc_bench/Makefile
- gc/happy/.gitignore 1 addition, 0 deletionsgc/happy/.gitignore
- gc/happy/TestInput.hs 0 additions, 20757 deletionsgc/happy/TestInput.hs
- gc/linear/Main.lhs 0 additions, 0 deletionsgc/linear/Main.lhs
- gc/mutstore2/Makefile 2 additions, 0 deletionsgc/mutstore2/Makefile
- imaginary/bernouilli/Makefile 1 addition, 1 deletionimaginary/bernouilli/Makefile
- parallel/minimax/minimax.note 25 additions, 0 deletionsparallel/minimax/minimax.note
- parallel/minimax/minimax.stdout 9 additions, 9 deletionsparallel/minimax/minimax.stdout
- real/grep/Makefile 4 additions, 4 deletionsreal/grep/Makefile
- shake/.gitignore 1 addition, 0 deletionsshake/.gitignore
- shake/CachegrindParse.hs 36 additions, 0 deletionsshake/CachegrindParse.hs
- shake/LICENSE 30 additions, 0 deletionsshake/LICENSE
- shake/Merge.hs 25 additions, 0 deletionsshake/Merge.hs
- shake/README.mkd 97 additions, 0 deletionsshake/README.mkd
- shake/Setup.hs 2 additions, 0 deletionsshake/Setup.hs
- shake/compare/Compare.hs 455 additions, 0 deletionsshake/compare/Compare.hs
Loading
Please register or sign in to comment