My last blog post apparently didn't post. This use.perl interface is a little bit annoying to me (conversely, I am a little annoying to it). In my haste, I click the "Preview" button thinking it's a "Save" button, and then I close the window. Needless to say, nothing gets saved and my blog develops large gaps. Obviously it's a problem on my side of the keyboard, apparently I'm too set in my Wiki ways to become a good use.perl blogger.
The last week has seen a lot of work but, as usual, not a lot of visible progress. I ripped out the entire "card" aspect of my collector. It was adding a lot of needless complexity, it was consistently serving as a failure point in my design, and I couldn't prove that it was providing any net performance benefit. In fact, I'm decently certain that my particular implementation was a performance bottleneck. Once I get my collector to a more stable state, I can experiment with adding cards back in or other performance enhancements. Right now, I'm really focused on just getting a basic model to work.
Some of the problems I was having went away after I pulled out the cards. The problem was, I think, that somewhere my mapping from object to card and card to object wasn't a 1-to-1 mapping. Removing this showed immediate improvements in the performance of my collector, at least for a while.
Of course, we trade one problem for another, and after getting the cards pulled out I developed a compile-time bug. This compile-time bug wasn't located anywhere inside my collector, however, it was manifesting itself as a series of undefined datatype errors in the IMCC header files. This appears to have occured after running an innocuous "make headerizer", and now I can't seem to pinpoint exactly what's causing the error.
I won't have much time to continue my investigation again until later this evening. Hopefully I'll find some answers tonight so I can get moving forward with my work again.