Posted: 04/24/09 15:50:33
Yes it would be definitely intersting to have something like that in tango.
Indeed it has to be coded defensively and carfully, making a first version that has as first objective to have something working, and working correctly, performance optimization has to come later.
You don't need to have everything working perfectly before giving it to us, especially if you want some help in testing it, probably it can be added as optional gc as soon as it works, even if it is not fully tested yet.
The gc should be kind of pluggable, and if you need to change something in the interface then we will need to see how to restore/redefine the interface so that it remains pluggable. Actually this will be the first real test for the interface of the gc, so probably you will need to change some things.
I gave just a quick read to the paper, it seems really nice, but it needs some precise heap, maybe even stack (would be nice) information. This because it is partially moving. It can cope with pinned objects, with is needed in D, so it is a real possibility for D.
Leandro Lucarella was also working on a moving GC, and he does also need those pieces of information, he wanted to make an exact heap to begin. There was a discussion about it in the NG, and maybe you can contact him, because on the part "make the heap exact" you can probably collaborate, I am willing to add the changes needed to make the heap exact to tango, as soon as they are available in a reasonable form, I would also like to participate to eventual discussions about the design.
The other part (integrating with gcx, is dependent on immix). As it is also the first kind of generational gc, you might need to change some things. I would like to know if you need to do massive changes, what you paln to do, so that we find the best way to integrate this.
Fawzi