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

magically disappearing accessor function



    Date: Thu, 6 Feb 1992 10:50 EST
    From: dmitchell@trc.amoco.com (Donald H. Mitchell)

    Using CLOS

    One of my guys created a class with a slot 'name and an accessor 'name.  He then created
    another class with another of the ubiquitous slot 'name and accessor 'name.  He then
    exported 'name.  Of course, other packages that use his package also define classes with
    slots using the ubiquitous identifier.  Now his symbol reliably gets uninterned as a
    side-effect someplace.  Is there anyway to track down where this symbol is being
    uninterned?  (I've heard claims that the unintern-ment occurred even when he wasn't
    exporting the symbol.)

You could (trace unintern).

    If I re-intern the un-intern'd symbol (getting it by :show clos methods ...), I can
    reliably use the accessor; however, all the development environment hooks don't agree on
    it.  For example, :edit definition gets very confused and will only show me one, claims
    there are many others, but refuses to show them. If I describe the symbol and get the
    generic function object from it, however, everything looks fine (including what looks like a
    compilation of all the users of 'name regardless of package as long as their home package
    uses the unintern'd symbol's package.)

It's hard to say what's going on.  This could have something to do with
the precise time that it's getting uninterned relative to the definition
of the other methods.  Their source information may be getting hung off
other symbols.

But if you fix whatever is uninterning the symbol, I think this should
be moot.

                                                barmar