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