[bitc-dev] Pools in lieu of GC

Mark Miller erights at gmail.com
Thu Mar 5 00:42:48 EST 2009


On Wed, Mar 4, 2009 at 7:19 PM, Jonathan S. Shapiro <shap at eros-os.com> 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


More information about the bitc-dev mailing list