Testing for ASDF 3.3.2 and beyond?

Robert Goldman rpgoldman at sift.net
Fri Mar 2 18:05:06 UTC 2018


On 1 Mar 2018, at 21:45, Faré wrote:

> You might be interested to know that ACL binds *readtable* on startup 
> to an unmodifieble readtable
>> (which is a violation of CLHS http://clhs.lisp.se/Body/02_aac.htm :
>> "The initial readtable is distinct from the standard readtable. It is 
>> permissible for a conforming program to modify the initial 
>> readtable.")

I don't see this behavior in ACL 10.1 (64 bit) on the Mac:

```
CL-USER> *readtable*
#<readtable @ #x100022d3a2>
CL-USER> (defun semicolon-reader (stream char)
    (declare (ignore char))
    ;; First swallow the rest of the current input line.
    ;; End-of-file is acceptable for terminating the comment.
    (do () ((char= (read-char stream nil #\Newline t) #\Newline)))
    ;; Return zero values.
    (values))
SEMICOLON-READER
CL-USER> (set-macro-character #\; #'semicolon-reader)
T
CL-USER>
```

>>
>> The most visible result of this is puri and more than 150 other 
>> systems in Quicklisp depending on it, failing to load.
>>
>
> Well, that's a good argument for fixing puri & al, regardless of what
> option ASDF picks in the future.
> And maybe a good argument for making ASDF strict all the time on all
> implementations that allow it.

So as I see it we have *three* options for the `*shared-readtable*`

1. Your original option -- the "initial-ish" readtable (since we can't 
control when ASDF is loaded)
2. My proposal: a copy of the standard readtable.  We should consider 
what might happen in this case if ASDF is reloaded or upgraded.  I don't 
know if option #1 has this same issue.
3.  An unmodifiable standard readtable.  I don't believe that this is 
portably possible, is it?  There's no ANSI method (unless I've 
overlooked something) to make a readtable unmodifiable, and there's no 
way to access the standard readtable portably (since it isn't required 
to be unique).

I believe my proposal, #2, is the most portable of all of the solutions, 
but I am still open to correction.

Best,
r


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20180302/7862bec7/attachment.html>


More information about the asdf-devel mailing list