[e-lang] [RFP] cross-language object serialization (E <--->
Squeak-E)
Mark S. Miller
markm at caplet.com
Mon Jan 20 22:05:10 UTC 2003
At 12:00 PM 1/20/2003 Monday, Robert Withers wrote:
>> Regarding the operation signatures, we could adopt the
>> CORBA Typecode specification as well and require that all
>> objects provide a remote Miranda method for acquiring a type
>> specification of the complete interface that is exported by
>> the object. I understand that this is the approach taken by
>> the CapIDL team in order to eliminate the requirement for an
>> Interface Repository - and the attendant trust issues that
>> it would bring.
>
> I really like what you have said here. Do you have a link to CapIDL?
http://www.capidl.org/ , but the info there is currently stale. CapIDL
is
under active development by the EROS group, and I remember accessing the
sources from either the OpenCM or CVS repositories through a web
interface.
However, I can no longer find it. If someone has a current URL, I'll
link
the capidl.org page to it.
> Getting rid of the IR and embedding it in the CapTP protocol sounds
> very agile.
Yes. An interface repository is a fatally broken idea, because of the
trust
issues that David mentions. This issue *must* be solved in a fully
decentralized manner.
> Could you explain exactly what a Miranda method is and how it works.
> It's a MOP method isn't it? (link?)
E's Miranda methods are defined at
http://www.erights.org/javadoc/org/erights/e/elib/prim/
MirandaMethods.html .
These are the default methods that all objects get unless they override
them. When reading this javadoc page as an E programmer, ignore the
first
"self" argument. The message arguments are the remaining ones.
Miranda methods are similar in effect to methods defined on Object in
Smalltalk or Java, except that Smalltalk or Java implements this through
inheritance and E cannot. Miranda methods in E must be a primitive
notion,
whereas inheritance in E is not primitive -- it's only a pattern of
delegation (the explanation on
http://www.erights.org/elang/blocks/inheritance.html is good, but the
details are somewhat stale -- "extends" has replaced "class" and
"delegate".)
From http://www.eros-os.org/pipermail/e-lang/2001-July/005507.html :
>> (Incidentally, what is the origin of the term `Miranda method'?
>> Presumably it doesn't come from the language Miranda.)
>
> In the U.S., one's Miranda rights include "If you cannot afford a
> lawyer, one will be provided for you". They're named after this case:
> http://www.thecapras.org/mcapra/miranda/rights.html .
>
> If you don't provide a Miranda method from yourself, one will be
> provided
> for you.
CapIDL/EROS and WOMP have similar notions of Miranda methods, but do not
provide the same Miranda methods. Smoothing over these differences will
be an
interesting part of interfacing these systems to each other. In
particular,
they all support a request for an interface description
("__getAllegedType"
in E), so that no interface repository is ever needed. These interface
description must themselves be translated between the description
formats
used by each of these systems.
----------------------------------------
Text by me above is hereby placed in the public domain
Cheers,
--MarkM
_______________________________________________
e-lang mailing list
e-lang at mail.eros-os.org
http://www.eros-os.org/mailman/listinfo/e-lang
More information about the Squeak-dev
mailing list
|