On Thu, Apr 1, 2010 at 6:13 PM, Rogan Creswick <creswick@gmail.com> wrote:
On Thu, Apr 1, 2010 at 3:52 PM, Thomas Tuegel <ttuegel@gmail.com> wrote:
>
> At this point, the package author need only run:
>
> $ ./Setup configure
> $ ./Setup build
> $ ./Setup test

My general feeling has been that Setup is being discouraged in favor
of using 'cabal <foo>', but I don't have any solid evidence for that
(and I could very well be wrong!).  They do do slightly different
things, so I think it's wise to figure out which idiom is most likely
to be used and work with that.

I haven't figured out how it's possible, but I'm convinced that ./Setup configure vs. cabal configure can lead to a different set of dependencies being selected.  This can lead to diamond dependency problems.  (I'm convinced this happen on at least one machine I know of.)

What I don't understand is how it's possible for the discrepancy to happen.  It's as if ./Setup and cabal-install use different algorithms for dependency resolution, but as I understand it, both should be using the Cabal library for that.  My only other thought is that perhaps ./Setup uses a different version of the Cabal library than what cabal-install uses.

Perhaps Duncan can comment on this.

Jason