Created Tuesday 18 November 2008
We want a precise garbage collector
We talked about it this summer (2008).
The garbage collector would use the introspection framework to determine the type of each object it walks. So it will only follow the pointers (not the integers). And it will also know the static type of those pointers (and the dynamic type as well).
The only problem is the scan of the stack. There the compiler doesn't know the type of the pointers.
Benoît: you had an idea with the frame pointer I think.
All pointers would be gathered together in a structure (so we will need to optimise the variable allocation since gcc won't be able to perform it). At the beginning of the structure, we would have an integer containing the type of the structure (a pointer to a table containing the type of every member of the structure).
Those structures could be linked together using the frame pointer (or manually if it doesn't work on some architectures)