Thanks for the kind words, Robert. I completely agree! I was a heavy C++ *template* programmer back in the '90s, you want a hostile developer environment haha I think that takes the cake. But we were chasing performance. I learned c++ at NASA Ames NAS in the early '90s using g++. Rough. NAS then was already a paid-for GNU open source shop. I quit C++ last year because of FAANG assholes manipulations in the standard and some of the *shoulda* cool things like senders/stdexec. And I was a heavy cmake user for about 15 years, before "modern" cmake idioms. Ew gross. Common-Lisp is a breath of fresh air compared to that, a dream. If my problem here had been in any of the languages I'm already expert in I would have just read the source code, but I'm a little intimidated by experts wielding CL macros right now. I *will* get good at them though, might work myself through Let over Lambda, though I get the admonitions not to overdo it. This :use issue was just a little corner case issue, mostly documentation parsed by a noob, no big deal at all, and definitely not off putting. I find the fact that C-L has been standardized for decades and is still absolutely relevant just awesome. Thanks for all the help. Cheers, Russell On 1/9/25 2:44 PM, Robert Dodier wrote:
Russell, I share your frustration; Common Lisp has a lot of idiosyncrasies and also a lot of really interesting, useful ideas, so it's both a wonderful and terrible environment for writing code, and, given its history, that will continue to be the case indefinitely.
My advice is just take the idiosyncrasies in stride, and work with the hand you (well, all of us) have been dealt. I know this isn't a satisfying conclusion.
Specifically about the :uses bit in the package definition, from combing the CLHS I see that an explicit :uses declaration supersedes the default, so, assuming that UIOP:DEFINE-PACKAGE doesn't change the interpretation of :uses (although that wouldn't be entirely out of the question), that seems to explain the observed behavior.
(I also saw in CLHS that the :uses default is explicitly implementation-dependent, so, while :uses :common-lisp is nice, one cannot actually rely on it ... Oh well!)
FWIW
Robert Dodier