On Wed, Mar 4, 2009 at 7:19 PM, Jonathan S. Shapiro <[email protected]> wrote:
> More generally, there are NO safe programming languages that support
> explicit deallocation. GC is the price of eliminating memory safety
> errors.
Well, although I agree with the thrust of your argument, technically,
E is both memory safe and supports explicit termination/deallocation
of vats. The key thing is that a vat is the minimum unit of
deallocation, and the only forms of inter-vat reference are E's remote
references (far references and remote promises) which only support
asynchronous coupling, and whose semantics explicitly allow for the
possibility of failure and partition. All operations utilizing a
remote reference checks whether it is broken before indirecting
through it. Remote references are therefore more expensive than simple
pointers, but they are only needed at the boundary between vats, which
are typically much larger grain than a single object.
I believe much the same can be said about Erlang (vat = process,
remote reference = process id), but I am not certain.
--
Text by me above is hereby placed in the public domain
Cheers,
--MarkM
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev