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

EQUAL and STRUCTURE-FORWARDING



    Date: Sunday, 10 January 1982, 14:38-EST
    From: Daniel L. Weinreb <dlw at MIT-AI>
    Subject: EQUAL and STRUCTURE-FORWARDING
    To: DLA at MIT-AI, BUG-LISPM at MIT-AI

    It doesn't seem counterintuitive to me.  Just because you have
    structure-forwarded their bodies does not mean that they are the same
    object.
It does to the garbage collector.  It is reasonable to assume that
EQness changes when running the garbage collector, because EQ is defined
on that level.  However, I don't think that EQUAL should be defined on
that level.
	     Furthermore, it is defined that symbols are EQUAL to each other
    if and only if they are EQ, and it is impossible to make EQ return T
    here since it is a deep part of the system that EQ works by straight
    pointer-comparison without reading through the pointers.
Maybe using symbols as my example was wrong.  It's just easiest to
demonstrate using MAKE-SYMBOL.  My problem actually came up with
instances.

I realize that I'm treading on shaky ground, but if you've ever had to
put FOLLOW-STRUCTURE-FORWARDING into every primitive which deals with
your object, you might think that there's a better way too.