On Fri, Jul 3, 2015 at 3:09 AM, Edi Weitz <edi@weitz.de> wrote:
Just out of curiosity and without any relevance in practise:

Is there one place in the standard where it is explicitly said that
two symbols which are the "same" symbol must be "identical"?  I know
that there are a couple of examples where this is implied, but
formally the examples aren't part of the standard, right?

The EQ dictionary entry for example shows this example:

  (eq 'a 'a)  =>  true

and then it continues with this note (emphasis mine): "Symbols that
print the same USUALLY are EQ to each other because of the use of the
INTERN function."

And the entry for INTERN is actually the closest I could find in terms
of clarification because it says that if a symbol of a specified name
is already accessible, _IT_ is returned -- which sounds like object
identity to me.

But how does this fit into the picture?

  CL-USER 1 > (defparameter *s* 'foo)
  *S*
  CL-USER 2 > (unintern 'foo)
  T
  CL-USER 3 > (defparameter *s2* 'foo)
  *S2*
  CL-USER 4 > (eq *s* *s2*)
  NIL

*S* has lost its home package and is thus not EQ to *S2*, sure, but
how do we explain this in terms of object identity?  Has the UNINTERN
operation changed the identity of *S* which once was the one and only
CL-USER::FOO but can't be anymore because this role is now occupied by
*S2*?

Did I miss some clarifying words in the standard?  Did I just manage
to confuse myself?

I think you manged to confuse yourself. unintern of course did not change the identity of *s* (by which we are meaning the symbol bound to *S*) -- identity is identity is identity. Unintern did, however, change the package  of *s*, so (as one side-effect) a new symbol of the same name in the same package is a new object (identical to nothing at birth).

Perhaps the problem is confusing the levels of abstraction offered by (a) EQ and (b) object identity. The latter is a very simple idea. EQ, as you adroitly demonstrated, worries about all sorts of things, including a symbol's package.

my2 anyway.

-kt



Thanks,
Edi.

PS: The UNINTERN entry warns about side effects which could harm
consistency, so maybe this is what they meant?




--
Kenneth Tilton
54 Isle of Venice Dr
Fort Lauderdale, FL 33301

@tiltonsalgebra


"In a class by itself." -Macworld