preserving context-independence
Jonathan S. Shapiro
jsshapiro@earthlink.net
Sat, 4 Apr 1998 12:11:16 -0500
Excellent! We seem to have this down to two incompatible answers.
Norm:
> Slot 0 of the first node defines addresses 0x0XXXXXX which includes the
> referenced addres: 0x100000. What ever key is in slot 0 has thus the
> opportunity to define the meaning of that reference. Thus the fault goes to
> the keeper of the second node who may modify the lss of the node via the
> format key in the second node, so as to appear that the lss was always
> large.
Bill:
> A segment defines a certain range of addresses as determined by its
> lss/ssc. That range of addresses can be smaller than the range
> defined by a slot which holds it's key, or it can be bigger. If it
> is smaller, then the extra addresses are undefined, and outside the
> segment. i.e. the segment is never consulted in resolving the
> address. If it is larger, then the excess addresses are
> inaccessible in that context. (However, see window keys for a way
> to access them.)
Some observations:
1. The difference only impacts the behavior of red segments.
2. Norm's version is more efficient to implement, but slightly harder
to give the semantics for.
3. Either approach can be made to behave according to the other.
In Bill's approach, a red segment wishing to get all references can
set the in-node LSS to MAXLSS. In Norm's approach the keeper must
be prepared to do bounds checking if it wishes to enforce a bounded
LSS.
Anyway, which is right?
shap