[Haskell-cafe] Hackage: "Build: PlanningFailed"

Volker Wysk post at volker-wysk.de
Sun Mar 31 15:30:53 UTC 2024


Am Sonntag, dem 31.03.2024 um 10:51 -0400 schrieb Brandon Allbery:
> On Sun, Mar 31, 2024 at 6:51 AM Volker Wysk <post at volker-wysk.de> wrote:
> > Why aren't all the base package versions available? I thought this was
> > one
> > of the purposes of the Cabal system...
> > 
> > And wouldn't it be better to remove the upper bound entirely?
> > 
> 
> 
> `base` is special, since it's tightly linked to the compiler (the compiler
> hardcodes the addresses of key data types and values, such as `Bool` and
> specifically `True` so it can compile guards). As such, it is impossible
> to pick a different version of `base` for use with a given compiler
> version.
> 
> Removing the upper bound has the opposite problem: if `base` changes
> enough (say, a wholesale change from `String` to `Text`, not that that
> seems likely to happen in the near term) you will be claiming that your
> code is compatible with it.

This makes sense.

So what happens when a new GHC version is released? It depends on the
version of the base package, which it ships. When the base package doesn't
get an API-breaking change, then all is well. 

When it *does* have such a change, all the Hackage packages must be checked
for compatibility with the new compiler version, and the upper bound of the
base package version must be adjusted. That sounds like a lot of effort. It
would be major happening in the Haskell community. 

This makes sense, too.

Thanks, now it's clear.

Volker



More information about the Haskell-Cafe mailing list