ghcide/bench
Pepe Iborra ba4bdb2def
Send WorkDoneProgressEnd only when work is done (#649)
* send WorkDoneProgressEnd only when work done

* Progress reporting now spans over multiple overlapping kicks

* Repurpose benchmark experiments as tests

Fixes #650

* use stack to fetch from Hackage

* benchmark tests run with the same lsp-test config as other tests

* Fix stack cradle in benchmark

* Make stack unpack --silent

* Fix issues in "code actions after edit" experiment

- Repeated breaking edits make ghc run out of suggestions

- Diagnostics seem to come and go in-between edits, which leads to a timing
  issue when asking for code actions. The fix is to wait for diagnostics to be
  present before asking for code actions

* Fix stack.yaml generation in example project

* Fix getDefinition in GHC 8.4

Did it break before 0.2.0 or after?

* better naming for the progress event TVar

* stop progress reporting in shakeShut

https://github.com/digital-asset/ghcide/pull/649#discussion_r443408884

* hlint
2020-06-22 12:47:45 +02:00
..
exe Send WorkDoneProgressEnd only when work is done (#649) 2020-06-22 12:47:45 +02:00
hist Send WorkDoneProgressEnd only when work is done (#649) 2020-06-22 12:47:45 +02:00
lib Send WorkDoneProgressEnd only when work is done (#649) 2020-06-22 12:47:45 +02:00
hist.yaml Performance analysis over time (#629) 2020-06-15 13:56:24 +02:00
README.md Send WorkDoneProgressEnd only when work is done (#649) 2020-06-22 12:47:45 +02:00

Benchmarks

This folder contains two Haskell programs that work together to simplify the performance analysis of ghcide:

  • exe/Main.hs - a standalone benchmark suite. Run with stack bench
  • hist/Main.hs - a Shake script for running the benchmark suite over a set of commits.
    • Run with stack exec benchHist,
    • Requires a ghcide-bench binary in the PATH,
    • Calls stack internally to build the project,
    • Driven by the hist.yaml configuration file. By default it compares HEAD with upstream

Further details available in the module header comments.