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