
refold: It's a good question, and thinking about this question more carefully, no, this patchset alone doesn't give us the capability. The
#8244: Removing the Cabal dependency -------------------------------------+------------------------------------- Reporter: nh2 | Owner: duncan Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.6.3 Resolution: | Keywords: Operating System: | Architecture: Unknown/Multiple Unknown/Multiple | Difficulty: Unknown Type of failure: | Blocked By: None/Unknown | Related Tickets: Test Case: | Blocking: | Differential Revisions: D172 | -------------------------------------+------------------------------------- Comment (by duncan): Replying to [comment:25 ezyang]: problem is that GHC is still tightly coupled to ghc-pkg, but ghc-pkg still has a Cabal dependency and thus if you update Cabal, you also need to upgrade ghc-pkg. So, the only way to make Cabal separately upgradeable is by siphoning ghc-pkg off into a proper package, relaxing the tight coupling and upgrading it when you upgrade Cabal. duncan, can we do this? I don't think this is true. If you upgrade Cabal you do not need to upgrade ghc-pkg. Rememer that Cabal can work with older (and often newer) versions of ghc. It is in fact not tightly coupled with ghc-pkg, because the coupling is only via the external textual representation of the `InstalledPackageInfo` which gives us a lot of room for forwards and backwards compatability. The only times when they're more strongly coupled is when ghc-pkg requires new fields in the `InstalledPackageInfo`. In that case you need to be using a newer Cabal. So as far as I can see, upgrading Cabal will still be fine under this new scheme, with the bonus that the ghc library itself will not use it. GHC will still ship with Cabal, but you could add a new version. Could you take an existing ghc binary tarball and modifiy it to include a newer Cabal lib without breaking things? Probably yes. No other libraries that ghc ships will depend on Cabal, so they would not break. And it would be fine for ghc-pkg to have been built against the older Cabal, so long as it is statically linked against Cabal (or the older Cabal .so is still included). -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8244#comment:30 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler