So I've packaged together a number of erlang dependencies together, then compiled them a number of times in a row.
I noticed that the error outputs were different each time. To me this means nix isn't deterministic. I'd like to discuss the inclusion of the dataflow language concept into nix. By including this concept the builds become deterministic, one could go a step further and introduce light weight language level threads. Should unbound variable Z in thread X become bound on thread Y then execution of thread X continues. This makes nix deterministic. Great efforts have been made to refining the nix way, ie reproducible builds. This is achieved by downloading dependencies first then making them immutable. This means we're half way there as the immutable nature of these packages is critical for the implementation of dataflow. Though having said that, there might not be need for concern as there seems to be an element of dataflow, in that should one execute nix expressions in multiple shells which touch the same packages one shell will simply wait for those packages to be built by the other. Might I hear the community's opinion on this? _______________________________________________ nix-dev mailing list [email protected] http://lists.science.uu.nl/mailman/listinfo/nix-dev
