[e-lang] How to fix the Data-E unserialization order problem

Kevin Reid kpreid at mac.com
Thu Apr 19 16:18:59 CDT 2007


On Apr 19, 2007, at 2:15, Kevin Reid wrote:

> I'll post a definition of the assembler tomorrow.

Here it is. I haven't tested it out thoroughly, but it works for the  
simple out-of-order cases I've tried.

Examples:

? def a := makeAssembler(setDependencyBuilder)
# value: <assembler>

? def [y, s, l, x] := [a(1).next(),
 >                      a(l).asSet(),
 >                      a(__makeList).run(x, y),
 >                      a(0).next()]
 > a.finish()
 > [y,s,l,x]
# value: [2, [1, 2].asSet(), [1, 2], 1]

? def l := a(["hello world", a(l).readOnly()]).diverge()
 > a.finish()
 > l
# value: ["hello world", <***CYCLE***>.readOnly()].diverge()

The argument to makeAssembler is asked to determine additional  
dependencies based on the [recipient, verb, args] triple; if the  
recipient is part of the graph being assembled, the recipient will be  
resolved before then, so that decisions can be made based on the  
recipient's protocol.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: makeAssembler.emaker
Type: application/octet-stream
Size: 5224 bytes
Desc: not available
Url : http://www.eros-os.org/pipermail/e-lang/attachments/20070419/0113b93e/attachment.obj 
-------------- next part --------------


-- 
Kevin Reid                            <http://homepage.mac.com/kpreid/>




More information about the e-lang mailing list