Hello, what do I have to do to use a locally compiled GHC on my own projects? Background: I'm working on this [1]. I've managed to compile GHC following the instructions given on https://ghc.dev, also here [2]. I can run $ ./_build/stage1/bin/ghc --interactive GHCi, version 9.15.20251202: https://www.haskell.org/ghc/ :? for help with the expected result. However, the locally built compiler (master branch, without any modifications) fails with all but the most primitive of my own projects. I try to do this by adding a line with-compiler: /home/sk/prg/ghc/master/_build/stage1/bin/ghc to the `cabal.project` file of a project. Then, success depends on the dependencies of a project. Here is one using `criterion`: $ cabal build Warning: Unknown/unsupported 'ghc' version detected (Cabal 3.12.1.0 supports 'ghc' version < 9.12): /home/sk/prg/ghc/third/_build/stage1/bin/ghc is version 9.15.20251202 Resolving dependencies... Error: [Cabal-7107] Could not resolve dependencies: [__0] next goal: foo (user goal) [__0] rejecting: foo-1.0 (constraint from user target requires ==0.0.1) [__0] trying: foo-0.0.1 [__1] trying: criterion-1.6.4.1 (dependency of foo) [__2] trying: vector-algorithms-0.9.1.0 (dependency of criterion) [__3] trying: primitive-0.9.1.0 (dependency of vector-algorithms) [__4] next goal: base (dependency of foo) [__4] rejecting: base-4.22.0.0/installed-inplace (conflict: primitive => base>=4.10 && <4.22) [__4] rejecting: base; 4.21.0.0, 4.20.2.0, 4.20.1.0, 4.20.0.1, 4.20.0.0, 4.19.2.0, 4.19.1.0, 4.19.0.0, 4.18.3.0, 4.18.2.1, 4.18.2.0, 4.18.1.0, 4.18.0.0, 4.17.2.1, 4.17.2.0, 4.17.1.0, 4.17.0.0, 4.16.4.0, 4.16.3.0, 4.16.2.0, 4.16.1.0, 4.16.0.0, 4.15.1.0, 4.15.0.0, 4.14.3.0, 4.14.2.0, 4.14.1.0, 4.14.0.0, 4.13.0.0, 4.12.0.0, 4.11.1.0, 4.11.0.0, 4.10.1.0, 4.10.0.0, 4.9.1.0, 4.9.0.0, 4.8.2.0, 4.8.1.0, 4.8.0.0, 4.7.0.2, 4.7.0.1, 4.7.0.0, 4.6.0.1, 4.6.0.0, 4.5.1.0, 4.5.0.0, 4.4.1.0, 4.4.0.0, 4.3.1.0, 4.3.0.0, 4.2.0.2, 4.2.0.1, 4.2.0.0, 4.1.0.0, 4.0.0.0, 3.0.3.2, 3.0.3.1 (constraint from non-reinstallable package requires installed instance) [__4] fail (backjumping, conflict set: base, foo, primitive) After searching the rest of the dependency tree exhaustively, these were the goals I've had most trouble fulfilling: base, primitive, vector-algorithms, criterion, uvector, foo Try running with --minimize-conflict-set to improve the error message. And similar problems occur when depending on `unliftio` or `attoparsec`. How should I approach this? And I expect to run into similar questions in the near future, i.e., related to bulding, testing, using, but not necessarily related to [1]. Where should I ask? Kind regards Stefan [1]: https://github.com/haskell/core-libraries-committee/issues/367 [2]: https://gitlab.haskell.org/ghc/ghc/-/wikis/contributing -- Stefan Klinger, Ph.D. -- computer scientist o/X http://stefan-klinger.de /\/ https://github.com/s5k6 \ I prefer receiving plain text messages, not exceeding 32kB.
You almost always need to use head.hackage with development ghc builds,
because Hackage won't have recent enough versions of your dependencies (see
for example the error for the primitive dependency).
repository head.hackage.ghc.haskell.org
url: https://ghc.gitlab.haskell.org/head.hackage/
secure: True
key-threshold: 3
root-keys:
26021a13b401500c8eb2761ca95c61f2d625bfef951b939a8124ed12ecf07329
7541f32a4ccca4f97aea3b22f5e593ba2c0267546016b992dfadcd2fe944e55d
f76d08be13e9a61a377a85e2fb63f4c5435d40f8feb3e12eb05905edb8cdea89
If you open the repository URL in a browser, you'll get a little more
information.
On Tue, Dec 2, 2025 at 2:28 PM Stefan Klinger
Hello,
what do I have to do to use a locally compiled GHC on my own projects?
Background: I'm working on this [1].
I've managed to compile GHC following the instructions given on https://ghc.dev, also here [2]. I can run
$ ./_build/stage1/bin/ghc --interactive GHCi, version 9.15.20251202: https://www.haskell.org/ghc/ :? for help
with the expected result.
However, the locally built compiler (master branch, without any modifications) fails with all but the most primitive of my own projects. I try to do this by adding a line
with-compiler: /home/sk/prg/ghc/master/_build/stage1/bin/ghc
to the `cabal.project` file of a project. Then, success depends on the dependencies of a project. Here is one using `criterion`:
$ cabal build Warning: Unknown/unsupported 'ghc' version detected (Cabal 3.12.1.0 supports 'ghc' version < 9.12): /home/sk/prg/ghc/third/_build/stage1/bin/ghc is version 9.15.20251202 Resolving dependencies... Error: [Cabal-7107] Could not resolve dependencies: [__0] next goal: foo (user goal) [__0] rejecting: foo-1.0 (constraint from user target requires ==0.0.1) [__0] trying: foo-0.0.1 [__1] trying: criterion-1.6.4.1 (dependency of foo) [__2] trying: vector-algorithms-0.9.1.0 (dependency of criterion) [__3] trying: primitive-0.9.1.0 (dependency of vector-algorithms) [__4] next goal: base (dependency of foo) [__4] rejecting: base-4.22.0.0/installed-inplace (conflict: primitive => base>=4.10 && <4.22) [__4] rejecting: base; 4.21.0.0, 4.20.2.0, 4.20.1.0, 4.20.0.1, 4.20.0.0, 4.19.2.0, 4.19.1.0, 4.19.0.0, 4.18.3.0, 4.18.2.1, 4.18.2.0, 4.18.1.0, 4.18.0.0, 4.17.2.1, 4.17.2.0, 4.17.1.0, 4.17.0.0, 4.16.4.0, 4.16.3.0, 4.16.2.0, 4.16.1.0, 4.16.0.0, 4.15.1.0, 4.15.0.0, 4.14.3.0, 4.14.2.0, 4.14.1.0, 4.14.0.0, 4.13.0.0, 4.12.0.0, 4.11.1.0, 4.11.0.0, 4.10.1.0, 4.10.0.0, 4.9.1.0, 4.9.0.0, 4.8.2.0, 4.8.1.0, 4.8.0.0, 4.7.0.2, 4.7.0.1, 4.7.0.0, 4.6.0.1, 4.6.0.0, 4.5.1.0, 4.5.0.0, 4.4.1.0, 4.4.0.0, 4.3.1.0, 4.3.0.0, 4.2.0.2, 4.2.0.1, 4.2.0.0, 4.1.0.0, 4.0.0.0, 3.0.3.2, 3.0.3.1 (constraint from non-reinstallable package requires installed instance) [__4] fail (backjumping, conflict set: base, foo, primitive) After searching the rest of the dependency tree exhaustively, these were the goals I've had most trouble fulfilling: base, primitive, vector-algorithms, criterion, uvector, foo Try running with --minimize-conflict-set to improve the error message.
And similar problems occur when depending on `unliftio` or `attoparsec`.
How should I approach this?
And I expect to run into similar questions in the near future, i.e., related to bulding, testing, using, but not necessarily related to [1]. Where should I ask?
Kind regards Stefan
[1]: https://github.com/haskell/core-libraries-committee/issues/367 [2]: https://gitlab.haskell.org/ghc/ghc/-/wikis/contributing
-- Stefan Klinger, Ph.D. -- computer scientist o/X http://stefan-klinger.de /\/ https://github.com/s5k6 \ I prefer receiving plain text messages, not exceeding 32kB. _______________________________________________ Haskell-Cafe mailing list -- haskell-cafe@haskell.org To (un)subscribe, modify options or view archives go to: Only members subscribed via the mailman list are allowed to post.
-- brandon s allbery kf8nh allbery.b@gmail.com
Brandon Allbery (2025-Dec-02, excerpt):
You almost always need to use head.hackage
Splendid, Thanks =) -- Stefan Klinger, Ph.D. -- computer scientist o/X http://stefan-klinger.de /\/ https://github.com/s5k6 \ I prefer receiving plain text messages, not exceeding 32kB.
participants (2)
-
Brandon Allbery -
Stefan Klinger