[Openmcl-devel] CDR for Package-Local Nicknames [Feedback Request]

Tim McNerney mc at media.mit.edu
Sun Jul 7 07:12:15 PDT 2024


Dear Alexander,

Thank you for reaching out to the CCL community. (I am responding in a less-than-official capacity because currently CCL has only privately-funded and volunteer maintainers plus enthusiastic users, but no officials.)

I read through your well-thought-out Package Local Nicknames (PLN) proposal. It does indeed look like a useful facility—even one I could see using in my own professional work. 

My main concerns are 1) compatibility across all common Lisp platforms, 2) the maintenance burden on implementers, and 3) the need for a comprehensive test suite. Add to that my wish to see 4) a healthy set of real-usage examples and 5) a discussion of how this feature generally impacts implementations (i.e. where the necessary “hooks” are, and any unexpected “gotchas”). 

The biggest danger of any software development in mature environment(s) is the risk of breaking existing code—in this case the CL implementations themselves and (of course) existing user code. [e.g. should users be able to disable PLNs?]

Have you considered writing a source to source translator that rewrites code using PLNs into ANSI Common Lisp? As I “think out loud,” (meaning I have not thought about this long) I could imagine a similar, but lighter-weight facility being introduced more surgically (more compatibly and visibly obvious) using a reader extension. 

To conclude: You have an impressive list of supported implementations. What are the current status and past responses of and outreach to the remaining commercial vendors and non-commercial maintainers? 

I look forward to continued discussion. 

Best regards, 

--Tim McNerney 

> On Jul 6, 2024, at 12:55, Alexander Fedorov <varedif.a.s at gmail.com> wrote:
> 
> Dear all,
> 
> Over 10 years ago, SBCL implemented the Package-Local Nicknames (PLNs)
> extension. Since then, PLNs have also been adopted by multiple
> implementations (ABCL, CCL, ECL, Clasp, Allegro CL and LispWorks) and
> are now widely used in many projects.
> 
> However, PLNs are still considered experimental, as stated in the SBCL
> manual, since there is no formal specification for them, and each
> implementation interprets various corner cases differently. While the
> need for a specification has been previously discussed, I was unable
> to find any publicly accessible draft for one.
> 
> Therefore, I have drafted a specification intended to become a CDR
> document. I initially wrote this draft about a year ago and have
> recently revised it. You can find the latest version here:
> https://gleefre.github.io/cdr-package-local-nicknames/index.html.
> 
> There are currently nine unresolved standardization issues, each with
> at least one proposed resolution. Input on those issues would be
> particularly helpful, but any feedback is welcome!
> 
> P.S. I am sharing this link across multiple platforms to reach as many
> lispers as possible. This includes various mailing lists (Lisp Pro,
> CDR-discuss and -devel for various CL implementations); IRC channels
> (#commonlisp and implementation-specific ones); the Lisp Discord
> server; several Telegram groups; and a post on Reddit. If you have any
> suggestions for additional places to share the link, please let me
> know.
> 
> My apologies to those receiving this message multiple times.
> 
> Best regards,
> Alexander Fedorov.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.clozure.com/pipermail/openmcl-devel/attachments/20240707/39b8a902/attachment.htm>


More information about the Openmcl-devel mailing list