[Haskell-beginners] Cabal dependencies are per target or global?

Dimitri DeFigueiredo defigueiredo at ucdavis.edu
Sat Jul 18 16:47:04 UTC 2015


Thanks Karl!

The way cabal is working makes sense now.

I don't like it, though. Having a build fail because of changes made to 
another target is counter-intuitive to me. I don't understand your 
argument for why the current behavior is a good thing. It seems we would 
be extending so called "cabal hell" to within targets in a package if we 
were to change this? I do wish there were other options here.

Anyway, thanks again for the explanation!


Dimitri

Em 17/07/15 19:29, Karl Voelker escreveu:
> On Fri, Jul 17, 2015, at 04:08 PM, Dimitri DeFigueiredo wrote:
>> Is this a bug? Or am I missing something?
> The dependencies are not global. You can see this by trying to import a
> module in Mpm.hs that is in one of the unique dependencies of "agent" -
> the import fails. [1]
>
> However, in order to build, you must first configure. And the
> "configure" step cannot be done for a single executable - it's done for
> the whole package. Since package dependencies are checked during the
> configure step, you have to have all the dependencies in place for all
> targets.
>
> I think this is probably a good thing, because otherwise, you could end
> up installing some packages that satisfy the dependencies of one target,
> only to find out that the particular package versions which were chosen
> make it impossible to satisfy the dependencies of the other target.
>
> -Karl
>
> 1. https://gist.github.com/ktvoelker/d561889ac4bd56cadc2d
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners



More information about the Beginners mailing list