[darcs-users] enfranchising darcs?

David Roundy daveroundy at gmail.com
Fri Oct 17 17:04:24 UTC 2008

On Fri, Oct 17, 2008 at 12:48 PM, Jason Dagit <dagit at codersbase.com> wrote:
> On Fri, Oct 17, 2008 at 7:29 AM, David Roundy <daveroundy at gmail.com> wrote:
>> 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.
> I couldn't figure out how Franchise fixes this from looking at the source
> repository (and there doesn't seem to be any website or user documentation
> other than an example or two of very simple projects that don't illustrate
> this point).  Could you please explain?

The darcs setup.hs script demonstrates this.  It doesn't mention what
packages are needed to build darcs, but franchise determines this,
which means that if a package name is changed, darcs will still build.
 It's a problem, of course, that ghc --make also solves, except that
ghc --make doesn't solve other problems like defining environment
variables based on the presence of certain modules or external

With franchise, so long as the API we use doesn't change, darcs will
continue to build without modification (to either franchise, or the
darcs build system) on future versions of ghc, because franchise knows
how to search for packages that provide what we need.  With autoconf,
darcs can only continue to build if modules we use are not moved into
new packages, and similarly with cabal.


More information about the darcs-users mailing list