GC (Virtually Zero-Overhead Object Management)

Sean Kelly sean at f4.ca
Wed Nov 29 11:30:52 PST 2006


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.


Sean



More information about the Digitalmars-d mailing list