
Hello, I have been using Haskell Platform since it was introduced because I have always heard that it is the recommended way to use GHC. Indeed, Haskell Platform has made the installation of a Haskell environment quite straightforward. My current usage strategy is a common one: * Only install Haskell Platform in --global. * Avoid installing into ~/.cabal (when possible). * Develop exclusively in Cabal sandboxes. In a recent /r/haskell post [1], user mightybyte commented:
This. The Haskell Platform installs a bunch of packages for you in --global. My experience is that this inevitably leads to problems if you're doing significant Haskell development. The best thing to do is to minimize the number of packages installed as --global. The way to do that is to install GHC directly and avoid using the Haskell Platform or Haskell distributions provided by your OS.
Asking about it in #haskell, it seems that a number of developers recommend such a minimal installation, particularly for large projects. I am very interested in minimizing the number of packages in --global, and I would like to start testing my software against the current Haskell Platform *as well as* such a minimal installation. I my initial tests (Debian stable amd64; minimal virtual machine), I tried installing GHC 7.8.2 and cabal-install (using bootstrap.sh) only. Installation went fine, `cabal update` worked fine, and `cabal sandbox init` worked fine. I then tried `cabal install hlint` (within the sandbox), and it successfully compiles a number of packages before failing when trying to build haskell-src-exts, complaining that happy could not be found. Running `cabal install happy` failed with the "setup: The program happy is required but it could not be found" error. Building happy via the source Setup.lhs worked fine, and installing the binary into my installation bin directory results in an environment in which I am able to `cabal install hlint` (and `cabal install happy`) into a sandbox without issue. It is interesting that cabal does not (try to) install happy as a prerequisite for haskell-src-exts, which lists happy as a Build-Tools dependency [2]. It is also interesting that `cabal install happy` requires itself, despite indication in the documentation [3] that it is a valid way to install the package... Does this indicate that Cabal expects Haskell Platform? Should Cabal be changed to (support minimal installations and) manage Build-Tools dependencies? Would it be worthwhile to create a "Minimal Haskell Platform" to create a truly common platform that everybody would be happy using? Cheers, Travis [1] http://www.reddit.com/r/haskell/comments/22up8l/ghc_782_released/ [2] https://github.com/haskell-suite/haskell-src-exts/blob/9bc4daf3b51d006741c6b... [3] http://www.haskell.org/happy/