Re: clos mop

"Christopher Stacy (as cstacy at dtpq dot com)" <[email protected]>
Newsgroups gmane.lisp.lispworks.general
Message-ID <[email protected]>
On 4/2/25 5:07 AM, Tim Bradshaw (as tfb at cley dot com) wrote:
> And when cl/splod changes so that it also replaces with-slots, no client needs to care.
As usual I am on "no sleep" here, but assuming I am understand the 
issue, here's my take.

The client /always/ cares about COMMON-LISP symbols being shadowed. That 
the standard language is being changed. If the client does not care, how 
is it not already understanding all that's in the library? And possibly 
accepting it blindly?

I think the CL package design is intended to be cumbersome in this 
respect, and that the idea is to have markers on both sides.

:SHADOWING-IMPORT is the client-side documentation that alerts client 
programmer about what's going to be weird and unexpected without having 
to examine the entire export list in the library. This is especially 
important because the library does not need to list all its exports in 
its DEFPACKAGE. They could be hidden in any library code/file that calls 
EXPORT.

I have recently become fond of the IF statement in Emacs Lisp. It's the 
old-fashioned(IF cond then &body elses) that we got rid of from MACLISP. 
Perhaps my taste will change again, but today I included it my standard 
utility library.

I have lots of programs that :USE this library, going back more than a 
quarter century,  and they are unaffected, not forced to use this IF 
language variant. (It's compatible, as it happens, but the principle 
remains.) I am currently writing a couple of new programs which use the 
library. They do :SHADOWING-IMPORT to get the fancy IF.

Anybody (including myself eleven years from now) can come along and read 
this client code and assume it is writtem in Common Lisp and no tricks. 
Except for the things specially listed there up front.

YMMV!
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.