hls-graph: Haskell Language Server internal graph API

[ apache, development, library ] [ Propose Tags ]


Manual Flags


Enable -Werror


Embed data files into the shake library


Collect STM transaction stats


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees


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, primitive, stm, stm-containers, time, transformers, unordered-containers [details]
License Apache-2.0
Copyright The Haskell IDE Team
Author The Haskell IDE Team
Maintainer The Haskell IDE Team
Revised Revision 1 made by Bodigrim at 2022-07-06T19:34:50Z
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 2022-04-27T09:22:28Z
Distributions Arch:, NixOS:
Downloads 2124 total (83 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2022-04-28 [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