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