hls-graph: Haskell Language Server internal graph API

[ apache, development, library ] [ Propose Tags ]
Versions [RSS],,,,,,,,,,,,,,,,,
Dependencies aeson, async (>=2.0), base (>=4.12 && <5), bytestring, containers, deepseq, directory, exceptions, extra, filepath, focus (>=, hashable, js-dgtable, js-flot, js-jquery, list-t, stm, stm-containers, text, time, transformers, unliftio, unordered-containers [details]
License Apache-2.0
Copyright The Haskell IDE Team
Author The Haskell IDE Team
Maintainer The Haskell IDE Team
Category Development
Home page https://github.com/haskell/haskell-language-server#readme
Bug tracker https://github.com/haskell/haskell-language-server/issues
Source repo head: git clone https://github.com/haskell/haskell-language-server
Uploaded by hls_team at 2024-05-08T11:17:10Z
Distributions Arch:, NixOS:
Reverse Dependencies 16 direct, 24 indirect [details]
Downloads 5740 total (233 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2024-05-08 [all 1 reports]

Readme for hls-graph-

[back to package description]

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.


  • 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