Specifics aside (because they were just examples, sometimes poor ones), the point here is that Nix can only express tightly coupled dependencies. Lack of the ability to correctly express loosely coupled relationships causes needless rebuilds. It really doesn't matter whether Java has achieved perfect isolation from the host environment. The important point is that recompiling java code merely because some change in the environment triggered a rebuild of the JDK or JRE will not make a bit of difference--especially if the same JDK or JRE is installed.
Likewise with Ruby, Python, etc. (the exception is for impure/native code.) BTW: "Loosely coupled" should be able to distinguish between Python 3 and Python 2. Or Java 1.4 vs Java 1.5. As in "Any package claiming to be a jdk version 1.4 will do." And again, this is not to automatically select an implementation. It's to check and see if the user forgot to include something vital in their system configuration, or to offer them a choice of available implementations in an interactive setting. Bryce
_______________________________________________ nix-dev mailing list nix-dev@lists.science.uu.nl http://lists.science.uu.nl/mailman/listinfo/nix-dev