haskell-language-server/hls-graph
Michael Peyton Jones 8f0d940445
Document exception handling in Actions/Rules (#3407)
* Document exception handling in Actions/Rules

I also took the liberty of removing the `MonadFail` instance for
`Rules`, since failing in `Rules` seems much worse as it won't
automatically be caught. There was only one use of that, which now has
an appropriately threatening comment.

* Tweak

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2023-01-02 12:51:56 +00:00
..
html fix typos (#3325) 2022-11-09 17:42:12 +00:00
src Document exception handling in Actions/Rules (#3407) 2023-01-02 12:51:56 +00:00
test Fix testing hls-graph 2022-10-24 14:50:37 +05:30
hls-graph.cabal Prepare release 1.9.0.0 2022-12-26 16:09:25 +05:30
LICENSE Add hls-graph abstracting over shake (#1748) 2021-04-18 15:55:12 +00:00
README.md Reimplement shake (continued) (#2060) 2021-09-25 10:23:52 +00:00

hls-graph - a limited reimplementation of Shake for in-memory build graphs

ghcide was originally built on top of Shake, a Haskell build system. Nowadays Shake has been replaced by a special purpose implementation of a build graph called hls-graph, which drops all the persistency features in exchange for simplicity and performance.

Features:

  • Dynamic dependencies
  • User defined rules (there are no predefined File rules as in Shake)
  • Build reports (a la Shake profiling)
  • "Reactive" change tracking for minimal rebuilds (not available in Shake)

What's missing:

  • Persistence
  • A default set of rules for file system builds
  • A testsuite
  • General purpose application - many design decisions make assumptions specific to ghcide