haskell-language-server/hls-graph
Andy 86e3fd6c65
Cleanup GHC macros (because min version is 8.8.4) (#3281)
* Drop min_version_ghc (8.8.4 is min supported)

* Drop conditional glasgow_haskell cpp

* Inline some imports (review feedback)

* Drop hie-compat 8.6 (review feedback)

* Dropping more ghc 8.6 related code and docs

* Eval: Include tests that were broken for 8.6
2022-10-11 22:35:18 +00:00
..
html Add pre-commit hook for cleaning up mixed-line endings (#2679) 2022-02-04 14:50:18 +00:00
src Cleanup GHC macros (because min version is 8.8.4) (#3281) 2022-10-11 22:35:18 +00:00
test Run pre-commit hooks (#3059) 2022-07-28 16:48:13 +00:00
hls-graph.cabal Remove unused build-depends and install warnings (#3155) 2022-09-15 10:44:02 +01:00
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