Re: Using Vine in 3-way interactions (was Re: Question on redirectors/whenMoreResolved in the 3-way case, in the middle vat)
Rob Withers <[email protected]> Tue, 10 Mar 2015 14:10:17 -0600
| Newsgroups | gmane.comp.lang.e.general |
|---|---|
| Message-ID | <[email protected]> |
--===============6218923680012366793==
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: quoted-printable
<html>
<head>
<meta content=3D"text/html; charset=3Dwindows-1252"
http-equiv=3D"Content-Type">
</head>
<body bgcolor=3D"#FFFFFF" text=3D"#000000">
Thanks, Mark.=A0 I felt a little verbiage around my code could help
when you do get to it, instead of just dropping the straight code on
you.=A0 Doubly so since it is my system's strange protocol.<br>
<br>
<br>
<div class=3D"moz-cite-prefix">On 3/10/2015 1:31 PM, Mark S. Miller
wrote:<br>
</div>
<blockquote
cite=3D"mid:CABHxS9idciVhEZ6AX=3Dv3tjSUSnftFyJrnTyZ9N3SQ8XVxbAcNA-Rq2MYuBUFGs@public.gmane.org=
ail.com"
type=3D"cite">
<div dir=3D"ltr">Hi Rob, just letting you know that it will be a fe=
w
days till I can get back to this. I'm currently in the middle of
a realtime situation.</div>
<div class=3D"gmail_extra"><br>
<div class=3D"gmail_quote">On Tue, Mar 10, 2015 at 11:56 AM, Rob
Withers <span dir=3D"ltr"><<a moz-do-not-send=3D"true"
href=3D"mailto:[email protected]" target=3D"_blank=
">[email protected]</a>></span>
wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor=3D"#FFFFFF" text=3D"#000000"><span class=3D""> <=
br>
<br>
<div>On 3/8/2015 7:35 PM, Rob Withers wrote:<br>
</div>
<blockquote type=3D"cite"> <br>
<div>On 3/8/2015 5:58 PM, Mark S. Miller wrote:<br>
</div>
<blockquote type=3D"cite">
<div dir=3D"ltr"><br>
<div class=3D"gmail_extra"><br>
<div class=3D"gmail_quote">On Sun, Mar 8, 2015 at
7:33 AM, Rob Withers <span dir=3D"ltr"><<a
moz-do-not-send=3D"true"
href=3D"mailto:[email protected]"
target=3D"_blank">[email protected]=
m</a>></span>
wrote:<br>
<blockquote class=3D"gmail_quote"
style=3D"margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-lef=
t-style:solid;padding-left:1ex">
<div bgcolor=3D"#FFFFFF" text=3D"#000000"> I =
had
not realized I had posed such a
challenging situation.=A0 In mulling over
what needs to happen, I think the followOn
message send (#hashCode) needs to be a
3-vat situation, <b>of the Resolver</b>,
to prevent GC.=A0 Here are the steps I thin=
k
are needed, #6 being the point where my
system is failing, due to its absence? <br>
</div>
</blockquote>
<div><br>
</div>
<div>Hi Rob, I don't think I understand the
scenario that's driving this. I went back to
the beginning of the thread and found</div>
</div>
</div>
</div>
</blockquote>
<br>
Hi Mark, I suppose it is best to just post the
pertinent code. First is the GalaxyObject, the test
object:<br>
<br>
<font face=3D"Palatino Linotype" size=3D"-2">public cla=
ss
GalaxyObject {</font><br>
<font face=3D"Palatino Linotype" size=3D"-2">=A0=A0=A0 =
public
int getTheAnswer() { return 42; }</font><br>
<font face=3D"Palatino Linotype" size=3D"-2">=A0=A0=A0 =
public
Ref redirectForTheAnswer(Ref ref) throws
NotResolvedException { return
ref.redirectMessage("getTheAnswer"); }</font><br>
<font face=3D"Palatino Linotype" size=3D"-2">}</font><b=
r>
</blockquote>
<br>
</span> Hi Mark, does this make sense?=A0
redirectForTheAnswer sends getTheAnswer to the arg Ref and
returns the promise.=A0 In the code below, the arg Ref is
Bob, a GalazyObject in a third Vat, so the return of
redirectForTheAnswer is a RemotePromise.=A0 THe follow on
message below is #hashCode, is sent to this RemotePromise.<=
span
class=3D""><br>
=A0 <br>
<blockquote type=3D"cite"><font face=3D"Palatino Linotype=
"
size=3D"-2"> =A0=A0=A0 =A0=A0=A0 =A0=A0=A0 Ref answer=
=3D
alice.redirectMessage("redirectForTheAnswer",
bob).redirectMessage("hashCode");<br>
=A0 </font><br>
</blockquote>
<br>
</span>
<div>
<div class=3D"h5"> - Robert<br>
<br>
<blockquote type=3D"cite">
<blockquote type=3D"cite">
<div dir=3D"ltr">
<div class=3D"gmail_extra">
<div class=3D"gmail_quote">
<div>
<blockquote type=3D"cite">
<div class=3D"gmail_extra">
<div class=3D"gmail_quote">
<blockquote class=3D"gmail_quote"
style=3D"margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-lef=
t-style:solid;padding-left:1ex">
<div bgcolor=3D"#FFFFFF"
text=3D"#000000">
<div> On 2/22/2015 6:19 PM, Rob
Withers wrote:<br>
</div>
<blockquote type=3D"cite">I am
stuck, both conceptually, as
well as understanding code I
wrote a long while ago.=A0 I wa=
s
hoping to gain a little
insight from the list of the
insides of resolution
redirection in the 3-way
case.=A0 The recent change I
have made results from my
thinking I finally understand
the ordering that
MirandaMethods ensure.=A0 I mad=
e
changes such that a
whenMoreResolved directly
follows the message that
generates is by adding to the
front of the msg queue.=A0=A0<b=
r>
<br>
In the 3-way case, Carol is
sending a message to Alice,
passing Bob.=A0 Alice receives
the message and executes,
which sends a message to Bob,
then returns the result to
Carol.=A0 In Alice's vat, the
DelayedRedirector is resolved
to the RemotePromise of the
call to Bob, the return of
Alice's computation and I
think it sends
whenMoreResolved to the proxy
of the new promise resolver of
the send to Bob.=A0 What little
tracing I have I am posting
below, as well as the
DelayedRedirector value() and
the ProxyResolver resolve()
code, at the bottom.=A0 However=
,
this is my question, what
should the redirector do in
Alice's Vat to propagate the
resolution from Bob, back to
Carol?<br>
<br>
Thank you,<br>
- Robert<br>
<br>
<br>
// There are 3 messages sent
to Bob, from Alice:<br>
// =A0=A0=A0 1) getTheAnswer, w=
hich
returns 42,=A0<br>
// =A0=A0=A0 2)=A0<b>hashCode, =
again
42</b>=A0and=A0<br>
//=A0=A0 =A0 3)=A0<b>whenMoreRe=
solved</b>,
to forward to the redirector
back in Alice.<br>
</blockquote>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
<div><br>
</div>
<div>which still seems to start in the
middle, or I may be misunderstanding. What
does the user code do, in what initial
conditions, that set the rest of this
scenario in motion?</div>
<div><br>
</div>
<div><br>
</div>
<div>=A0</div>
<blockquote class=3D"gmail_quote"
style=3D"margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-lef=
t-style:solid;padding-left:1ex">
<div bgcolor=3D"#FFFFFF" text=3D"#000000">
<ol>
<li>Carol sends #redirectForTheAnswer
to Alice::GalaxyObject with a ref to
Bob::GalaxyObject, returning a
RemotePromise1</li>
<li>Carol sends #hashCode to the
RemotePromise1 from the first send,
which forwards to the Promise in
Alice, where it is queued.<br>
</li>
<li>3-way: Carol sends a ProvideFor to
Bob and Alice sends an AcceptFrom to
Bob, so Alice resolves
Bob::GalaxyObject.</li>
<li>Alice::GalaxyObject, under
computation of
#redirectForTheAnswer, sends
#getTheAnswer to Bob::GalaxyObject,
returning a RemotePromise2, in
Alice, from #redirectForTheAnswer.</l=
i>
<li>The pending #hashCode send is sent
to the RemothePromise2, in Alice,
which points to Bob.</li>
<li>3-way: In Alice, the redirected
#hashCode ought to become a 3-way
for the Resolver in Carol, for the
intial #hashCode send.=A0 Alice would
send a ProvideFor to Carol, for that
Resolver and Bob would send an
AcceptFrom to Carol to gain a FarRef
to the Resolver.</li>
<li>Bob::GalaxyObject, under
computation of #hashCode, returns
the value 42.</li>
<li>Bob sends the pending #hashCode to
42, and resolves the gift Resolver.
</li>
</ol>
I believe the tricky thing is that it is
the Resolver which is gifted, so it's a
different export "polarization" of the
minigraph for a remote send that has
been forwarded. <br>
<br>
Thank you,<br>
Robert<br>
<br>
</div>
</blockquote>
</div>
<br clear=3D"all">
<div><br>
</div>
-- <br>
<div>=A0 =A0 Cheers,<br>
=A0 =A0 --MarkM</div>
</div>
</div>
<br>
<fieldset></fieldset>
<br>
<pre>______________________________________________=
_
e-lang mailing list
<a moz-do-not-send=3D"true" href=3D"mailto:[email protected]" targe=
t=3D"_blank">[email protected]</a>
<a moz-do-not-send=3D"true" href=3D"http://www.eros-os.org/mailman/listin=
fo/e-lang" target=3D"_blank">http://www.eros-os.org/mailman/listinfo/e-la=
ng</a>
</pre>
</blockquote>
<br>
</blockquote>
<br>
</div>
</div>
</div>
<br>
_______________________________________________<br>
e-lang mailing list<br>
<a moz-do-not-send=3D"true"
href=3D"mailto:[email protected]">[email protected]=
.org</a><br>
<a moz-do-not-send=3D"true"
href=3D"http://www.eros-os.org/mailman/listinfo/e-lang"
target=3D"_blank">http://www.eros-os.org/mailman/listinfo/e=
-lang</a><br>
<br>
</blockquote>
</div>
<br>
<br clear=3D"all">
<div><br>
</div>
-- <br>
<div class=3D"gmail_signature">=A0 =A0 Cheers,<br>
=A0 =A0 --MarkM</div>
</div>
<br>
<fieldset class=3D"mimeAttachmentHeader"></fieldset>
<br>
<pre wrap=3D"">_______________________________________________
e-lang mailing list
<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:[email protected]=
org">[email protected]</a>
<a class=3D"moz-txt-link-freetext" href=3D"http://www.eros-os.org/mailman=
/listinfo/e-lang">http://www.eros-os.org/mailman/listinfo/e-lang</a>
</pre>
</blockquote>
<br>
</body>
</html>
--===============6218923680012366793==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
e-lang mailing list
[email protected]
http://www.eros-os.org/mailman/listinfo/e-lang
--===============6218923680012366793==--