
On Wed, 2006-09-20 at 15:51 +0400, Bulat Ziganshin wrote:
Hello libr,
i think it's appropriate place to complain about Cabal?
Sure. (Or the cabal bug tracker or the cabal-devel list)
situation: ghc 6.4.2 (2006.06.09) with built-in Cabal. i install package with the following dependencies:
Build-Depends: base, ArrayRef==0.1, fps>=0.7, template-haskell
there are ArrayRef 0.1 (hidden) and ArrayRef 0.1.1 (exposed) installed
Cabal correctly selects ArrayRef 0.1 when building the lib. but on installation it makes the following trick:
Registering Streams-0.2.2... Reading package info from ".installed-pkg-config" ... done. Warning: hiding the following packages to avoid conflict: ArrayRef-0.1.1 Streams-0.1.6
hiding old version of Stream library is correct, but why the hell it hides old ArrayRef library??? as the final result, both old and new ArrayRef libraries are hidden:
It is ghc-pkg that does this hiding upon registration, not Cabal. Try it manually, you'll get the same behaviour. The reason is as ghc-pkg explains: that there would be duplicate modules exposed otherwise if Streams-0.2.2 and ArrayRef-0.1.1 were exposed at once. This is because Streams-0.2.2 is exposed and depends on arrayRef-0.1. With the recent relaxation in GHC's package/module name space system ghc-pkg might be able to do something different in this case. Try asking about it on the ghc-users list. Duncan