regarding the recent discussions i'm generally baffled why it is at all a question whether to make a build software deterministic or not. in my view if there's anything in the global state that has an effect on the building of a software, anything, then it's a bug.
I think one question is whether it's worth taking a path to this goal that breaks programs that currently work. I don't think all such programs are bitrotted junk that can be fixed up in a day.
Nobody is proposing to break anything. On the contrary, the proposal is to make everything build in a more reliable way.
Once again: 1- there will be no hacking into other people's machine to upgrade half their software. 2- there will be no changing the ASDF default until patches have been sent to all maintainers of libraries currently in Quicklisp and ample heads up was given to everyone who is not in Quicklisp. For the change in default character encoding, this took one year. I imagine a change in syntax control settings will take the same: the code will be there but disabled by default for a year, then the default will change. 3- code that was previously guaranteed to work portably will still work portably. 4- most code, that was depending on unenforceable but standard environmental dependencies, will now work reliably even when compiled in an environment when other systems and/or the user have bound variables incompatibly. 5- some code, that was depending on unenforceable and non-standard environmental dependencies, will now fail reliably even when compiled in an environment when other systems and/or the user have bound variables compatibly -- and will need to be fixed.
Then users can change their *READ-BASE* to 36, their *READ-DEFAULT-FLOAT-FORMAT* to 'SHORT-FLOAT, their *READ-EVAL* to NIL or their *READTABLE* to something that implements a Ruby compiler, and still be able to call asdf:load-system under the hood and have everything work fine. Actually, an ASDF server in the background might be farming compilation of each and every file from a clean image with only its declared dependencies based on a clean environment, each on a different worker in a distributed network - and the semantics will be exactly the same.
Frankly, the notion that syntax bindings from the REPL might leak into an unrelated system's compilation and break it sounds completely braindead to me, and I'm surprised anyone tries to defend the concept.
The question to me is not should the change happen, but how.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org War does not determine who is right — only who is left. — Bertrand Russell