GC (Virtually Zero-Overhead Object Management)

Craig Black cblack at ara.com
Wed Nov 29 12:10:31 PST 2006


"Sean Kelly" <sean at f4.ca> wrote in message 
news:ekkn5d$o3u$1 at digitaldaemon.com...
> Craig Black wrote:
>> "Sean Kelly" <sean at f4.ca> wrote in message 
>> news:ekkja0$i6p$1 at digitaldaemon.com...
>>> Craig Black wrote:
>>>> "Sean Kelly" <sean at f4.ca> wrote in message 
>>>> news:ekiu16$1ndk$1 at digitaldaemon.com...
>>>>> zz wrote:
>>>>>> While having a discussion about GC's with a friend, he brought up 
>>>>>> this link which I found quite interesting (at the first reading) and 
>>>>>> I thought others would also find it interesting.
>>>>>>
>>>>>> I'm still very skeptical of the claims.
>>>>> Don't be.  Chris Thomasson may talk a bit big at times, but he has a 
>>>>> solid grasp of the problems involved and VZOOM has gotten a lot of 
>>>>> attention lately from some pretty respectable sources (I think it just 
>>>>> won some kind of award in a contest sponsored by Sun or some such).  I 
>>>>> haven't given VZOOM a very close look myself, but what I've heard 
>>>>> Chris say about it makes me believe that it probably lives up to his 
>>>>> claims. What makes VZOOM so fast, from what I've heard, is that it 
>>>>> almost completely avoids the use of memory synchronization 
>>>>> instructions through the use of some clever tricks, along the lines of 
>>>>> RCU + SMR.  Last I heard Chris was working on a lock-free GC which 
>>>>> sounded fairly promising, though it was smart-pointer based and 
>>>>> therefore not really suitable for D.
>>>> Why not?  If someone has discovered a good GC solution via smart 
>>>> pointers and reference counting, why couldn't D leverage this new 
>>>> technology somehow?
>>> I suppose it depends how the smart pointers are implemented.  As D 
>>> doesn't support copy semantics for objects, there is really no way to 
>>> implement traditional smart pointers.  Rather, the reference counting 
>>> has to be done somewhat manually.
>>
>> Right.  I forgot about that.  Specifically, what language features would 
>> have to be in place to provide for this?
>
> I'm not sure, without looking at the code.  But for general smart pointers 
> we'd need C++ style initialization and copy semantics for value objects 
> (ie. structs), and an overloaded dot operator would be a "nice to have." 
> The thing is that I actually like that these features are not in D.

Perhaps someone could invent a cleaner solution that doesn't muck up the 
syntax with problematic C++ language features.  D has a habit of doing this.

-Craig 





More information about the Digitalmars-d mailing list