> > ---------- > From: *Andreas Schlegel* > <[email protected]<https://mail.google.com/mail/?view=cm&fs=1&tf=1&[email protected]> > > > Date: Tue, Dec 3, 2013 at 6:33 AM > To: Tom Van Cutsem > <[email protected]<https://mail.google.com/mail/?view=cm&fs=1&tf=1&[email protected]>>, > "Mark S. Miller" > <[email protected]<https://mail.google.com/mail/?view=cm&fs=1&tf=1&[email protected]> > > > Cc: Brendan Eich > <[email protected]<https://mail.google.com/mail/?view=cm&fs=1&tf=1&[email protected]>>, > [email protected]<https://mail.google.com/mail/?view=cm&fs=1&tf=1&[email protected]> > > > Hello, > > yes you're right, the problem of the contracts researched by prof. > Thiemann was, that the targets behind the proxies could not be compared by > == and ===. > > How can I merge contracts of multiple proxies and represent them by just a > single proxy, if I cannot compare them (or get the target)? > > We have discussed first an approach with new operators spezific to proxy > comparism but this is not the way. > If I can include a trap for asking the proxy if he's transparent or not, > it is possible to use the same operators by asking the proxy. >
Yes, for JS or any language where identity is based on an equality *predicate*, it is too late: The conflict between contracts and identity can't be fixed. Note that, through my lack of foresight about this issue, E is among the languages that can't be fixed. For new languages or for subsets of an existing language, such as the distributed portion of Dr. SES, a weaker equality primitive, join, could be extended to be in bed with contract-membranes in ways that maintain most of what is useful about object identity, as explained in the thread with Phil and Jeremy. Not only is join compatible with contract-membranes, it enhances them by providing a useful new contract combinator. An open question is how to arrange for the built-in join to be in bed with user-extensible contract-membranes in a way that both preserves security under mutual suspicion and provides the needed functionality. A good test case is a local and a distributed implementation of Horton assuming mutually suspicious machines. > Best regards > Andreas > > -- Cheers, --MarkM _______________________________________________ dev-tech-js-engine-internals mailing list [email protected] https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals

