[darcs-users] enfranchising darcs?

Don Stewart dons at galois.com
Fri Oct 17 16:24:51 UTC 2008

> On Thu, Oct 16, 2008 at 2:25 PM, Jason Dagit <dagit at codersbase.com> wrote:
> > * Now it seems as though the plan is to throw autotools out the window on
> > all platforms and unconditionally.  Meaning that on POSIX platforms we are
> > changing something that isn't broken.
> No, the configure script *is* broken, it's just not as broken as cabal
> is.  It doesn't allow very good forward-compatibility, only
> backward-compatibility, meaning with every major release of ghc, darcs
> is broke, because the configure script needs to explicitly  mention
> every possible  package that might contain a module that  we use.
> Franchise fixes this bug.

Could you summarise how cabal is broken?
Given that we build and distribute aroun 800 packages using Cabal now,
it's hard to imagine that it is horribly broken.

> > has been under development for a few years and is now approaching a mature
> > status.  Cabal is tested, battle hardened, and all of hackage is built
> > regularly to ensure that it remains working as new features are added and
> > code is refactored.  Duncan is very responsive about bugs, there are summer
> > of code projects every summer for Cabal, it has a nice project website with
> > bugtracker and community, lots of documentation, tutorials around the net,
> > and otherwise seems very healthy and alive.  Recently Duncan gave a talk
> > about the future of Cabal[1] that sounds very promising.
> But as I've mentioned many times, cabal doesn't even attempt to
> replace autotools.  Given that I feel  (and windows-concerned users
> such as Zooko agree) that a configure that tests for the presence of
> libraries is importent, cabal is simply not an option.  Add  with that
> a complete lack of forward or backward compatibility, and you've got a
> tool that is really not a build system I would consider considering.

Cabal implements extensive forward and backward compatibility support.
Somehow hackage keeps building, as new compilers appear, and new
libraries appear, and yet we don't need to update 800 .cabal files.

Could you be more specific?

> > Now the part that I don't understand in light of the above is this:
> > If we're going to use franchise for darcs, why do we need to exclude the use
> > of autotools and cabal?
> The build system is important, that's why, and because it's something
> that every developer needs to touch, sooner or later.  It's the first
> experience any new developer has with darcs, and often the first
> experience new users have (although  nowdays darcs is packaged in
> quite a few distros).  I don't  want someone who just wants to add a
> feature that uses some library to have to figure out how to modify
> three  different build systems, and I don't want to have to track down
> bugs in three different build systems.  The smart choice is to have
> one build system that works well.
> > There are plenty of other things I don't understand about this situation,
> > but that one is most frustrating to me at the moment.  If someone says, "No,
> > you've got it wrong, you'll still be able to build with either autotools or
> > cabal without any of the other three."  I'll go happily back to hacking and
> > forget all about this :)
> Keep in mind, you cannot currently build with cabal without also using
> autotools and gnu make and perl.  Cabal is not one of the existing
> alternatives.

That's incorrect.

-- Don

More information about the darcs-users mailing list