<div dir="ltr">Hi all,<br><div class="gmail_quote"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><br></div><div>I have a project that I’d like to try to build with GHC HEAD, but it’s a large project with a lot of dependencies, and while there’s a lot of information on building GHC itself, I haven’t been able to find very many resources on what workflow people use to actually build projects in the wild using it. I found this wiki page, “Installing packages in your test compiler,” which has a little guidance, but the details are sparse:</div><div><br></div></div></div></div></div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><a href="https://gitlab.haskell.org/ghc/ghc/wikis/debugging/installing-packages-inplace" target="_blank">https://gitlab.haskell.org/ghc/ghc/wikis/debugging/installing-packages-inplace</a></div></div></div></div></div></div></blockquote><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><br></div><div>However, I’ve been struggling to actually get my project to build using <font face="monospace">cabal-install</font> paired with a stage 2 compiler. I realize some of this is just fundamental—various libraries need to be updated for new versions of GHC—but I’m willing to go to the effort to manually resolve those conflicts so long as I know the right way to go about doing it.<br></div><div><br></div><div>One simple thing I did try (and failed at) is building an updated version of <font face="monospace">cabal-install</font> itself using my updated GHC. From inside my checkout of the GHC repo, I tried the following:<br></div><div><br></div></div></div></div></div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><div><div><div><div><div><div><font face="monospace">$ cd libraries/Cabal/cabal-install</font></div></div></div></div></div></div></div><div><div><div><div><div><div><div><font face="monospace">$ cabal --version</font></div></div></div></div></div></div></div><div><div><div><div><div><div><div><font face="monospace">cabal --version</font></div></div></div></div></div></div></div><div><div><div><div><div><div><div><font face="monospace">cabal-install version 2.4.1.0</font></div></div></div></div></div></div></div><div><div><div><div><div><div><div><font face="monospace">compiled using version 2.4.1.0 of the Cabal library</font></div></div></div></div></div></div></div><div><div><div><div><div><div><div><font face="monospace">$ cabal --with-compiler=<path to ghc> --package-db=<path to package db> \</font></div></div></div></div></div></div></div><div><div><div><div><div><div><div><font face="monospace">    new-build cabal-install</font></div></div></div></div></div></div></div></blockquote><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><br></div><div>However, this failed to compile due to out-of-bounds versions of certain packages, so I tried again with <font face="monospace">--allow-newer</font>:<br></div><div><br></div></div></div></div></div></div></div></div></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><div><div><div><div><div><div><div><div><div><font face="monospace">$ cabal --with-compiler=<path to ghc> --package-db=<path to package db> \</font></div></div></div></div></div></div></div></div></div></div><div><div><div><div><div><div><div><div><div><div><font face="monospace">    new-build cabal-install --allow-newer=base,ghc-prim,template-haskell</font></div></div></div></div></div></div></div></div></div></div></blockquote><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><br></div><div><div>This time, it managed to produce a build plan, but for reasons I don’t understand, both <font face="monospace">Cabal-3.1.0.0</font> and <font face="monospace">Cabal-2.4.1.0</font> are in the build plan, and the latter fails to compile against newer versions of <font face="monospace">base</font> (due to the <font face="monospace">MonadFail</font> changes). I tried to figure out what was causing <font face="monospace">Cabal-2.4.1.0</font> to end up in the build plan, but running <font face="monospace">new-build</font> with the <font face="monospace">-v3</font> option didn’t seem to give me any more explanation.</div><div><br></div><div>Apologies if this is really a request for support with <font face="monospace">cabal-install</font>, and it doesn’t belong on this list, but I figured I’d start here, since I imagine the people on this list are best-equipped to answer questions involving using GHC HEAD. I’d appreciate any pointers or resources anyone has!</div><div><br></div><div>Thanks,</div><div>Alexis</div></div></div></div></div></div></div></div></div></div></div>
</div></div>