Thread overview
GC (Virtually Zero-Overhead Object Management)
Nov 29, 2006
zz
Nov 29, 2006
Sean Kelly
Nov 29, 2006
Craig Black
Nov 29, 2006
Sean Kelly
Nov 29, 2006
Craig Black
Nov 29, 2006
Sean Kelly
Nov 29, 2006
Craig Black
November 29, 2006
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.

http://home.comcast.net/~vzoom/

and some code which I still have to run.

http://home.comcast.net/~vzoom/demos/pc_sample.c

Zz
November 29, 2006
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.


Sean
November 29, 2006
"Sean Kelly" <sean@f4.ca> wrote in message news:ekiu16$1ndk$1@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'm not talking about dumping our current GC for another, but rather providing options.  This could probably be done using a mixin that provides an overloaded new and delete. (Correct me if I'm wrong.)

I believe that one huge criticism of reference counting was that it was slow for multi-threading.  Well, if there is a lock-free algorithm becomes available, then that argument can no longer be used.

-Craig


November 29, 2006
Craig Black wrote:
> "Sean Kelly" <sean@f4.ca> wrote in message news:ekiu16$1ndk$1@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.


Sean
November 29, 2006
"Sean Kelly" <sean@f4.ca> wrote in message news:ekkja0$i6p$1@digitaldaemon.com...
> Craig Black wrote:
>> "Sean Kelly" <sean@f4.ca> wrote in message news:ekiu16$1ndk$1@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?

-Craig


November 29, 2006
Craig Black wrote:
> "Sean Kelly" <sean@f4.ca> wrote in message news:ekkja0$i6p$1@digitaldaemon.com...
>> Craig Black wrote:
>>> "Sean Kelly" <sean@f4.ca> wrote in message news:ekiu16$1ndk$1@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
November 29, 2006
"Sean Kelly" <sean@f4.ca> wrote in message news:ekkn5d$o3u$1@digitaldaemon.com...
> Craig Black wrote:
>> "Sean Kelly" <sean@f4.ca> wrote in message news:ekkja0$i6p$1@digitaldaemon.com...
>>> Craig Black wrote:
>>>> "Sean Kelly" <sean@f4.ca> wrote in message news:ekiu16$1ndk$1@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