mirror of
https://github.com/haskell/ghcide.git
synced 2024-11-22 19:14:09 +03:00
959db7b10b
* [bench-hist] break down in rule functions * Extract the benchmarking Shake rules to a shake-bench package There's some room for reusing the rules used in the historic benchmarking suite in other projects. This change makes that a bit easier and improves the documentation and code structure. The new structure is: - lib:shake-bench - a Cabal library with functions to generate Shake rules - ghcide:bench:benchHist - the ghcide instantiation of the above Shake rules That's not to say that shake-bench is completely decoupled from ghcide - there are still plenty of assumptions on how the benchmarks are organized, their outputs, etc. But with a little bit of effort, it should be easy to make these rules more reusable * Fix nix build * Fix license * hlints and redundant imports * more hlints * Exclude shake-bench from the stack build |
||
---|---|---|
.. | ||
exe | ||
hist | ||
lib | ||
config.yaml | ||
README.md |
Benchmarks
This folder contains two Haskell programs that work together to simplify the performance analysis of ghcide:
exe/Main.hs
- a standalone benchmark runner. Run withstack run ghcide-bench
hist/Main.hs
- a Shake script for running the benchmark suite over a set of commits.- Run with
stack bench
orcabal bench
, - Requires a
ghcide-bench
binary in the PATH (usually provided by stack/cabal), - Calls
cabal
(orstack
, configurable) internally to build the project, - Driven by the
config.yaml
configuration file. By default it compares HEAD with "master"
- Run with
Further details available in the config file and the module header comments.