Wishlist

What does darcs need that Cabal doesn't yet offer?

  1. Ability to build individual module targets (which is nice for developers) #15

  2. Parallel builds (will also be addressed by #15)

  3. /!\ Ability to automatically decide a configuration on non-Haskell build-depends. Also needs to decide on the basis of other deps declared in the .cabal file, like c libs, build-tools, compiler extensions. #342 mailing list thread

  4. Ability to build documentation #330, changelog #299 #224, etc.

  5. Avoid recompiling common code between libdarcs and the darcs binary #89

General notes

  1. I care about my users--and thus like to give them options and reduce the dependencies of my software - DavidRoundy

  2. Note that the first two issues above are part of a substantial internal change targeted for Cabal-2.0. We have a GSoC project that has been working on this issue over the summer.
  3. Optional or optionally bundled dependencies are already possible from Cabal-1.2 onwards using Cabal configurations (relating to David's quote about options to reduce the deps of software.).
  4. Cabal does not aspire to replace the use of autoconf, which is the ugly part of darcs' build system.
    1. I think it does aspire to provide parts of what autoconf does, namely selecting a configuration based on what is available on the system; but it queries databases (so far just ghc-pkg) and checks version numbers rather than doing feature tests.

Background

  1. Discussion by Duncan on the philosophical differences between cabal and autoconf (2008-04)

  2. Discussion on darcs-devel Curl build issues (2008-04)

Discussion

  1. Cabal advantage: works when GHC does, particularly on non-cygwin/mingw windows
  2. Cabal advantage: metadata (particularly explicit dependency declaration) makes distro packaging much simpler
  3. autoconf advantage: feature tests are very portable
  4. autoconf advantage: feature tests are very flexible (arbitrary shell if necessary)
  5. autoconf disadvantage: feature tests are very slow because they run GHC each time
  6. autoconf disadvantage: information about how to satisfy missing dependencies is ad-hoc and might be completely missing if a feature test fails for an unexplained reason


CategoryDevelopers

DarcsWiki: CabalWishlist (last edited 2008-11-08 14:38:09 by EricKow)