On Fri, Jul 23, 2010 at 03:33, wren ng thornton <w...@freegeek.org> wrote: > 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)
I always thought "Build-Type: Simple" was in some way connected to the module Distribution.Simple. /M -- Magnus Therning (OpenPGP: 0xAB4DFBA4) magnus@therning.org Jabber: magnus@therning.org http://therning.org/magnus identi.ca|twitter: magthe _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe