[asdf-devel] Make the CL syntax predictable

Faré fahree at gmail.com
Sat Mar 29 17:07:35 UTC 2014

>: p-cos

>> no upgrade, no breakage.
> If you can’t upgrade ASDF, you may also not be able to upgrade quicklisp. If you can’t upgrade quicklisp, you may also not be able to get updates to existing libraries. At least, it may be harder than necessary (like in the pre-quicklisp, pre-asdf-install days), and you can’t benefit from the efforts that were put into ASDF and quicklisp to the same extent as others anymore. [1]
Sorry, you don't get to demand change and rant against change in the
same paragraph. You don't get to praise the efforts put into ASDF and
rail against them in the same paragraph. The same legitimate reasons
that justify desirable change in your libraries also justify desirable
change in ASDF. The same things that make these changes desirable are
the things that break systems that relied on non-portable kludges and

You only get to discuss whether a particular change is desirable.

> Don’t try to abuse the popularity of ASDF and quicklisp to enforce changes to Common Lisp, the Language that may not be accepted by the community.
Don't accuse other people of things they are expressly not trying to do.
If I were trying to "enforce changes" and caring about what a notional
"community" accepted, I would not be discussing anything,
only committing changes to the repository.

> If the proposed change to enforce double-float as a default *read-default-float-format* was unambiguously an improvement, there would be no problem. But it’s not an improvement, not by a long shot. [...]
There are two dependent changes being discussed:
(1) guaranteeing a value of *read-default-float-format*
 and other syntax variables when compiling a library.
(2) having this value be 'double-float.

It looks like (2) will definitely not happen.
I still argue that (1) is essential for build determinism,
and enabling users to change syntax at the REPL.

> *read-default-float-format* lets you choose between different representations for such generic libraries. The scoping rules for dynamic variables in Common Lisp give you two choices: Either you tell a particular library that it chooses a particular representation for its generically chosen representations - you do this by dynamic binding. Or you tell a set of libraries (all that you are loading from now on) that they should all choose the same representation for their generically chosen representations - you do this by side effect.
That's not how it works, unless you include a bit for *rdff* in the
name of the fasl cache directory — and since the planning is done
based on pathnames before the compilation happens, that should still
be *rdff* at the beginning of compilation. Otherwise, the build is not
deterministic, and two different toplevel programs will poison each
other's builds.

> I am very happy that Common Lisp gives a lot of choices in this (and many other [!]) regards. These options shouldn’t be restricted due to the lack of imagination of some developers who believe that limiting choices is always better.
Or by the incompetence of people who give lessons about build systems
when they don't understand a thing on the topic.

> There are already (far too) many languages out there that go down that route. If you want Racket, you know where you can get it. Common Lisp is a language for people who know what they are doing, not for people who need to be held by their hands.
I don't want Racket. I want a deterministic, modular build system for CL.
I want safe to be the default.

> You also have the option to fork a particular Common Lisp implementation
So do you. That's a non-argument that assumes you're the dictator of CL.

> The fact that the proposed changes are discussed so actively is a clear sign that people care about these things.
And the one way to know whether they'll be discussed is to open the
discussion indeed.

> [1] I already encountered libraries that don’t load with current ASDF versions anymore, although they are defined as ASDF libraries, which is a shame!
Sorry, you don't get to complain unless (1) you issue a bug report,
and (2) the bug isn't fixed by whichever party actually has a bug,
whether it's the library or ASDF.

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Compulsory child labor was not abolished, it was changed from productive work
to counter-productive brainwashing, and made universal: public schooling.

More information about the asdf-devel mailing list