Magnus Therning wrote:
On Thu, Jul 22, 2010 at 11:52, Ross Paterson <r...@soi.city.ac.uk> wrote:
On Thu, Jul 22, 2010 at 11:31:21AM +0100, Magnus Therning wrote:
On Thu, Jul 22, 2010 at 10:59, Ross Paterson <r...@soi.city.ac.uk> wrote:
Magnus is building by directly running the Setup.hs himself, which ignores
the Build-Type.  To get cabal-install to use his Setup.hs, the Build-Type
must be set to Custom.
Oh, why*2?

Why is the header there if it's not used by Cabal, and why does cabal care?
The field allows cabal to avoid compiling the Setup.hs in this case.
It might also be used by other tools, e.g. one might only trust Simple
packages.  Not all fields are used by all tools, and several of them
do not affect the operation of the library (e.g. Home-page).

All right, so why would cabal want to avoid compiling the Setup.hs?

Of course this behaviour of cabal's means that I in the future will use *Custom*
all the time, since I otherwise have to remember this surprising feature of a
tool I never use.  Is there any reason *not* to do this?

The main reason I could think of to avoid compiling it is for performance reasons. I'm not sure how compelling that is, but...

As for why not to always use Custom, as mentioned there are cabal-aware tools out there besides cabal-install. For these other tools, there is a big difference between Simple and Custom. With Simple we (ideally) already know all the semantics of what Setup.hs does, and so we can wire that into our tools. With Custom we're forced into the position of doing Haskell source analysis since we now have to discover the semantics of an arbitrary Turing machine. That's a very high wall to climb if you're just wanting to write a simple tool for doing some kind of package analysis.

(I don't think the behavior is surprising since I interpret Simple to mean that the Setup.hs file is unused/optional. Though clearly YMMV)

--
Live well,
~wren
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to