[Haskell-cafe] Compilers

Duncan Coutts duncan.coutts at worc.ox.ac.uk
Sat Nov 29 10:05:04 EST 2008


On Fri, 2008-11-28 at 19:30 -0800, John Meacham wrote:
> On Wed, Nov 26, 2008 at 07:20:12PM -0800, Jason Dagit wrote:
> > I spoke with the author of the fork a bit in IRC around the time it happened
> > and my understanding is that:
> > 1) John sternly objects to using cabal as the build system for JHC
> 
> This is a fairly silly reason to fork a project, especially jhc, for a
> number of reasons. 

In general John is right in most of his criticisms of Cabal. As someone
who works on Cabal I am well aware of the problems in its design and
implementation. I happen to think that most of the problems can be fixed
but it would be silly to suggest that the balance of advantages to
disadvantages goes in its favour for every project.

The advantages at the moment are greatest for small projects and are in
a large part due to network effects. The major problems are in the
configuration and build components. The configuration language is not
quite expressive enough and the current configuration search
implementation does not take advantage of the full expressiveness of the
existing language. The build component obviously should be based on a
dependency system, as make is, rather than IO () and ghc --make. There
are lots of things we don't do well because of this.

As I said, I think all these things are fixable. But it is a lot of
work. We're currently limited by the amount of developer time we have.
So I would like to encourage people to get involved. There are elegant
solutions to the problems. It's actually quite fun working on the new
bits and helping to drain the IO () swamp.

> It is important to me that jhc be as widely accessible at possible. The
> number of machines './configure && make install' will work on outnumbers
> those that cabal install will work on hundreds or thousands to
> one.

I've sometimes wondered why nobody has made a generic configure.ac and
makefile that wraps the Cabal build procedure. It seems pretty
straightforward and it might help lower barriers for some users,
especially, as John mentions, potential users from outside the
community.


Duncan



More information about the Haskell-Cafe mailing list