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!