[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