[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Function CCL::STRUCTURE-SLOT-NAMES undefined.



> Date: Fri, 23 Oct 1992 12:07:36 -0500
> From: bill@cambridge.apple.com (Bill St. Clair)
> >From: rem
> >Previous poster said <<When apropos'd STRUCTURE-SLOT-NAMES exists in
> >COMMON-LISP-USER package. However, I can't use it in MCL 2.0. How do I
> >access the function?>> and you replied <<There is no such symbol in MCL
> >2.0. Did you perhaps inadvertently intern it yourself by passing it to
> >APROPOS? It is best to always pass strings, not symbols to APROPOS:>>
> >
> >There should be some way that system packages can be write-protected,
> >so that if you try to INTERN anything into them that is not already
> >there an error is signalled. Is that mechanism available in any version
> >of MCL or is it proposed in future versions?
> 
> I have never heard this idea before.

The Lisp Machine package system had it in 1978 ("locked packages"), but I 
guess the Common Lisp people didn't understand what it was for so they got rid 
of it.  Uh oh, I'm getting perilously close to comparing Common Lisp to Unix, 
don't listen to me.

> One drawback is that lots of the example files
> intern symbols in the CCL package. Opinions?

Regardless of whether it's a good idea to lock the CCL package, one certainly 
could not get away with locking the COMMON-LISP-USER package!  So locked 
packages would not solve the original reported problem.  I would say the real 
problem is that the output format of the APROPOS function is unnecessarily 
obscure and confusing; not saying that STRUCTURE-SLOT-NAMES is a function is 
not as clearing as saying that STRUCTURE-SLOT-NAMES is not a function.