[asdf-devel] Make the CL syntax predictable

Zach Beane xach at xach.com
Thu Mar 27 17:20:10 UTC 2014

Faré <fahree at gmail.com> writes:

> On Thu, Mar 27, 2014 at 12:30 PM, Robert Goldman <rpgoldman at sift.net> wrote:
>> Zach Beane wrote:
>>> Faré <fahree at gmail.com> writes:
>>>> femlisp raises an interesting issue: it has (setq
>>>> *READ-DEFAULT-FLOAT-FORMAT* 'double-float) in setup.lisp, which is
>>>> cancelled by the with-standard-io-syntax that I introduce in my
>>>> syntax-control branch. I just pushed a change in said branch to make
>>>> the 'double-float the default in with-asdf-syntax, which I believe is
>>>> a more useful convention than what the standard provides.
>>> I don't like the idea of ASDF setting a different
>>> *READ-DEFAULT-FLOAT-FORMAT* value during ASDF operations than it will
>>> have in the REPL, during plain loading, or compile+loading individual
>>> files outside of ASDF.
>>> Zach
>> I second this dispreference.  As an old-school lisper, used to working extensively on incremental development in the editor buffer, and even in the REPL, this seems bad to me.  The errors it will lead to will be odd corner cases, bewildering to ordinary programmers not versed in the fussy details of ASDF implementation.  Put yourself in such a programmer's shoes, when his/her code that worked fine in the repl breaks in ASDF, or vice versa.  What's the debugging process?
>> Maybe the default is undesirable, but it's not our job to patch all the undesirable features of Common Lisp.
>> The more divergences between CL-in-ASDF and CL that are introduced in this branch, the more likely it is that it will have to live on as a permanent fork and not be merged.
> I also have this preference, but I slightly disagree on how to resolve it.
> femlisp side-effects *READ-DEFAULT-FLOAT-FORMAT*, which means that
> every system compiled after it will be treated differently than if it
> were compiled before it — and once again, whoever writes the system
> does not and cannot control the order in which things are compiled,
> which ultimately depends on what toplevel system the user operates on
> and what systems have or haven't already been compiled (and are up to
> date) before he operates on that toplevel system. This means that the
> semantics of your system are already dependent not just on the REPL
> but also other uncontrolled and uncontrollable state. This is not
> desirable.

I do have control: If femlisp or any other library makes a boneheaded
decision that breaks my software, I can stop using it.

That is less of an option with ASDF.


More information about the asdf-devel mailing list