Hi!
I’m beginning work on a formal verification tool for DAML that is likely to require some additions to the daml surface syntax. However, I am having trouble building the DA fork of GHC due to Haskell toolchain and library versioning issues. Is there a docker container or similar development environment available that allows simpler builds of da-ghc?
In particular, I followed the directions here:
Running the command:
hadrian/build.sh --configure --flavour=quickest -j
within the ghc repository yields a number of cabal errors having to do with toolchain and library versions.
Resolving dependencies...
Error: cabal: Could not resolve dependencies:
[__0] next goal: Cabal (user goal)
[__0] rejecting: Cabal-3.8.1.0/installed-3.8.1.0, Cabal-3.6.2.0,
Cabal-3.6.1.0, Cabal-3.6.0.0, Cabal-3.4.1.0, Cabal-3.4.0.0, Cabal-3.2.1.0,
Cabal-3.2.0.0, Cabal-3.0.2.0, Cabal-3.0.1.0 (constraint from user target
requires ==3.0.0.0)
[__0] trying: Cabal-3.0.0.0
[__1] next goal: base (dependency of Cabal)
[__1] rejecting: base-4.17.0.0/installed-4.17.0.0, base-4.16.0.0,
base-4.15.1.0, base-4.15.0.0, base-4.14.3.0, base-4.14.2.0, base-4.14.1.0,
base-4.14.0.0, base-4.13.0.0 (constraint from project config
/Users/ming/research/ghc/hadrian/cabal.project.freeze requires ==4.12.0.0)
[__1] rejecting: base-4.12.0.0 (constraint from non-upgradeable package
requires installed instance)
[__1] rejecting: base-4.11.1.0, base-4.11.0.0, base-4.10.1.0, base-4.10.0.0,
base-4.9.1.0, base-4.9.0.0, base-4.8.2.0, base-4.8.1.0, base-4.8.0.0,
base-4.7.0.2, base-4.7.0.1, base-4.7.0.0, base-4.6.0.1, base-4.6.0.0,
base-4.5.1.0, base-4.5.0.0, base-4.4.1.0, base-4.4.0.0, base-4.3.1.0,
base-4.3.0.0, base-4.2.0.2, base-4.2.0.1, base-4.2.0.0, base-4.1.0.0,
base-4.0.0.0, base-3.0.3.2, base-3.0.3.1 (constraint from project config
/Users/ming/research/ghc/hadrian/cabal.project.freeze requires ==4.12.0.0)
[__1] fail (backjumping, conflict set: Cabal, base)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: base, Cabal
note that I’ve installed cabal-3.0.0.0 and ghc 8.6.5/base-4.12.0 via ghcup and have tried entering dev-env prior to running build.sh without much luck. Notably, the instructions in step 6 to --override-repository in bazel to the local checkout does seem to result in a successful build, but I can’t find the resulting ghc binary in order to test ghc --ddump-parse …
I am building on aarch64-darwin, but also have x64 and aarch64-linux available.
Thanks!