Duncan Coutts wrote:
> Cabal can be upgraded using Cabal. This is important.
I think there are two things here. First, its important that it can be upgraded. Most distributions already have a package management system that can handle this. I just got GHC, Haddock and a bunch of other stuff onto my new FC6 installation via Pirut, the FC6 graphical installer (which is coded in Python and would probably be much faster and better if it was in Haskell, but thats another story). If Cabal and its supporting libraries are split out from the main distribution into separate packages then I can get an upgraded Cabal the same way without having to get those libraries as well.
> Unlike well specified libraries like ByteString, Cabal tackles an
> ill-specified problem and we're still learning how best to solve it, so
> the api and features change much more frequently.
So if I become a Cabal developer rather than just a user, or I want the source for some other reason, then of course I can do a cabal-get cabal and all the relevant libraries get installed for me.
In short, I think that Cabal should work like any other application: you can just install the binary and go, or you can install the source (via Cabal) and hack it if you want to. Binary installs should be handled by the distribution (Windows users can have a .msi, Mac users can have whatever the Mac equivalent is). Compiler packages should generally include the Cabal binaries along with the compiler binary, Haddock binary and so on.
Paul.