
On Mon, Nov 7, 2011 at 11:40 PM, Rustom Mody
Does anyone give me a little comparison of these?
capri & cabal-dev: Capri and cabal-dev both sandbox Haskell builds by restricting the set of packages that cabal can see -- I haven't had much luck with capri personally, and it appears to take a bit more doing to get a project instantiated, but it does seem to restrict access to the system package db, which cabal-dev does not do. It doesn't look like capri is under active development (only one release, roughly 18 months ago). cabal-dev was created and is primarily maintained by Galois (I'm one of the maintainers), and it's used extensively for day-to-day development. cabal-dev works by wrapping invocations of cabal with the necessary configuration files and command line arguments to restrict cabal's access to package databases to the system package db and a per-project db. In practice, this solves the vast majority of version conflict issues, and it also allows you to confidently state that your software will build with the software currently on Hackage. However, it does /not/ provide any facilities for restricting or switching the versions of ghc, and it also doesn't sandbox any other external build tools (such as alex / happy). That's not necessarily out of scope, but we haven't needed it enough yet to implement. virtualenv: I'm not familiar with virtualenv, but from skimming the site, it looks like it does something very similar to cabal-dev, but focused on python. I'm not sure if it can be used with other languages / arbitrary tools or not. cab: Others know cab much better than I do, but I'll take a shot. I think cab primarily provides a set of higher-level commands for managing a ghc package database. Amongst other things, it will show the complete dependency tree for a package that is installed, and I think it wraps 'ghc-pkg unregister' more nicely, so you can unregister a package and the packages that depend on it with one command. It also wraps cabal-dev, I think, but I haven't used that bit, so I don't know if it covers all the cabal-dev functionality yet. --Rogan
What would all my requirements be? Not sure... these seem important for me
1. Need to sandbox not just haskell-projects but ghc (different compilations/versions) itself 2. Stability of the (sandboxing) tool 3. Correcting the deficiencies of cabal (eg inability to uninstall, quarrels between cabal and apt etc)
OS: Debian/testing System haskell: 7.0.4
My question on beginners for a little more context: http://www.haskell.org/pipermail/beginners/2011-November/008943.html
capri: http://www.haskell.org/haskellwiki/Capri virtualenv: https://github.com/Paczesiowa/virthualenv cabal-dev: http://corp.galois.com/blog/2010/12/20/cabal-dev-sandboxed-development-build... cab: http://www.mew.org/~kazu/proj/cab/en/
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe