GMC Update
It's been a pretty long time since I last wrote something here, and many things happened :
first, leo made many comments on GMC for dummies, which led to a much better design, and something closer to what he had in head for gmc. Main topics that were concerned were placement of objects, the structure of gmc_gc_obj (and specifically its header, which needs to be as small as possible) and inter-generational pointers (IGP) handling.
Bob Rogers later made some remarks concerning IGP and the difficulty of collecting cycles. After much thought, I came up with a modification of the first design, which I called Night of the Living Dead Collection. It was just then that I realized that it was almost exactly what leo wanted to do (though a little bit more complex). We are not really one-pass anymore but almost so (back pointers need to be followed in order to make a real marking).
Other news was that I was in Paris for a week (mostly drinking guinness and trying new restaurants with friends). And of course, as a simple application of Murphy Law, my laptop AC adapter died... So I couldn't work on design documents or begin coding anymore while I was there. Fortunately, the IBM warranty guys (may they be blessed) sent me a new adapter very quickly and everything is fine again.
As a consequence, I have begun coding some things (for now only data structures), rather than producing again design documents which would not be confronted to the tough reality of parrot source code. As I don't have yet svn access (and don't know if I am supposed to commit my changes, even though they are protected by #ifdef statements), I did not add them to the parrot source code, but the thing is here for anyone to look at and comment : smallobject.h.
first, leo made many comments on GMC for dummies, which led to a much better design, and something closer to what he had in head for gmc. Main topics that were concerned were placement of objects, the structure of gmc_gc_obj (and specifically its header, which needs to be as small as possible) and inter-generational pointers (IGP) handling.
Bob Rogers later made some remarks concerning IGP and the difficulty of collecting cycles. After much thought, I came up with a modification of the first design, which I called Night of the Living Dead Collection. It was just then that I realized that it was almost exactly what leo wanted to do (though a little bit more complex). We are not really one-pass anymore but almost so (back pointers need to be followed in order to make a real marking).
Other news was that I was in Paris for a week (mostly drinking guinness and trying new restaurants with friends). And of course, as a simple application of Murphy Law, my laptop AC adapter died... So I couldn't work on design documents or begin coding anymore while I was there. Fortunately, the IBM warranty guys (may they be blessed) sent me a new adapter very quickly and everything is fine again.
As a consequence, I have begun coding some things (for now only data structures), rather than producing again design documents which would not be confronted to the tough reality of parrot source code. As I don't have yet svn access (and don't know if I am supposed to commit my changes, even though they are protected by #ifdef statements), I did not add them to the parrot source code, but the thing is here for anyone to look at and comment : smallobject.h.