[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