On Wed, Apr 26, 2017 at 7:17 PM, Robert Goldman rpgoldman@sift.net wrote:
On 4/26/17 Apr 26 -6:33 AM, Faré wrote:
What more, it was a hurdle on the road to making a future ASDF a robust system with deterministic builds.
I wanted to ask about this. Right now ASDF systems are (in general) partially ordered. Is it your plan to make sure there are no implementation or state dependencies in how these partial orders are linearized, in order to make it deterministic?
Well, a really deterministic variant of ASDF, if it ever happens, would be based on cross-compilation in separate processes, similar to how Lisp builds currently happen with Bazel. Handling self-extension and phase separation properly in this context might be "interesting".
Also, I know you are interested in parallel variants of ASDF. It seems like this would conflict with the desire to enforce deterministic orderings, since if you have A must be before B, C, and D, but B, C, and D are unordered in the system definition, determinism would lead you to want to have a deterministic algorithm for ordering B, C, and D, but parallelism would suggest you separately compile B, C, and D in different images (each of which would have A loaded).
Indeed, different images would be used for compiling. Loading would happen in the textual order of the target at hand, and/or in some arbitrary global order (e.g. asciibetical) for systems.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org Sheep walk to the slaughterhouse. They don't say anything, and they don't have any hope. But at least they don't vote for the butcher who will kill them and for the rich man who will eat them. Dumber than dumb beasts, more sheepish than sheep, the voter appoints his butcher and chooses his rich man. He made Revolutions to conquer this right. — Octave Mirbeau