Re: how to extend a capability on a data source?

Kevin Reid <kpreid-M/[email protected]>
Newsgroups gmane.comp.capabilities.general
Message-ID <[email protected]>
On Nov 3, 2013, at 21:44, David Barbour <[email protected]> wrote:
> On Sun, Nov 3, 2013 at 9:06 PM, Rob Withers <[email protected]> wrote:
>>> Those properties together would make the Resolver linear, and would ensure that the promise is fulfilled once and only once (modulo divergence of the resolver computation).
>> To my recollection, this is precisely what Elib delivers.
> When I say "ensure", I think I'm saying something stronger than you're hearing. Elib does not make a *static guarantee* that a resolver is called exactly once. If a programmer simply drops the resolver, it is never called, and thus Elib needs a concept of "broken" promises.

I'm not following the conversation, so this is strictly a technical nitpick about E:

A broken promise is not one which has never been resolved, but one which has been resolved to a failure. (More precisely, a promise is resolved to another ref, which happens to be a broken ref.) A promise whose resolver is never used simply remains unresolved forever.

If the state of a promise revealed that its resolver has been dropped, then that would expose GC nondeterminism even in the single-vat case, so we don't do that.

-- 
Kevin Reid                                  <http://switchb.org/kpreid/>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.