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