<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.erights.org/mediawiki/skins/common/feed.css?207"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>Ad-hoc serialization comity - Revision history</title>
		<link>http://wiki.erights.org/mediawiki/index.php?title=Ad-hoc_serialization_comity&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>Fri, 15 May 2026 13:37:47 GMT</lastBuildDate>
		<item>
			<title>Kevin Reid:&amp;#32;/* Proposals */ add just-make-a-comm-system proposal</title>
			<link>http://wiki.erights.org/mediawiki/index.php?title=Ad-hoc_serialization_comity&amp;diff=1672&amp;oldid=prev</link>
			<guid>http://wiki.erights.org/mediawiki/index.php?title=Ad-hoc_serialization_comity&amp;diff=1672&amp;oldid=prev</guid>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Proposals:&amp;#32;&lt;/span&gt; add just-make-a-comm-system proposal&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Premise ==&lt;br /&gt;
&lt;br /&gt;
Distributed applications running in multiple E vats should be able to exchange objects of custom types, i.e. to agree that their makers should be [[graph exits]], without requiring that the objects be mobile code, or that the vats have matching entries in the global emaker namespace [which should go away too, but I haven't gotten to that problem yet --[[User:Kevin Reid|Kevin Reid]] 22:19, 26 June 2008 (CDT)]].&lt;br /&gt;
&lt;br /&gt;
== Proposals ==&lt;br /&gt;
&lt;br /&gt;
=== User comm systems ===&lt;br /&gt;
&lt;br /&gt;
Just make sure it is convenient for an application to make a customized instance of [[Pluribus]] with the desired graph exits. Communication can be bootstrapped by passing cap bits over the standard instance.&lt;br /&gt;
&lt;br /&gt;
Compared to the table-tagged references proposal, this is more heavyweight to set up, and requires the application to be more aware of implementation aspects, but does not introduce any complexity into the definition of [[CapTP]].&lt;br /&gt;
&lt;br /&gt;
=== Table-tagged references ===&lt;br /&gt;
&lt;br /&gt;
There are multiple tables of [[graph exits]], called ''comity tables'', and each [[CapTP]] [[eventual reference]] specifies one such table. Messages sent to a reference are serialized using that reference's table. PassByProxy objects in the message arguments, when unserialized on the other side, are remote references with the ''inverse'' of the original comity table.&lt;br /&gt;
&lt;br /&gt;
Two eventual references are the [[same]] only if their comity tables are the same.&lt;br /&gt;
&lt;br /&gt;
It is not possible to retrieve the comity table of a reference.&lt;br /&gt;
&lt;br /&gt;
[[eventual send|Eventual-send]] result promises share the same table as the original reference; this is appropriate as any message sent on it ''before it resolves'' will be going to the original reference's host vat for forwarding.&lt;br /&gt;
&lt;br /&gt;
The 'withComity' operation introduces an agreement.&lt;br /&gt;
&lt;br /&gt;
withComity(&amp;lt;var&amp;gt;referent&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;table&amp;lt;/var&amp;gt; :ComityTable)&lt;br /&gt;
&lt;br /&gt;
Returns a reference like &amp;lt;var&amp;gt;referent&amp;lt;/var&amp;gt; except that the exit table is augmented with the entries in &amp;lt;var&amp;gt;table&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A ComityTable is an object with four fields:&lt;br /&gt;
* &amp;lt;var&amp;gt;exits&amp;lt;/var&amp;gt; :[[Map]]. Used as Data-E [[unscope]] for serializing arguments of messages to references having this ComityTable, except that the values are not exit names, but rather references to be used in the receiving vat.&lt;br /&gt;
* &amp;lt;var&amp;gt;uncallers&amp;lt;/var&amp;gt; :[[List]]. Used as Data-E [[uncaller]] list in the same way.&lt;br /&gt;
* &amp;lt;var&amp;gt;invExits&amp;lt;/var&amp;gt; :[[Map]] and &amp;lt;var&amp;gt;invUncallers&amp;lt;/var&amp;gt; :[[List]]. When a [[PassByProxy]] reference is sent over a reference having this ComityTable, it arrives in the receiving vat having a ComityTable with these two fields exchanged with &amp;lt;var&amp;gt;exits&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;uncallers&amp;lt;/var&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
(This proposal was invented in conversation with MarkM by --[[User:Kevin Reid|Kevin Reid]] 22:19, 26 June 2008 (CDT))&lt;br /&gt;
&lt;br /&gt;
[[Category:Unresolved design issues]]&lt;br /&gt;
[[Category:Pluribus]]&lt;/div&gt;</description>
			<pubDate>Sun, 13 Feb 2011 02:17:56 GMT</pubDate>			<dc:creator>Kevin Reid</dc:creator>			<comments>http://wiki.erights.org/wiki/Talk:Ad-hoc_serialization_comity</comments>		</item>
		<item>
			<title>Markm:&amp;#32;fixed typo</title>
			<link>http://wiki.erights.org/mediawiki/index.php?title=Ad-hoc_serialization_comity&amp;diff=3600&amp;oldid=prev</link>
			<guid>http://wiki.erights.org/mediawiki/index.php?title=Ad-hoc_serialization_comity&amp;diff=3600&amp;oldid=prev</guid>
			<description>&lt;p&gt;fixed typo&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 04:56, 8 September 2009&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 19:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 19:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;withComity(&amp;lt;var&amp;gt;referent&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;table&amp;lt;/var&amp;gt; :ComityTable)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;withComity(&amp;lt;var&amp;gt;referent&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;table&amp;lt;/var&amp;gt; :ComityTable)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Returns a reference like &amp;lt;var&amp;gt;referent&amp;lt;/var&amp;gt; except that the exit table is augmented with the entries in &amp;lt;var&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;map&lt;/del&gt;&amp;lt;/var&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Returns a reference like &amp;lt;var&amp;gt;referent&amp;lt;/var&amp;gt; except that the exit table is augmented with the entries in &amp;lt;var&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;table&lt;/ins&gt;&amp;lt;/var&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;A ComityTable is an object with four fields:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;A ComityTable is an object with four fields:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff generator: internal 2026-05-15 13:37:48 --&gt;
&lt;/table&gt;</description>
			<pubDate>Tue, 08 Sep 2009 04:56:15 GMT</pubDate>			<dc:creator>Markm</dc:creator>			<comments>http://wiki.erights.org/wiki/Talk:Ad-hoc_serialization_comity</comments>		</item>
		<item>
			<title>Kevin Reid:&amp;#32;Reverted edits by 61.164.118.178 (Talk); changed back to last version by Kevin Reid</title>
			<link>http://wiki.erights.org/mediawiki/index.php?title=Ad-hoc_serialization_comity&amp;diff=3599&amp;oldid=prev</link>
			<guid>http://wiki.erights.org/mediawiki/index.php?title=Ad-hoc_serialization_comity&amp;diff=3599&amp;oldid=prev</guid>
			<description>&lt;p&gt;Reverted edits by &lt;a href=&quot;/wiki/Special:Contributions/61.164.118.178&quot; title=&quot;Special:Contributions/61.164.118.178&quot;&gt;61.164.118.178&lt;/a&gt; (&lt;a href=&quot;/mediawiki/index.php?title=User_talk:61.164.118.178&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User talk:61.164.118.178 (page does not exist)&quot;&gt;Talk&lt;/a&gt;); changed back to last version by &lt;a href=&quot;/wiki/User:Kevin_Reid&quot; title=&quot;User:Kevin Reid&quot;&gt;Kevin Reid&lt;/a&gt;&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 20:24, 5 December 2008&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;trrictre&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Premise ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Premise ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff generator: internal 2026-05-15 13:37:49 --&gt;
&lt;/table&gt;</description>
			<pubDate>Fri, 05 Dec 2008 20:24:12 GMT</pubDate>			<dc:creator>Kevin Reid</dc:creator>			<comments>http://wiki.erights.org/wiki/Talk:Ad-hoc_serialization_comity</comments>		</item>
		<item>
			<title>61.164.118.178:&amp;#32;pasrocnaropa</title>
			<link>http://wiki.erights.org/mediawiki/index.php?title=Ad-hoc_serialization_comity&amp;diff=3598&amp;oldid=prev</link>
			<guid>http://wiki.erights.org/mediawiki/index.php?title=Ad-hoc_serialization_comity&amp;diff=3598&amp;oldid=prev</guid>
			<description>&lt;p&gt;pasrocnaropa&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 21:57, 4 December 2008&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;trrictre&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Premise ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Premise ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff generator: internal 2026-05-15 13:37:49 --&gt;
&lt;/table&gt;</description>
			<pubDate>Thu, 04 Dec 2008 21:57:55 GMT</pubDate>			<dc:creator>61.164.118.178</dc:creator>			<comments>http://wiki.erights.org/wiki/Talk:Ad-hoc_serialization_comity</comments>		</item>
		<item>
			<title>Kevin Reid:&amp;#32;categories</title>
			<link>http://wiki.erights.org/mediawiki/index.php?title=Ad-hoc_serialization_comity&amp;diff=3597&amp;oldid=prev</link>
			<guid>http://wiki.erights.org/mediawiki/index.php?title=Ad-hoc_serialization_comity&amp;diff=3597&amp;oldid=prev</guid>
			<description>&lt;p&gt;categories&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 02:30, 2 July 2008&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 27:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 27:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;(This proposal was invented in conversation with MarkM by --[[User:Kevin Reid|Kevin Reid]] 22:19, 26 June 2008 (CDT))&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;(This proposal was invented in conversation with MarkM by --[[User:Kevin Reid|Kevin Reid]] 22:19, 26 June 2008 (CDT))&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Unresolved design issues]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Pluribus]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff generator: internal 2026-05-15 13:37:49 --&gt;
&lt;/table&gt;</description>
			<pubDate>Wed, 02 Jul 2008 02:30:09 GMT</pubDate>			<dc:creator>Kevin Reid</dc:creator>			<comments>http://wiki.erights.org/wiki/Talk:Ad-hoc_serialization_comity</comments>		</item>
		<item>
			<title>Kevin Reid:&amp;#32;introduce 'comity table' term</title>
			<link>http://wiki.erights.org/mediawiki/index.php?title=Ad-hoc_serialization_comity&amp;diff=3596&amp;oldid=prev</link>
			<guid>http://wiki.erights.org/mediawiki/index.php?title=Ad-hoc_serialization_comity&amp;diff=3596&amp;oldid=prev</guid>
			<description>&lt;p&gt;introduce &amp;#39;comity table&amp;#39; term&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 04:36, 27 June 2008&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Table-tagged references ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Table-tagged references ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;There are multiple tables of [[graph exits]], and each [[CapTP]] [[eventual reference]] specifies one such table. Messages sent to a reference are serialized using that reference's table. PassByProxy objects in the message arguments, when unserialized on the other side, are remote references with the ''inverse'' of the original &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;exit &lt;/del&gt;table.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;There are multiple tables of [[graph exits]]&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, called ''comity tables''&lt;/ins&gt;, and each [[CapTP]] [[eventual reference]] specifies one such table. Messages sent to a reference are serialized using that reference's table. PassByProxy objects in the message arguments, when unserialized on the other side, are remote references with the ''inverse'' of the original &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;comity &lt;/ins&gt;table.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Two eventual references are the [[same]] only if their &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;exit &lt;/del&gt;tables are the same.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Two eventual references are the [[same]] only if their &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;comity &lt;/ins&gt;tables are the same&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;It is not possible to retrieve the comity table of a reference&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[eventual send|Eventual-send]] result promises share the same table as the original reference; this is appropriate as any message sent on it ''before it resolves'' will be going to the original reference's host vat for forwarding.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[eventual send|Eventual-send]] result promises share the same table as the original reference; this is appropriate as any message sent on it ''before it resolves'' will be going to the original reference's host vat for forwarding.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The '&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;withExits&lt;/del&gt;' operation introduces an agreement.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The '&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;withComity&lt;/ins&gt;' operation introduces an agreement.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;withExits&lt;/del&gt;(&amp;lt;var&amp;gt;referent&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;map&lt;/del&gt;&amp;lt;/var&amp;gt; :&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;SerMap&lt;/del&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;withComity&lt;/ins&gt;(&amp;lt;var&amp;gt;referent&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;table&lt;/ins&gt;&amp;lt;/var&amp;gt; :&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ComityTable&lt;/ins&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Returns &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;an object which, when passed over &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;CapTP &lt;/del&gt;reference&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;, is passed &lt;/del&gt;like &amp;lt;var&amp;gt;referent&amp;lt;/var&amp;gt; except that &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;its &lt;/del&gt;exit table is augmented with the entries in &amp;lt;var&amp;gt;map&amp;lt;/var&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Returns a reference like &amp;lt;var&amp;gt;referent&amp;lt;/var&amp;gt; except that &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the &lt;/ins&gt;exit table is augmented with the entries in &amp;lt;var&amp;gt;map&amp;lt;/var&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;A &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;SerMap &lt;/del&gt;is an object with four fields:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;A &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ComityTable &lt;/ins&gt;is an object with four fields:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* &amp;lt;var&amp;gt;exits&amp;lt;/var&amp;gt; :[[Map]]. Used as Data-E [[unscope]] for serializing arguments of messages to references having this &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;SerMap&lt;/del&gt;, except that the values are not exit names, but rather references to be used in the receiving vat.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* &amp;lt;var&amp;gt;exits&amp;lt;/var&amp;gt; :[[Map]]. Used as Data-E [[unscope]] for serializing arguments of messages to references having this &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ComityTable&lt;/ins&gt;, except that the values are not exit names, but rather references to be used in the receiving vat.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* &amp;lt;var&amp;gt;uncallers&amp;lt;/var&amp;gt; :[[List]]. Used as Data-E [[uncaller]] list in the same way.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* &amp;lt;var&amp;gt;uncallers&amp;lt;/var&amp;gt; :[[List]]. Used as Data-E [[uncaller]] list in the same way.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* &amp;lt;var&amp;gt;invExits&amp;lt;/var&amp;gt; :[[Map]] and &amp;lt;var&amp;gt;invUncallers&amp;lt;/var&amp;gt; :[[List]]. When a [[PassByProxy]] reference is sent over a reference having this &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;SerMap&lt;/del&gt;, it arrives in the receiving vat having a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;SerMap &lt;/del&gt;with these two fields exchanged with &amp;lt;var&amp;gt;exits&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;uncallers&amp;lt;/var&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* &amp;lt;var&amp;gt;invExits&amp;lt;/var&amp;gt; :[[Map]] and &amp;lt;var&amp;gt;invUncallers&amp;lt;/var&amp;gt; :[[List]]. When a [[PassByProxy]] reference is sent over a reference having this &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ComityTable&lt;/ins&gt;, it arrives in the receiving vat having a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ComityTable &lt;/ins&gt;with these two fields exchanged with &amp;lt;var&amp;gt;exits&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;uncallers&amp;lt;/var&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Category&lt;/del&gt;:&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Unresolved design issues&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;(This proposal was invented in conversation with MarkM by --&lt;/ins&gt;[[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;User&lt;/ins&gt;:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Kevin Reid|Kevin Reid&lt;/ins&gt;]] &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;22:19, 26 June 2008 (CDT))&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff generator: internal 2026-05-15 13:37:50 --&gt;
&lt;/table&gt;</description>
			<pubDate>Fri, 27 Jun 2008 04:36:53 GMT</pubDate>			<dc:creator>Kevin Reid</dc:creator>			<comments>http://wiki.erights.org/wiki/Talk:Ad-hoc_serialization_comity</comments>		</item>
		<item>
			<title>Kevin Reid:&amp;#32;add SerMap description</title>
			<link>http://wiki.erights.org/mediawiki/index.php?title=Ad-hoc_serialization_comity&amp;diff=3595&amp;oldid=prev</link>
			<guid>http://wiki.erights.org/mediawiki/index.php?title=Ad-hoc_serialization_comity&amp;diff=3595&amp;oldid=prev</guid>
			<description>&lt;p&gt;add SerMap description&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 04:21, 27 June 2008&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 19:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 19:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Returns an object which, when passed over a CapTP reference, is passed like &amp;lt;var&amp;gt;referent&amp;lt;/var&amp;gt; except that its exit table is augmented with the entries in &amp;lt;var&amp;gt;map&amp;lt;/var&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Returns an object which, when passed over a CapTP reference, is passed like &amp;lt;var&amp;gt;referent&amp;lt;/var&amp;gt; except that its exit table is augmented with the entries in &amp;lt;var&amp;gt;map&amp;lt;/var&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;(Explanation &lt;/del&gt;of SerMap to &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;follow)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;A SerMap is an object with four fields:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;* &amp;lt;var&amp;gt;exits&amp;lt;/var&amp;gt; :[[Map]]. Used as Data-E [[unscope]] for serializing arguments &lt;/ins&gt;of &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;messages to references having this &lt;/ins&gt;SerMap&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, except that the values are not exit names, but rather references &lt;/ins&gt;to &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;be used in the receiving vat.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;* &amp;lt;var&amp;gt;uncallers&amp;lt;/var&amp;gt; :[[List]]. Used as Data-E [[uncaller]] list in the same way.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;* &amp;lt;var&amp;gt;invExits&amp;lt;/var&amp;gt; :[[Map]] and &amp;lt;var&amp;gt;invUncallers&amp;lt;/var&amp;gt; :[[List]]. When a [[PassByProxy]] reference is sent over a reference having this SerMap, it arrives in the receiving vat having a SerMap with these two fields exchanged with &amp;lt;var&amp;gt;exits&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;uncallers&amp;lt;/var&amp;gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:Unresolved design issues]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:Unresolved design issues]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff generator: internal 2026-05-15 13:37:50 --&gt;
&lt;/table&gt;</description>
			<pubDate>Fri, 27 Jun 2008 04:21:26 GMT</pubDate>			<dc:creator>Kevin Reid</dc:creator>			<comments>http://wiki.erights.org/wiki/Talk:Ad-hoc_serialization_comity</comments>		</item>
		<item>
			<title>Kevin Reid:&amp;#32;mention withExits, improved wordings</title>
			<link>http://wiki.erights.org/mediawiki/index.php?title=Ad-hoc_serialization_comity&amp;diff=3594&amp;oldid=prev</link>
			<guid>http://wiki.erights.org/mediawiki/index.php?title=Ad-hoc_serialization_comity&amp;diff=3594&amp;oldid=prev</guid>
			<description>&lt;p&gt;mention withExits, improved wordings&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 03:43, 27 June 2008&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Premise ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Premise ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Distributed applications running in multiple E vats should be able to exchange objects of custom types, i.e. to agree that their makers should be [[graph exits]], without requiring that the objects be mobile code, or that the vats have matching entries in the global &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;FQN/&lt;/del&gt;emaker namespace [which should go away too, but I haven't gotten to that problem yet --[[User:Kevin Reid|Kevin Reid]] 22:19, 26 June 2008 (CDT)].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Distributed applications running in multiple E vats should be able to exchange objects of custom types, i.e. to agree that their makers should be [[graph exits]], without requiring that the objects be mobile code, or that the vats have matching entries in the global emaker namespace [which should go away too, but I haven't gotten to that problem yet --[[User:Kevin Reid|Kevin Reid]] 22:19, 26 June 2008 (CDT)&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]&lt;/ins&gt;].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Proposals ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Proposals ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Table-tagged references ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Table-tagged references ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Each &lt;/del&gt;[[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;CapTP&lt;/del&gt;]] [[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;eventual reference&lt;/del&gt;]] &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;has its own table of &lt;/del&gt;[[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;graph exits&lt;/del&gt;]]. Messages sent to a reference are serialized using that reference's table. PassByProxy objects in the message arguments, when unserialized on the other side, are remote references with the ''inverse'' of the original exit table.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;There are multiple tables of &lt;/ins&gt;[[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;graph exits&lt;/ins&gt;]]&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, and each &lt;/ins&gt;[[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;CapTP&lt;/ins&gt;]] [[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;eventual reference&lt;/ins&gt;]] &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;specifies one such table&lt;/ins&gt;. Messages sent to a reference are serialized using that reference's table. PassByProxy objects in the message arguments, when unserialized on the other side, are remote references with the ''inverse'' of the original exit table.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Two eventual references are the [[same]] only if their exit tables are the same.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Two eventual references are the [[same]] only if their exit tables are the same.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 13:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 13:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[eventual send|Eventual-send]] result promises share the same table as the original reference; this is appropriate as any message sent on it ''before it resolves'' will be going to the original reference's host vat for forwarding.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[eventual send|Eventual-send]] result promises share the same table as the original reference; this is appropriate as any message sent on it ''before it resolves'' will be going to the original reference's host vat for forwarding.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;This proposal was invented in conversation with MarkM by --[[User&lt;/del&gt;:&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Kevin Reid|Kevin Reid]] 22:19&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;26 June 2008 &lt;/del&gt;(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;CDT)&lt;/del&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;The 'withExits' operation introduces an agreement.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;withExits&lt;/ins&gt;(&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;var&amp;gt;referent&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;map&amp;lt;/var&amp;gt; &lt;/ins&gt;:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;SerMap)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Returns an object which&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;when passed over a CapTP reference, is passed like &amp;lt;var&amp;gt;referent&amp;lt;/var&amp;gt; except that its exit table is augmented with the entries in &amp;lt;var&amp;gt;map&amp;lt;/var&amp;gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;(&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Explanation of SerMap to follow&lt;/ins&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:Unresolved design issues]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:Unresolved design issues]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff generator: internal 2026-05-15 13:37:50 --&gt;
&lt;/table&gt;</description>
			<pubDate>Fri, 27 Jun 2008 03:43:37 GMT</pubDate>			<dc:creator>Kevin Reid</dc:creator>			<comments>http://wiki.erights.org/wiki/Talk:Ad-hoc_serialization_comity</comments>		</item>
		<item>
			<title>Kevin Reid at 03:19, 27 June 2008</title>
			<link>http://wiki.erights.org/mediawiki/index.php?title=Ad-hoc_serialization_comity&amp;diff=3593&amp;oldid=prev</link>
			<guid>http://wiki.erights.org/mediawiki/index.php?title=Ad-hoc_serialization_comity&amp;diff=3593&amp;oldid=prev</guid>
			<description>&lt;p&gt;&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 03:19, 27 June 2008&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Premise ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Premise ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Distributed applications running in multiple E vats should be able to exchange objects of custom types, i.e. to agree that their makers should be [[graph exits]], without requiring that the objects be mobile code, or that the vats have matching entries in the global emaker namespace [which should go away too, but I haven't gotten to that problem yet --[[User:Kevin Reid|Kevin Reid]] 22:19, 26 June 2008 (CDT)&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;]&lt;/del&gt;].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Distributed applications running in multiple E vats should be able to exchange objects of custom types, i.e. to agree that their makers should be [[graph exits]], without requiring that the objects be mobile code, or that the vats have matching entries in the global &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;FQN/&lt;/ins&gt;emaker namespace [which should go away too, but I haven't gotten to that problem yet --[[User:Kevin Reid|Kevin Reid]] 22:19, 26 June 2008 (CDT)].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Proposals ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Proposals ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;=== User comm systems ===&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Just make sure it is convenient for an application to make a customized instance of [[Pluribus]] with the desired graph exits. Communication can be bootstrapped by passing cap bits over the standard instance.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Compared to the table-tagged references proposal, this is more heavyweight to set up, and requires the application to be more aware of implementation aspects, but does not introduce any complexity into the definition of [[CapTP]].&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Table-tagged references ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Table-tagged references ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;There are multiple tables of &lt;/del&gt;[[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;graph exits&lt;/del&gt;]]&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;, called ''comity tables'', and each &lt;/del&gt;[[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;CapTP&lt;/del&gt;]] [[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;eventual reference&lt;/del&gt;]] &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;specifies one such table&lt;/del&gt;. Messages sent to a reference are serialized using that reference's table. PassByProxy objects in the message arguments, when unserialized on the other side, are remote references with the ''inverse'' of the original &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;comity &lt;/del&gt;table.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Each &lt;/ins&gt;[[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;CapTP&lt;/ins&gt;]] [[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;eventual reference&lt;/ins&gt;]] &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;has its own table of &lt;/ins&gt;[[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;graph exits&lt;/ins&gt;]]. Messages sent to a reference are serialized using that reference's table. PassByProxy objects in the message arguments, when unserialized on the other side, are remote references with the ''inverse'' of the original &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;exit &lt;/ins&gt;table.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Two eventual references are the [[same]] only if their &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;comity &lt;/del&gt;tables are the same&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Two eventual references are the [[same]] only if their &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;exit &lt;/ins&gt;tables are the same.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;It is not possible to retrieve the comity table of a reference&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[eventual send|Eventual-send]] result promises share the same table as the original reference; this is appropriate as any message sent on it ''before it resolves'' will be going to the original reference's host vat for forwarding.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[eventual send|Eventual-send]] result promises share the same table as the original reference; this is appropriate as any message sent on it ''before it resolves'' will be going to the original reference's host vat for forwarding.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;The 'withComity' operation introduces an agreement.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;withComity(&amp;lt;var&amp;gt;referent&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;table&amp;lt;/var&amp;gt; :ComityTable)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Returns a reference like &amp;lt;var&amp;gt;referent&amp;lt;/var&amp;gt; except that the exit table is augmented with the entries in &amp;lt;var&amp;gt;table&amp;lt;/var&amp;gt;.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;A ComityTable is an object with four fields:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* &amp;lt;var&amp;gt;exits&amp;lt;/var&amp;gt; :[[Map]]. Used as Data-E [[unscope]] for serializing arguments of messages to references having this ComityTable, except that the values are not exit names, but rather references to be used in the receiving vat.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* &amp;lt;var&amp;gt;uncallers&amp;lt;/var&amp;gt; :[[List]]. Used as Data-E [[uncaller]] list in the same way.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* &amp;lt;var&amp;gt;invExits&amp;lt;/var&amp;gt; :[[Map]] and &amp;lt;var&amp;gt;invUncallers&amp;lt;/var&amp;gt; :[[List]]. When a [[PassByProxy]] reference is sent over a reference having this ComityTable, it arrives in the receiving vat having a ComityTable with these two fields exchanged with &amp;lt;var&amp;gt;exits&amp;lt;/var&amp;gt; and &amp;lt;var&amp;gt;uncallers&amp;lt;/var&amp;gt;.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;(This proposal was invented in conversation with MarkM by --[[User:Kevin Reid|Kevin Reid]] 22:19, 26 June 2008 (CDT))&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;(This proposal was invented in conversation with MarkM by --[[User:Kevin Reid|Kevin Reid]] 22:19, 26 June 2008 (CDT))&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:Unresolved design issues]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:Unresolved design issues]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Pluribus]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff generator: internal 2026-05-15 13:37:51 --&gt;
&lt;/table&gt;</description>
			<pubDate>Fri, 27 Jun 2008 03:19:23 GMT</pubDate>			<dc:creator>Kevin Reid</dc:creator>			<comments>http://wiki.erights.org/wiki/Talk:Ad-hoc_serialization_comity</comments>		</item>
	</channel>
</rss>