[e-lang] [RFP] cross-language object serialization (E <---> Squeak-E)

Mark S. Miller markm at caplet.com
Tue Jan 21 07:54:39 UTC 2003


At 10:52 PM 1/20/2003 Monday, Robert Withers wrote:
>Basically, we are saying that we want XML to define the types, and a way to 
>encode with that type definition in both text and binary.

The layering is
A type is represented in terms of WOS
which is represented in terms of Doc
which is represented in terms of some surface syntax, such as XML or 
doc-code-binary.

In WOS, XML is in no sense fundamental. The semantics of types defined in 
WOS is in no way polluted by the semantics of XML. This is as it should be.


>So for now, here is my recommendation for the CapTP negotiation protocol.  
>It should *not* be Doc-XML-text, but rather a mimic of the way ReplyInfo, Go 
>and GoToo work.

Mimic what? I'm ignorant of the system you refer to.


>We come up with a basic set of serialization names:  'JavaSerialized', 
>'SqueakSerialized', 'WosSerialized-XML', 'WosSerialized-Binary'.  We should 
>also be able to pass properties during the Selected and Confirmed queries 
>just in case we need them for one of the encodings.  
>This will allow us to evolve.

We should distinguish negotiations whose choices are semantically 
significant (Java Serialization vs WOS) from negotiating semantics-free 
encodings (WOS/XML vs WOS/doc-code). We should postpone thinking about the 
first because it's hard ;). All we currently need is the second.


>Concerns with WOS
>[WOS primitive type definitions]
> I have just started looking, but there are a lot of primitive types and 
>they may not map so cleanly to squeak.  Some of them look like 
>implementations, rather than types, and this could be difficult for squeak.  
> For instance the redblacktree.    I would expect the primitive types to 
>match the principle language that the specifier used.  If I did it, you 
>would have SortedCollection, OrderedCollection, Fraction, Dictionary, and 
>nil.  I don't know what to do with Replace or Multi.
>
>I'd expect a static set of primitive types, or predefined types, that all 
>languages could easily map to and from.

I agree, but I took these, perhaps mistakenly, not as types mandated by 
WOS, but just types defined by waterken.com as one of the users of WOS. 
Tyler, did I misunderstand? Many of these would be as problematic for E as 
for Squeak.

But we do need an agreed upon set of mandated primitive types. We should 
start as small as possible, but I think that'll probably still be moderately 
big.


>[schema naming]
>I like Constantne's suggestion to use qualified names ala    
>caps.primitive.Integer, rather than file: urls.

The point of XML is to be compatible with a runaway bandwagon. However, I 
don't know the sensibilities of this bandwagon, and the standards text is 
only weak evidence about these sensibilities. E names 
behavior/object-layouts (ie, representation "types") with Java-like fully 
qualified names.  Assuming Tyler and Sue are right about the 
sensibilities of XMLers, I'm willing to mangle these into file: urls.

But I would like to hear other opinions about the sensibilities of XMLers on 
such matters. I'd rather not do something obtuse and hard to read only in 
order to be compatible with standards text recommendations no one listens to.


>[license]  I must be able to release under the SqueakL

WHY??? Due to an unfortunate technicality, SqueakL is not open-source. I 
STRONGLY recommend using an open source license that's link-compatible with 
both SqueakL and Mozilla. PLEASE.


>[Blocks]  how are we going to pass blocks of code around?  a litmus test, 
>but we weren't trying to solve it yet.

Smalltalk blocks-closures? Forget it, it's hopeless. You'd need to first add 
the equivalent of a PassByCopy auditor.


----------------------------------------
Text by me above is hereby placed in the public domain

        Cheers,
        --MarkM



More information about the Squeak-dev mailing list