Bulat Ziganshin wrote:
on the other side, when we upgrade ghc itself, it should be possible to leave versions of these libraries that are already installed
Now *that* is the tricky part. It's something I believe is important and I'd like to see GHC support this in the future.
Just replacing GHC without upgrading libraries (or RTS) should be possible, but we have to be careful not to modify any shared knowledge between GHC and the RTS. If the RTS is upgraded, we have to be careful about things that the RTS knows about the base package.
If the base package is upgraded without also replacing the other libraries... this is where it gets really tricky. Binary dependencies between library code tend to be very deep due to cross-module inlining and optimisations, so right now the chances of upgrading base without replacing everything else are almost zero. To be able to do this I believe we have to track very carefully the API/ABI that a package is exposing, so that we can be sure that a replacement is truly compatible. This may mean restricting optimisations across package boundaries.
Cheers, Simon _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users