[e-lang] What's a SturdyRef (or TraversalKey, String, ...), anyway?
kpreid at mac.com
Tue Aug 7 13:09:35 EDT 2007
On Aug 7, 2007, at 10:40, David Chizmadia (JHU) wrote:
> Kevin Reid wrote:
>> Selfish objects: those whose identity identity is defined by their
>> unique event of creation.
>> Selfless objects: those whose identity is determined by their
>> components, traversed via __optUncall.
>> The above definitions are well-established (I think), but not
>> complete. There is a class of objects whose identity is not unique to
>> their creation, and do not reveal their components:
>> * What should this third category be called? (I'll use "Atomic"
>> for purposes of the next question.)
> As I read your description, I was struck by the fact that the
> identity of the objects you named seems to be defined by their state
> (usually a single value, but I think it generalizes).
In the cases of SturdyRef, TraversalKey, and Proxy, the state is
The part which is relevant to clients is "Can I usefully attach a
finalizer to this object?" and "If I __optUncall this object, will it
return a non-null and correct answer?" (which is true for normal-
Selfless and false for what-we-want-to-name).
> So I would
> suggest that this third class be called SelfEvident, with a parallel
> definition of:
> SelfEvident objects: those whose identity is (uniquely?) defined by
> their (DeepFrozen?) state.
This is pretty much the same definition as Selfless. The
distinguishing characteristic is that they do not *reveal* their
state (and also that they cannot be unsettled); so "evident" seems
entirely the wrong direction to me.
If anything, perhaps "self-evident" might be used as a name for the
The objects are not necessarily DeepFrozen: particularly, SturdyRefs
carry authority to communicate to a remote vat, and Proxies might or
might not have DeepFrozen message-handlers, but usually don't (they
implement far refs and remote promises).
Kevin Reid <http://homepage.mac.com/kpreid/>
More information about the e-lang