[asdf-devel] Make the CL syntax predictable

Faré fahree at gmail.com
Fri Mar 28 17:55:42 UTC 2014


>> 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



More information about the asdf-devel mailing list