[GHC] #8244: Removing the Cabal dependency
GHC
ghc-devs at haskell.org
Thu Aug 28 13:24:49 UTC 2014
#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]:
> refold: It's a good question, and thinking about this question more
carefully, no, this patchset alone doesn't give us the capability. The
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
More information about the ghc-tickets
mailing list