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