Gut Build System

Simon Marlow marlowsd at gmail.com
Fri Mar 5 07:17:55 EST 2010


On 04/03/2010 21:06, John D. Earle wrote:
> Hello,
> I wish to discuss my feature request
> http://hackage.haskell.org/trac/ghc/ticket/3912 entitled "Gut Build
> System". I suppose the title is to the point.
> I believe that considerable advantage can be achieved by positioning the
> GHC Haskell language so that it may be used as a viable alternative to
> shell scripts and make files. Using Haskell as a scripting language it
> would be possible to create a type-safe build system. Common problems
> like not being able to use a space in a path name will be a thing of the
> past among other things. Even a weakly typed language such as JavaScript
> would manage that.
> I hope to use quasi-quotation to compensate for the syntactic overhead
> that general purpose computer programming languages have and Template
> Haskell to make it efficient. I anticipate that the combination will
> have far reaching implications and may alter how computer programs are
> written in general.
> Dependencies among files I anticipate could be treated as a type. There
> is a great deal of fat that can be trimmed away. How often do we put up
> with the limitations of whatever tools we are working with? We should at
> least treat ourselves to the best tools available to us.

A build infrastructure in Haskell is certainly a good idea.  Neil 
Mitchell has made one, but it was done for his employers and as far as 
I'm aware it hasn't been released. I believe Duncan Coutts has lots of 
ideas in this direction too, you might want to talk to them.  If there 
were a good build infrastructure written in Haskell, then Cabal could 
use it and everyone could benefit, not just GHC.

I suggest that the way to start would be to design and build the 
infrastructure first, and then think about replacing GHC's build system. 
  I have to admit, having rewritten GHC's build system less than a year 
ago, I'm not particularly excited about the prospect of doing it again! 
  But if someone else were to do the work, and the result was 
maintainable and has at least the same functionality and performance, 
then it's a possibility.

Cheers,
	Simon



More information about the Cvs-ghc mailing list