[e-lang] Membrane implementation in repository
Mark S. Miller
markm at cs.jhu.edu
Wed Mar 28 10:47:31 CDT 2007
Martin Scheffler wrote:
> Hi,
> I'm playing around with the membrane implementation at
> org.erights.e.facet.makeMembraneAuthor
> Two things:
> 1. It uses a map() function that does not exist.
Fixed and committed. Thanks!
> 2. ConstLists are wrapped, not its contents.
>
> ? Ref.isData([def _ {}])
> # value: false
> It would be great if I could pass lists of stuff through the membrane,
> where the contents is wrapped, not the whole list. Same with maps I
> guess.
Yes, this is a known problem. It applies not just to ConstLists and ConstMaps,
but to all PassByCopy objects that aren't DeepPassByCopy. To solve it in
general requires something like serialization/unserialization.
The same issue comes up in the BootComm system. In E-on-Java, I just special
cased this for ConstLists, and we could do the same here. However, in E-on-CL,
Kevin has a much more elegant design. At a low level, his BootComm system
remains simple. On that he layers something like a
serialization/unserialization system, but he uses live cycles in the
serialization output to represent cycles in the original graph. I think
Kevin's technique could be adapted for use by better membranes.
Kevin, have you posted an explanation of this technique?
--
Text by me above is hereby placed in the public domain
Cheers,
--MarkM
More information about the e-lang
mailing list