Johan Tibell johan.tibell at
Sun Jan 11 12:35:35 UTC 2015

Overall I like this approach. One problem the old script suffered from was
that its goals and, in particular, non-goals weren't clearly stated. Lets
state the goal clearly:

  Goal: Be able to bootstrap a cabal-install binary of a bare GHC install
  Non-goal: Be able to bootstrap using a modified global package DB or
using a user DB in an arbitrary state.

The latter is a non-goal because doing that well requires a constraint
solver. We've tried to to emulate that using regexes in the past and that
has become more and more untenable. The goal is met by the new Bootstrap.hs
by nailing down the exact version numbers to use.

Questions about

 * Can we make it work in-tree? I tried it on master now and that didn't
work (because it tried to install Cabal-1.23 from Hackage, which doesn't
exist.) This is needed to we can run it on Travis to test it.
 * We need to make sure it works on supported platforms: Linux, OS X, and
Windows. This is mostly about testing.
 * How can I test it in the current state? As mentioned above,
bootstrapping in the master branch didn't work.
 * We should output a message once the install is done to tell the user how
to use the bootstrapped binary. In particular, we might want to tell the
user to use it to reinstall cabal-install not in a sandbox.

On Sat, Jan 10, 2015 at 12:52 PM, Jake Wheat <jakewheatmail at>

> I have an draft rewrite of in haskell. I've tried to improve
> the maintainability of the code and reliability of running the bootstrap.
> Any feedback is appreciated!
> _______________________________________________
> cabal-devel mailing list
> cabal-devel at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the cabal-devel mailing list