On Apr 30, 2015 7:42 AM, "Yitzchak Gale" <g...@sefer.org> wrote: > > Thomas Tuegel wrote: > > Michael is putting together some tools for us that should make added > > Haskell dependencies a non-issue from the standpoint of distributing > > cabal-install. We already have a bootstrap script for this purpose, > > but the new tools should make it more robust. So, I don't think we > > should continue to be concerned by that aspect of additional Haskell > > dependencies. > > I am *very* troubled by it. I have experienced that pain, and > found the current bootstrap script useless. I'm happy that > someone is working on new tools, and I'd love to see them.
Is there an open ticket for the issues you experienced? The only remaining problem that I know of is that the script sometimes picks dependency versions poorly; that's something we're set up to solve now. You can read about the tools in development here: https://github.com/fpco/stackage-server/issues/95 > But for Haskell to be a robust multi-platform portable language > we need to keep it simple. It is nearly impossible to get complex > tools, scripts, etc., to be completely general. > > The right approach is: > > 1. Make GHC itself portable. That itself is complex, but off-topic > here. > > 2. Provide a simple process that can be done manually to get > a working cabal given a working GHC. > > To do that, we need a simple cabal. Cabal has already become > far too complex to be in such a critical role for bootstrapping. The solution you propose adds to that complexity. Under your proposal, to bootstrap cabal-install, a user needs to: 1. Download cabal-bootstrap. 2. Install curl or equivalent, if it's not part of their usual platform (Windows). 3. Download and install a large number of dependencies, and finally cabal-install. Why is there an extra step at the beginning? Why does the user need to install curl only to immediately replace it? In contrast, under the Gershom's proposal, which I am endorsing, the user only needs to: 1. Install curl or equivalent, if it's not part of their usual platform (Windows). 2. Download and install a smaller number of dependencies, and finally cabal-install. That's a much simpler process. Having a separate bootstrap system is just adding a step: once curl or an equivalent is available on the user's system, there is no reason not to keep using it! I don't see any reason to believe any library will do a better job. Cabal is already very good at detecting available command-line utilities and managing alternatives. Regards, Tom _______________________________________________ cabal-devel mailing list cabal-devel@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/cabal-devel