Ad-hoc serialization comity

From Erights

Revision as of 03:19, 27 June 2008 by Kevin Reid (Talk | contribs)
Jump to: navigation, search

Premise

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 FQN/emaker namespace [which should go away too, but I haven't gotten to that problem yet --Kevin Reid 22:19, 26 June 2008 (CDT)].

Proposals

Table-tagged references

Each CapTP eventual reference has its own table of graph exits. 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.

Two eventual references are the same only if their exit tables are the same.

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.

(This proposal was invented in conversation with MarkM by --Kevin Reid 22:19, 26 June 2008 (CDT))

Personal tools
more tools