<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://50.77.162.165/mediawiki/skins/common/feed.css?207"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>User:Kevin Reid/User far proxy - Revision history</title>
		<link>http://50.77.162.165/mediawiki/index.php?title=User:Kevin_Reid/User_far_proxy&amp;action=history</link>
		<description>Revision history for this page on the wiki</description>
		<language>en</language>
		<generator>MediaWiki 1.15.5-7</generator>
		<lastBuildDate>Sat, 25 Apr 2026 01:31:47 GMT</lastBuildDate>
		<item>
			<title>Kevin Reid:&amp;#32;uploading old content from July 26, 2008</title>
			<link>http://50.77.162.165/mediawiki/index.php?title=User:Kevin_Reid/User_far_proxy&amp;diff=2056&amp;oldid=prev</link>
			<guid>http://50.77.162.165/mediawiki/index.php?title=User:Kevin_Reid/User_far_proxy&amp;diff=2056&amp;oldid=prev</guid>
			<description>&lt;p&gt;uploading old content from July 26, 2008&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;The basic idea here is that there ought to be a way for a user to interactively provide the behavior of a far ref: for general interactive use where a callback is wanted, for debugging eventual protocols, and for demonstrating how E works.&lt;br /&gt;
&lt;br /&gt;
This ties directly into the interactive object manipulation ideas that are part of [[./E-AUI]] but I haven't implemented it in that framework yet.&lt;br /&gt;
&lt;br /&gt;
This is a draft REPL-based implementation which I wrote July 26, 2008. I haven't checked whether it works. —[[User:Kevin Reid|Kevin Reid]] 09:03, 6 May 2010 (CDT)&lt;br /&gt;
&lt;br /&gt;
The UI design is that notifications are printed to stdout with an index &amp;lt;var&amp;gt;n&amp;lt;/var&amp;gt;, and the arguments and return-value resolver are obtained by &amp;lt;code&amp;gt;verb[&amp;lt;var&amp;gt;n&amp;lt;/var&amp;gt;]&amp;lt;/code&amp;gt;,  &amp;lt;code&amp;gt;args[&amp;lt;var&amp;gt;n&amp;lt;/var&amp;gt;]&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;reply[&amp;lt;var&amp;gt;n&amp;lt;/var&amp;gt;]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 var lastID := 0&lt;br /&gt;
 def verbs := [].asMap().diverge()&lt;br /&gt;
 def args  := [].asMap().diverge()&lt;br /&gt;
 def reply := [].asMap().diverge()&lt;br /&gt;
 def make(label :String) {&lt;br /&gt;
   return makeProxy(def handler {&lt;br /&gt;
     to handleSendOnly(verb, args) {&lt;br /&gt;
       def thisID := lastID += 1&lt;br /&gt;
       stdout.println(`$label received $verb$args [$thisID]`)&lt;br /&gt;
       verbs[thisID] := verb&lt;br /&gt;
       args[thisID] := args&lt;br /&gt;
     }&lt;br /&gt;
     to handleSend(verb, args) {&lt;br /&gt;
       handler.handleSendOnly(verb, args)&lt;br /&gt;
       stdout.println(`Expecting a reply`)&lt;br /&gt;
       def thisID := lastID # XXX kludge&lt;br /&gt;
       reply[thisID] := def response&lt;br /&gt;
       response&lt;br /&gt;
     }&lt;br /&gt;
   })&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
[[Category:Kevin Reid/Unfinished projects]]&lt;/div&gt;</description>
			<pubDate>Thu, 06 May 2010 14:03:00 GMT</pubDate>			<dc:creator>Kevin Reid</dc:creator>			<comments>http://50.77.162.165/wiki/User_talk:Kevin_Reid/User_far_proxy</comments>		</item>
	</channel>
</rss>