
Bjorn Buckwalter
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).
$ 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@gmail.com IvanMiljenovic.wordpress.com