[Haskell-cafe] One problem with Cabal-install and dependencies

Ivan Lazar Miljenovic ivan.miljenovic at gmail.com
Sun Jul 4 10:47:30 EDT 2010


Michael Lazarev <lazarev.michael at gmail.com> writes:

> Ivan Lazar Miljenovic wrote:
>
>> You don't install containers by hand.
>
> I didn't want to, I had to do this because one library depending on
> them ceased to install.
>
>> This package sounds a bit like the package you're trying to install
>> hasn't been updated to the latest version of GHC (containers-0.2 was
>> GHC-6.10, wasn't it?).
>
> On http://hackage.haskell.org/package/containers-0.2.0.1 it is stated
> that it's "Built on: ghc-6.12"

Doesn't mean you should, though.  Care to tell us which package this is
that you're trying to install?

> Do you mean that if it's just "build-depends: base" without version
> constraint, cabal-install has some special code that chooses the third
> version of base?

Yes.  The reason being, when base-4 came out with GHC 6.10.1, there were
a lot of breakages caused due to the non-backwards-compatible changes in
Control.Exception (which was for all intents and purposes completely
re-written but using the same function names).  As such, since a lot of
packages just said "base" rather than specifying which version, there
were quite a few build failures and users were understandably annoyed.
cabal-install had just made its debut around that time, and in an
attempt to avoid this issue if there's no upper bound on the version of
base used (which all new packages must have to be uploaded to Hackage),
then it assumes that it's one of the old pre-6.10 packages and it won't
build with base-4 and as such will use base-3.  Similar things happen
with parsec, etc.

-- 
Ivan Lazar Miljenovic
Ivan.Miljenovic at gmail.com
IvanMiljenovic.wordpress.com


More information about the Haskell-Cafe mailing list