[Haskell-cafe] Re: Gut Build System

Achim Schneider barsoap at web.de
Fri Mar 5 17:14:03 EST 2010

Matthias Kilian <kili at outback.escape.de> wrote:

> On Fri, Mar 05, 2010 at 09:26:08PM +0000, Simon Marlow wrote:
> > >Switching GHC to a completely new build system written completely
> > >in Haskell would be the most stupid idea ever. (You know why)
> > 
> > You're referring to bootstrapping, I presume?
> Yes.
As it stands, GHC can't be bootstrapped without a GHC, anyway. I'd love
to see GHC bootstrapping from C, e.g. via hugs, though. (A man is
allowed to dream)

> > I did think about mentioning that.  Of course any Haskell build
> > system would have to support cross-compilation or some other
> > bootstrapping method, e.g.  generation of a build script.
> That's a noble goal. But it has to be kept in mind.
This may be fairly easy, if the generated script does not have to come
with major build-system capabilities: Leaving out most of dependency
analysis and support -- at the utmost -- restarting a failed build from
the rule whose source file has last recently changed, otherwise
compiling in a linear order deduced at script generation time should
reduce the problem to serializing the actions generated for a clean
build to a shell script.

I'm cross-posting this to the cafe and suggest that most if not all of
this discussion be done there as most of it doesn't specifically relate
to GHC. And there might be volunteers amidst the crowd.

That said, I'd very much like to see a make-replacement done in
Haskell, there's not only place for a properly-scriptable make, but
also sufficient room for general innovation: 

Omake[1] would be even better if it wasn't scripted in some ad-hoc,
impure, incomplete ocaml dialect but in a decently pure functional

IBB[2] sound like a feature we'd definitely want to have (thanks for
the link, Thomas)

I'd also like to point to Nix[3] and Cabal[4] for ideas, and I bet most
of the dependency analysis could be ripped from the latter.

I think we can do vastly better than the whole SCons/CMake/Jam crowd.

[1] http://omake.metaprl.org/index.html
[3] http://nixos.org/nix/
[4] You know where.

(c) this sig last receiving data processing entity. Inspect headers
for copyright history. All rights reserved. Copying, hiring, renting,
performance and/or quoting of this signature prohibited.

More information about the Haskell-Cafe mailing list