[Haskell-cafe] Why does cabal select base-3.0.3.2 when base-4.2.0.0 is available?

Bjorn Buckwalter bjorn.buckwalter at gmail.com
Mon Apr 26 07:57:16 EDT 2010


On Mon, Apr 26, 2010 at 19:38, Ivan Lazar Miljenovic
<ivan.miljenovic at gmail.com> wrote:
> Bjorn Buckwalter <bjorn.buckwalter at gmail.com> writes:
>> Why does cabal seem to prefer base-3.0.3.2 over base-4.2.0.0 when
>> installing packages with an unqualified base requirement? Example:
>
> You mean cabal-install rather than Cabal.  The reason that base-3 is
> chosen is because many of these old libraries won't build with base-4;
> as such, if no upper bound restriction is found on the base package then
> base-3 is chosen as it is more likely to work than base-4 (there were a
> _lot_ of breakages when base-4 first came out with 6.10.1).

I see, I guess that's pragmatic although the deprecation warning is unfortunate.

(I'm aware of the cabal-install versus Cabal distinction, but I
understand that cabal-install uses Cabal to resolve dependencies; thus
I assumed Cabal was the culprit.)

Thanks,
Bjorn


>> $ cabal install -v fad --reinstall
>> [snip]
>> Resolving dependencies...
>> selecting fad-1.0 (hackage)
>> selecting base-3.0.3.2 (installed) and 4.2.0.0 (installed) and discarding
>> syb-0.1.0.0, 0.1.0.1, 0.1.0.2, 0.1.0.3, 0.2 and 0.2.1
>> [snip]
>> Configuring fad-1.0...
>> Dependency base ==3.0.3.2: using base-3.0.3.2
>> [snip]
>> [1 of 1] Compiling Numeric.FAD      ( Numeric/FAD.hs, dist/build/Numeric/FAD.o )
>>
>> Numeric/FAD.hs:1:0:
>>     Warning: Module `Prelude' is deprecated:
>>                You are using the old package `base' version 3.x.
>>                Future GHC versions will not support base version 3.x. You
>>                should update your code to use the new base version 4.x.
>> [snip]
>>
>
> --
> Ivan Lazar Miljenovic
> Ivan.Miljenovic at gmail.com
> IvanMiljenovic.wordpress.com
>


More information about the Haskell-Cafe mailing list