[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
EQUAL and STRUCTURE-FORWARDING
- To: DLW at MIT-AI
- Subject: EQUAL and STRUCTURE-FORWARDING
- From: David L. Andre <DLA at MIT-AI>
- Date: Sun ,10 Jan 82 18:34:00 EDT
- Cc: DLA at MIT-AI, BUG-LISPM at MIT-AI
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.