[e-lang] Multi-Core Processor Software
Mark Miller
erights at gmail.com
Mon Feb 26 17:27:22 CST 2007
On 2/25/07, David Hopwood <david.nospam.hopwood at blueyonder.co.uk> wrote:
> Bill Frantz wrote:
> > Sharing an address space (or portion thereof), will allow deep-frozen,
> > self-less objects (if I am using the correct jargon) to be passed with a
> > pointer reference instead of a copy.
>
> DeepSelfless objects.
Yes. In E, DeepPassByCopy implies both DeepFrozen and DeepSelfless.
The boot-comm system checks for DeepPassByCopy.
One subtlety previously pointed out (IIRC) by Kevin Reid:
DeepPassByCopy is defined in terms of properties that are potentially
observable by clients, whereas the boot-comm-system actually needs to
know additionally that the object's implementation is thread-safe. The
danger is that an object might be validly deemed DeepPassByCopy by us
TCB designers, even though it doesn't pass the DeepPassByCopy auditor,
because we know that these observable properties hold anyway. For
example, it may internally contain a mutable cache that we know only
effects performance, not overt behavior. Since pointer-sharing
requires transitive (deep) safety, this difference is contagious: A
DeepPassByCopy container is only deeply-thread-safe if it contains
only deeply-thread-safe parts.
--
Text by me above is hereby placed in the public domain
Cheers,
--MarkM
More information about the e-lang
mailing list