Passing on more feedback from Russel -----Original Message----- From: Russel Winder [mailto:[email protected]] Sent: 11 May 2009 09:16 To: Simon Peyton-Jones Cc: Simon Marlow Subject: RE: Building GHC HEAD
On Mon, 2009-05-11 at 08:10 +0100, Simon Peyton-Jones wrote: > | It's a pity that Autotools is used for the build; it means one has to > | have a separate copy of the source for every one of the architectures > | being built, or they have to be done sequentially. > > We use a single source tree, with a linked build tree for each architecture. > (The Building Guide describes.) On Mon, 2009-05-11 at 08:44 +0100, Simon Marlow wrote: > You can do multiple build trees for a single source tree using lndir. We describe how to do it on the wiki: > > http://hackage.haskell.org/trac/ghc/wiki/Building/Using > > I agree it's useful to be able to do this - we do it all the time! QED re Autotools ! (Actually the page http://hackage.haskell.org/trac/ghc/wiki/Building/Using doesn't really give me enough detailed process information to be confident of what to do to create and use multiple build trees. I infer that actually Haskell doesn't separate the notions of source and build tree, you just have a tree and you have to copy the whole thing to a separate root for a separate platform. It just happens that Unix links or symbolic links are a way of doing this without having multiple copies of 350MB of stuff.) The problem here is that the build assumes it takes place in ./inplace which is a fixed name and not platform dependent -- big error ! The current solution is very Unix oriented, workable, but . . . Could you just mandate GNU Make and use VPATH as a way of handling remote source trees? A neater solution assuming the necessity to copy the entire tree would be: Use Bazaar to create a master mirror of the source then use lightweight checkouts to create new working trees for each architecture. Saves the hassle of using commands that have to be held in the Haskell source tree. (Git can do something similar, and I am sure Mercurial will be able to soon as well. I appreciate that Haskell is basically tied to Darcs in perpetuity, but Bazaar, Mercurial and Git are the main players in the VCS game, Darcs is a minor DVCS that is unlikely to get any traction outside the Haskell world.) Of course using SCons instead of make would solve all the problems far more cleanly: the build tree has a name dependent on the platform so exactly the same source tree can be used for as many builds as you want. (CMake can do something similar but SCons is far superior.) I suspect Haskell isn't going to modernize, even if it should ;-) -- Russel. ============================================================ Dr Russel Winder Partner Concertant LLP t: +44 20 7585 2200, +44 20 7193 9203 41 Buckmaster Road, f: +44 8700 516 084 voip: sip:[email protected] London SW11 1EN, UK. m: +44 7770 465 077 xmpp: [email protected]
signature.asc
Description: signature.asc
_______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
