| > Trying to do any sort of open-source development without a library sandbox, in any language, is madness. I agree, but there're some interesting differences in how different language tools implement a sandbox. Python and Haskell (with Virtualenv and Cabal-dev/sandbox) have separate local repo/caches in which packages are installed (this is useful if you want packages in a reliable location to install executables) Ruby and Clojure (with Bundler and Leiningen) have a common repo/cache with multiple libraries version, and the version resolution is handled inside the project itself (e.g. when you need to whip up a repl or build the project) (I'm not mentioning rbenv or the like, since that doesn't handle version graphs by itself... but obviously it can be used just like Virtualenv) IMHO, the second approach is better suited for a language (implementation) that has an explicit compilation step in which an artifact/binary is built, just like for Haskell/GHC (then again, something like the first approach is still useful for executables and maybe also to try out different compiler versions) > Two versions of qux can't be linked into the same binary It might be possible, but yes... it's a world of pain http://stackoverflow.com/questions/3232822/linking-with-mult... |