Version control systems

Malcolm Wallace malcolm.wallace at cs.york.ac.uk
Tue Aug 12 05:10:31 EDT 2008


On 12 Aug 2008, at 01:35, Manuel M T Chakravarty wrote:
> Ah, good point!  Changing ghc to git means *all* developers of boot  
> libraries need to use git *regardless* of what repo format the boot  
> libraries are in.  After all, they need to validate against the  
> current ghc head before pushing.

It is worth pointing out that I *never* validate against ghc head when  
I commit to the core libraries. (Actually, I don't even keep any  
checkout of ghc head.)  Generally I'm fixing something that has  
unintentionally broken the nhc98 build of the libraries, *despite* the  
breaking-patch being validated against ghc.  To be honest I don't  
particularly care if my fixing patch then breaks ghc again.  Why not?   
Because the "chain of blame" effectively leads back past me to the  
earlier patch.  (In practice, re-breaking ghc is very rare.)

Now, there is only one person taking care of nhc98 (me), and probably  
I'm its only user as well, but I do still think it is worth the 30  
secs or so every day it takes to check the nightly build logs and the  
30mins it occasionally takes to fix breakage when necessary.  Building  
a full Haskell'98 compiler is a significant undertaking, and it would  
be a great shame to simply discard it because the libraries are no  
longer available in a shared format.  Who knows, maybe someone will  
find it easier to port to their iPhone than ghc.  :-)

What I'm not really prepared to do is to extend the fixing time by an  
extra 30mins just to validate against ghc.  I might be prepared to  
learn a new VCS, but from what I've seen so far, git looks rather  
complex and difficult to use.

It is also worth noting that where a larger community of developers  
has gathered around a core library (e.g. Cabal), ghc has found it  
necessary to branch off a ghc-only version of that library, so that  
commits to the library head do not need to be validated against ghc  
head.  Igloo takes care of merging across a large bunch of patches  
every once in a while.  This model seems to work well.  In theory, the  
core library head could remain in darcs, with the ghc branch of it in  
git.  All the pain of merging would be dumped on one person (sorry  
Igloo!) but everyone else gets the benefit.

Regards,
     Malcolm



More information about the Glasgow-haskell-users mailing list