Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Known issues related to Cabal
- We don't support Cabal's
- You need to recompile ghc-mod when you change GHC versions, just run
cabal install ghc-modagain and you're good. We are working on a permanent fix for this, see ghc-mod Issue: Implement worker/wrapper split, support multiple GHC versions.
Known issues related to Stack
It's not working
Make sure the
dist/setup-config file doesn't exist in your project directory (the directory also containing your
*.cabal file). When this file exists ghc-mod assumes you want to use cabal-install instead of Stack.
Most common Stack related issue
Most ghc-mod+Stack issues have to do with a GHC version mismatch.
ghc-mod once compiled is bound to one version of GHC since we link against the GHC API library. This used to not be a very big problem but since Stack made it exceedingly easy to use more than one version of GHC without even realising.
To confirm you are in fact suffering from this issue check if your Stack resolver uses a different GHC version from what ghc-mod was linked with, for example:
$ ghc-mod --version ghc-mod version 188.8.131.52 compiled by GHC 7.10.2
$ stack ghc -- --version The Glorious Glasgow Haskell Compilation System, version 7.8.4
Many users report success with starting their editors/IDEs or shells with
stack exec inside the project they are working on after installing ghc-mod locally
inside that project, for example:
$ cd my/super/cool/project/ $ stack install ghc-mod $ stack exec -- emacs
The install command only needs to be run once unless you want to upgrade the
ghc-mod version in use for that project. The
stack exec command will run Emacs
(or your editor of choice) with a modified environment which (among other
things) adds the project-local binary installation directory to
We are working on a more permanent fix for this, see ghc-mod Issue: Implement worker/wrapper split, support multiple GHC versions.
readPackageDb: inappropriate type
ghc-mod: $HOME/.stack/snapshots/x86_64-linux/lts-2.22/7.8.4/pkgdb/package.cache: GHC.PackageDb.readPackageDb: inappropriate type (not a ghc-pkg db file, wrong file magic number)
cannot satisfy -package-id ... is unusable due to missing or recursive dependencies
ghc-mod: <command line>: cannot satisfy -package-id aeson-0.10.0.0-a37a650f6e5d5ca2347967c8f8609dfd: aeson-0.10.0.0-a37a650f6e5d5ca2347967c8f8609dfd is unusable due to missing or recursive dependencies: attoparsec-0.13.0.1-9f9155916734a226d3befd6aaf235548 base-184.108.40.206-0d6d1084fbc041e1cded9228e80e264d <...> (use -v for more information)
Same root cause as above: Most common Stack related issue.
Failed to load interface for ...
Failed to load interface for ‘Some.Module’ There are files missing in the ‘package-1.2.3’ package,try running 'ghc-pkg check'
Same root cause as above: Most common Stack related issue
cabal-helper-wrapper: ghc: [...]: does not exist
Full error message:
cabal-helper-wrapper: ghc: readCreateProcess: runInteractiveProcess: exec: does not exist (No such file or directory)
cabal-helper needs a working
ghc executable at runtime to build it's wrapper component, when using only Stack's builtin GHC there is no
$PATH hence this error.
To fix this simply add one of the paths in the output of the following command to your
$PATH environment variable.
printf '%s\n' ~/.stack/programs/*/ghc-*/bin/