[e-lang] Deep* and thread-safety (was Multi-Core Processor Software)

Kevin Reid kpreid at mac.com
Mon Feb 26 21:07:35 CST 2007


On Feb 26, 2007, at 18:27, Mark Miller wrote:
> 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:

Yes.

> 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.

It has occurred to me that in order to create the most opportunities  
for non-copying, it would be convenient if user-defined PassByCopy  
objects whose implementation components are thread-safe were  
automatically marked as sharable. What do you think of this?

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




More information about the e-lang mailing list