Re: Data-E: Removing fixed literal type set

Kevin Reid <[email protected]>
Newsgroups gmane.comp.lang.e.general
Message-ID <[email protected]>
On Jun 3, 2009, at 1:03, Kevin Reid wrote:

> The buildLiteral/1 message to Data-E builders is renamed buildAtom/1.
>
> A Data-E builder specifies the kinds of objects it will accept as
> atoms, by a guard which can be retrieved from it. (We need to choose
> the verb for this.)

I thought I had posted this before, but apparently not: we have chosen  
atomType/0, by analogy with collections' keyType and valueType.

> This does not introduce a large compatibility problem (from
> differences in what is considered an atom) because: In most builder/
> recognizer compositions, either the recognizer or the builder is
> deSubgraphKit.  ...
>
> deSubgraphKit's recognizer only invokes the builder's buildAtom if the
> object under consideration is Data (i.e. authorityless), and
> deSubgraphKit's builder only accepts Data as atoms. This ensures that
> Data-E does not carry authority other than that explicitly described
> by uses of the defined exits.

I have implemented this scheme in Caja-CapTP, and I just realized a  
certain bug resulted from the fact that I did not implement the  
abovementioned Data requirement: under that condition, if a  
deSubgraphKit recognizer is connected to a deSubgraphKit builder, _it  
always just passes the root object through_!

This is not good, as joined deSubgraphKits are useful for deep-copying  
and translation.

Implementing the Data restriction would work for this particular case,  
but I am thinking that, in general, the deSubgraphKit should have its  
recognizers _parameterized_ with a guard restricting what it will pass  
to buildAtom. This way the recognizer's client (the emitter of a Data- 
E stream) can control exactly what literal objects may be sent to the  
builder.

Does this seem reasonable? Should the subgraph builder also be  
parameterized with the atom guard?

-- 
Kevin Reid                                  <http://switchb.org/kpreid/>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.