[e-lang] Auditors

Kevin Reid kpreid at mac.com
Fri Jun 1 07:20:47 EDT 2007


On Jun 1, 2007, at 5:50, Stephan van Staden wrote:

> Thanks for the insightful responses to my questions. Mr. Reid, I  
> wish to
> know what you mean when you say that auditing with eventual auditors
> would be a source of mutability. Should I interpret this statement in
> terms of the E-on-CL auditing framework where auditors have direct
> access to the values of instance variables of objects being audited?

No; it is independent of the audition protocol. Here's a hypothetical  
session with eventual-allowed auditors:

? someRemoteAuditor
# value: <Far ref>

? [def foo implements someRemoteAuditor {},
 >  __approvedBy(someRemoteAuditor, foo)]
# value: [<foo>, false]

...wait...

? __approvedBy(someRemoteAuditor, foo)
# value: true

Since the auditor is far, and an object's creation is immediate, the  
first __approvedBy cannot know the result of the audit yet; the  
second one, after the auditor has responded, does. The response of  
__approvedBy(someRemoteAuditor, foo) is therefore a mutable property  
of foo.

Having __approvedBy return a promise in the first case would still be  
a mutation (the promise resolving), which would require either foo or  
__approvedBy to be not considered DeepFrozen; it is also impossible  
to know immediately the set of auditors for which promises rather  
than false should be returned, since an auditor can ask/1 for other  
auditors to be applied to the object being audited.

-- 
Kevin Reid                            <http://homepage.mac.com/kpreid/>




More information about the e-lang mailing list