Marc points out that the expressiveness of the Cabal language is insufficient for some packages, and a DSEL would be more expressive.  I have the same problem and still have to resort to makefiles to augment my .cabal files.

DSELs also provide sharing/reuse.  I know my Cabal specs are similar, and yet I cannot capture that commonality.

Using a DSEL does not imply that it route through IO, though from Marc's examples I'm guessing he has IO in mind.  Avoiding IO would address your points about day of week and random strings.

So I hope Marc's suggestion gets some consideration.

 - Conal

On 1/9/07, Neil Mitchell <ndmitchell@gmail.com > wrote:
Hi Marc,

[Snip]

> Any ideas, comments?
>
> Anyone out there who wants to join and help implementing this idea?

I'd ask why there is a Setup.hs file at all, a nice textual
declarative form seems much more sensible. You can encode everything
in Haskell, but you probably shouldn't...

First off, its harder to read, harder to parse (unless you happen to
be a Haskell compiler) and just not as straight forward. Should you be
able to pick which library version you want based on the day of the
week? Should your package name be allowed to be a random string which
changes each time?

It is a cute idea (less different forms), but I don't think it fits
the problem in this case.

Thanks

Neil
_______________________________________________
cabal-devel mailing list
cabal-devel@haskell.org
http://www.haskell.org/mailman/listinfo/cabal-devel