Describe the bug
As of #10982, we now support reinstalling more packages like base when using GHC-9.14. This leads to issues since historical versions of base were released without dependency bounds.
Reproduction instructions
This means that if a package doesn't support GHC-9.14's base, then it will instead pick a very old version of base and fail with:
Error:
Dependency on unbuildable library from ghc-bignum
In the stanza 'library'
In the package 'base-4.19.2.0'
See also: https://gitlab.haskell.org/ghc/ghc/-/issues/26541
Expected behavior
It should fail with a better message.
Proposed solution
One possibility to fix this is to revise old versions of base with something like:
if impl(ghc >= 9.14):
build-depends: ghc-prim<0
This approach carries some risk. There are a lot of versions of base so the risk of making a mistake is high. We also want to make sure that we don't accidentally make some of these unusable with old versions of cabal.
Perhaps we should implement the fix in cabal. For instance we could avoid picking a version of base which is using the -this-unit-id hack.
We were wondering if you all had an opinion about what the best approach to be. I'm happy to implement something if we come up with a plan.
Describe the bug
As of #10982, we now support reinstalling more packages like
basewhen using GHC-9.14. This leads to issues since historical versions ofbasewere released without dependency bounds.Reproduction instructions
This means that if a package doesn't support GHC-9.14's
base, then it will instead pick a very old version ofbaseand fail with:See also: https://gitlab.haskell.org/ghc/ghc/-/issues/26541
Expected behavior
It should fail with a better message.
Proposed solution
One possibility to fix this is to revise old versions of
basewith something like:This approach carries some risk. There are a lot of versions of
baseso the risk of making a mistake is high. We also want to make sure that we don't accidentally make some of these unusable with old versions ofcabal.Perhaps we should implement the fix in
cabal. For instance we could avoid picking a version ofbasewhich is using the-this-unit-idhack.We were wondering if you all had an opinion about what the best approach to be. I'm happy to implement something if we come up with a plan.