Some missing things in the current threading implementation

Robert Jacques sandford at jhu.edu
Sun Sep 12 08:54:01 PDT 2010


On Sun, 12 Sep 2010 09:35:42 -0400, Sönke Ludwig  
<ludwig at informatik.uni-luebeck.de> wrote:
> 9. unique
>
> 	Unique objects or chunks of data are really important not only to be  
> able to check that a cast to 'immutable' is correct, but also to allow  
> for passing objects to another thread for computations without making a  
> superfluous copy or doing superfluous computation.

Unique (or for those with an Occam background 'mobile') has several  
proponents in the D community (myself included). It was seriously  
considered for inclusion in the type system, but Walter found several  
issues with it on a practical level. If I recall correctly, Walter's exact  
issues weren't made public, but probably stem from the fact that  
unique/mobile types in other languages are generally library defined and  
are 'shallow'. They exist as a 'please use responsibly' / 'here be  
dragons' feature. For unique to be safe, it needs to be transitive, but  
this severely limits the objects that can be represented. For example, a  
doubly-linked-list can not be unique. Unique has been integrated into the  
Clean and Mercury functional languages (or so says Wikipedia), so there  
might be reasonable solutions to these problems.


More information about the Digitalmars-d mailing list