cabal-helper: Simple interface to some of Cabal's configuration state, mainly used by ghc-mod

[ apache, distribution, library ] [ Propose Tags ] [ Report a vulnerability ]

Cabal's little helper provides access to build information gathered by cabal when configuring a project. Specifically we're interested in retrieving enough information to bring up a compiler session, using the GHC API, which is similar to running cabal repl in a project.

While simple in principle this is complicated by the fact that the information Cabal writes to disk is in an unstable format and only really accessible through the Cabal API itself.

Since we do not want to bind the user of a development tool which utilises this library to a specific version of Cabal we compile the code which interfaces with the Cabal library's API on the user's machine, at runtime, against whichever version of Cabal was used to write the on disk information for a given project.

If this version of Cabal is not available on the users machine anymore, which is fairly likely since cabal-install is usually linked statically, we have support for compiling the Cabal library also. In this case the library is installed into a private, isolated, package database in $XDG_CACHE_HOME/cabal-helper so as to not interfere with the user's package database.


[Skip to Readme]

Modules

[Index] [Quick Jump]

Flags

Manual Flags

NameDescriptionDefault
dev

Build development components

Disabled

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

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1.0.0, 0.1.0.1, 0.2.0.0, 0.3.0.0, 0.3.1.0, 0.3.2.0, 0.3.2.1, 0.3.3.0, 0.3.4.0, 0.3.5.0, 0.3.6.0, 0.3.7.0, 0.3.8.0, 0.3.9.0, 0.4.0.0, 0.5.0.0, 0.5.1.0, 0.5.2.0, 0.5.3.0, 0.6.0.0, 0.6.1.0, 0.6.2.0, 0.6.3.0, 0.6.3.1, 0.7.0.1, 0.7.1.0, 0.7.2.0, 0.7.3.0, 0.8.0.0, 0.8.0.1, 0.8.0.2, 0.8.1.0, 0.8.1.1, 0.8.1.2, 0.8.2.0, 1.0.0.0, 1.1.0.0 (info)
Dependencies base (>=4.7 && <5), bytestring (>=0.9.2.1 && <0.11), Cabal (>=1.14 && <1.26 || >=2.0 && <2.5), cabal-plan (>=0.3.0.0 && <0.5), containers (>=0.5.5.1 && <1), directory (>=1.2.1.0 && <1.4), filepath (>=1.3.0.0 && <1.5), ghc-prim, mtl (>=2.0 && <2.3), pretty-show (>=1.8.1 && <1.9), process (>=1.1.0.1 && <1.7), semigroupoids (>=5.2 && <5.3), template-haskell (>=2.7.0.0 && <2.14), temporary (>=1.2.1 && <1.3), text (>=1.0.0.0 && <1.3), transformers (>=0.3.0.0 && <0.6), unix (>=2.5.1.1 && <2.8), unix-compat (>=0.4.3.1 && <0.6), utf8-string (>=1.0.1.1 && <1.1) [details]
License GPL-3.0-only
Author Daniel Gröber <cabal-helper@dxld.at>
Maintainer cabal-helper@dxld.at
Category Distribution
Source repo head: git clone https://github.com/DanielG/cabal-helper.git
Uploaded by DanielG at 2018-08-24T18:28:31Z
Distributions
Reverse Dependencies 3 direct, 3 indirect [details]
Executables cabal-helper-main, cabal-helper-wrapper
Downloads 46536 total (57 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2018-08-24 [all 1 reports]

Readme for cabal-helper-0.8.1.2

[back to package description]

cabal-helper

build status

Cabal's little helper provides access to build information gathered by cabal when configuring a project. Specifically we're interested in retrieving enough information to bring up a compiler session, using the GHC API, which is similar to running cabal repl in a project.

While simple in principle this is complicated by the fact that the information Cabal writes to disk is in an unstable format and only really accessible through the Cabal API itself.

Since we do not want to bind the user of a development tool which utilises this library to a specific version of Cabal we compile the code which interfaces with the Cabal library's API on the user's machine, at runtime, against whichever version of Cabal was used to write the on disk information for a given project.

If this version of Cabal is not available on the users machine anymore, which is fairly likely since cabal-install is usually linked statically, we have support for compiling the Cabal library also. In this case the library is installed into a private, isolated, package database in $XDG_CACHE_HOME/cabal-helper so as to not interfere with the user's package database.

IRC

If you have any problems, suggestions, comments swing by #ghc-mod (web client) on Freenode. If you're reporting a bug please also create an issue here so we have a way to contact you if you don't have time to stay.

Do hang around for a while if no one answers and repeat your question if you still haven't gotten any answer after a day or so. You're most likely to get an answer during the day in GMT+1.