
On 2008.06.14 08:56:34 +0100, Duncan Coutts
On Fri, 2008-06-13 at 22:10 -0400, Gwern Branwen wrote:
I think this may be Cabal's fault anyway. The yi.cabal includes the line: build-tools: alex >= 2.0.1 && < 3
in the 'executable yi' section, right after the build-depends, so Yi is being straightforward and upfront about its needs. Now, Cabal is obviously checking that the build-depends is satisfied first, but why isn't it checking that alex is available when it has the information it needs to check, presumably anything in build-tools is *required*, and the field name suggests that it would be checked?
Yes, you're right. This is the ticket you filed last time:
http://hackage.haskell.org/trac/hackage/ticket/227
and my comment:
One problem is that not all build-tools correspond to haskell packages. Some do some don't. We have a hard coded list of them at the moment (which can be extended in Setup.hs files) so we could extend that with what haskell package if any the tools correspond to. Any better suggestions to make it a tad more generic?
If anyone has a godd suggestion I'm happy to hear it. Otherwise we can just add a Maybe Dependency to the Program type to indicate that some build tools have a corresponding haskell package.
Duncan
Well, one work-around would be to have everyone do a library/executable split for their tools. This exposes a library module and allows it to be listed in build-depends:. (This is something of a hack, but I think it has some nice effects - it's polite to allow people access to the core logic so they can try to improve on your version, and it encourages you to make the executable more of a wrapper around a library.) -- gwern benelux EIP Red CISD LUK on botux Bletchley 2E781 Connections