I have now pulled David's franchise patches into the stable branch. Franchise is now available as an *optional* build method (you can still use the old autoconf-based approach).
Why are we doing this? ====================== The main reason for making this switch is that it makes building darcs a lot easier on Windows. At least two users (under Windows) have reported that indeed the new build system makes darcs easier to build on Windows. Do I need to install franchise? ================================ Not yet! The autoconf-make based system will still be available for a few weeks. But if you would like to test out the new build system, please install franchise and give it a whirl. Buildbot updates shortly. The following table sums up the transition that we will undergo over the next few weeks. For now, we still use the autoconf/make system, but as we become more confident that the franchise-based one does everything the current build system does, without any regressions, we will eventually drop both autoconf and make. +--------------+----------------------------------+ | | now middle end | +--------------+----------------------------------+ | C lib | autoconf franchise franchise | | checking | | +--------------+----------------------------------+ | Haskell lib | autoconf franchise franchise | |checking | | +--------------+----------------------------------+ | building | make make franchise | +--------------+----------------------------------+ Note that our Setup.hs file and the franchise build system are evolving together. So if you want to help test the franchise-based build system, you will need to darcs get http://darcs.net/repos/franchise and probably update your local copy from time to time. Isn't there some kind of debate about this? =========================================== Indeed, there are many people who would prefer that darcs used the Cabal system instead of franchise. Most of us from both sides accept (if grudgingly) that some mixture of franchise and Cabal is necessary; the question is just to what extent we use either of the libraries. The following table compares the current state of affairs with two prototypical mixtures that we could aim for: the "David" mixture uses franchise for everything, but allows provides a darcs.cabal file so for packaging and tools like cabal-install. The "Don" mixture uses Cabal to do everything but uses franchise just to check for C libraries. +---------------+----------------------------------+ | | old David Don | +---------------+----------------------------------+ | overall | make franchise cabal | | framework | | +---------------+----------------------------------+ | C lib | autoconf franchise franchise | | checking | | +---------------+----------------------------------+ | Haskell lib | autoconf franchise cabal | | checking | | +---------------+----------------------------------+ | building | make franchise cabal | +---------------+----------------------------------+ | packaging | - cabal cabal | +---------------+----------------------------------+ I hope that the following summary does justice to everybody's point of view. Bias warning: I personally favour a more Cabal-oriented mixture, but I also intend to fully support the franchise transition. * C libraries. We cannot get away from using something like franchise at the moment, because we need some sort of autoconf replacement to check for functionality in C libraries. * Concerns about maturity. Don points out that build systems are a time-sink (Cabal took 6 years to get to its current state). David thinks that by limiting ourselves to the problems that are relevant to darcs, we can get away with a lot less development. * Backward-compatibility. David wants to avoid the situation where new versions of darcs have different dependencies than older versions of darcs solely because the contemporary GHC version has changed. Don points out that this is not the case with GHC 6.10 (only 4% of packages break). * Forward-compatibility. David wants to ensure that already released versions of darcs will build with a future version of GHC. * Matching the Cabal interface. Franchise now matches the familiar Cabal (command line) interface. You can even install darcs using cabal-install cabal's command. * Maintaining more than one build system. Jason thinks we should just support all three systems because people will want Cabalisation anyway. Trent and David feel that it would be better to focus our attention on a single build system. * More than one version of Haskell packages. Ben pointed out that if you have two versions of parsec, franchise could just pick the wrong one (parsec 3 instead of parsec 2). David thinks this a matter of refining the API check. Simon points out that there is also the diamond dependency problem to worry about. Anyway, that's all for now. Please shout if you have any questions or complaints. Thanks, everyone! -- Eric Kow <http://www.nltg.brighton.ac.uk/home/Eric.Kow> PGP Key ID: 08AC04F9
pgpFanIGdCIqV.pgp
Description: PGP signature
_______________________________________________ darcs-users mailing list [email protected] http://lists.osuosl.org/mailman/listinfo/darcs-users
