A few questions on using Cabal

I've just started experimenting with the new Cabal system, and I must say it's really sweet. Thanks a lot to all involved! After trying it on some simple tasks I have collected a few questions: * What about 'setup uninstall'? Surely there should be an automatic way of uninstalling packages and executables? * Is there some way to direct the installation of a package to an auxiliary package-conf file, i.e. separate from the 'global' and 'user' package databases? E.g. 'runhaskell Setup.hs register --package-conf=foo.conf' (doesn't work) * Is there some way to bundle several packages into a single installation unit? Similar to how you can specify several executables, or executables and a library package, I would want a way to say that a bundle will install several (possibly interrelated) packages at the same time. * If I specify a library package and an executable in the same cabal bundle, where the executable uses the library, the files that make up the library get compiled twice. Once when setting up the package, and then again when compiling the executable. How come? That's all for now, possibly more to come later. =) /Niklas

Niklas Broberg
I've just started experimenting with the new Cabal system, and I must say it's really sweet. Thanks a lot to all involved!
Yay!
After trying it on some simple tasks I have collected a few questions:
* What about 'setup uninstall'? Surely there should be an automatic way of uninstalling packages and executables?
We'd like to do this eventually, but it doesn't work yet. A lot of people are using cabal as a layer under the OS package system (like in Debian) so the package manager handles removing the package itself.
* Is there some way to direct the installation of a package to an auxiliary package-conf file, i.e. separate from the 'global' and 'user' package databases? E.g. 'runhaskell Setup.hs register --package-conf=foo.conf' (doesn't work)
No way to do this yet either... patches welcome :) That should be a pretty easy thing to add; a half hour for someone who knows how the command-line parser works.
* Is there some way to bundle several packages into a single installation unit? Similar to how you can specify several executables, or executables and a library package, I would want a way to say that a bundle will install several (possibly interrelated) packages at the same time.
Nope. This is also on the todo list, but we're not sure how it'll look yet. We were calling such things "shipments" to distinguish them from packages. We wanted to get basic packages working first, and the next goal is to get the package database (Hackage) online. That's proceeding nicely, thanks to Lemmih.
* If I specify a library package and an executable in the same cabal bundle, where the executable uses the library, the files that make up the library get compiled twice. Once when setting up the package, and then again when compiling the executable. How come?
Beacuse this is a bit of a workaround. Don't complain too much or I think Ross will kick me. The "right" way to do this is probably with "shipments".
That's all for now, possibly more to come later. =)
So the short answer is that there are still some things that make cabal less convinient than it could be, but we've got them in mind, and we're happy to accept patches to add them! peace, isaac
participants (2)
-
Isaac Jones
-
Niklas Broberg