Hi all, I'm working with two paths right now when it comes to gc. 1. Using finalizers, that fails right now 2. A modded version of bdw-gc found at https://gitorious.org/bdw-gc-logical-mod I was thinking of showing how the new API in 2) is working, just for the curious. So: GC_new_kind_adv (..., bit) This is the same as without _adv but with a new argument bit, at the end, the tag to mask on the head SCM of the allocated datastructure. the modded gc will mask on bit on the head SCM in case it is reached from normal code and hence one can use this to probe if a variable is referenced normally or not. GC_MARK_AND_PUSH_NO_TOUCH(...) This is the same as the ideom with _NO_TOUCH attached. It will simply mark the variable as not for gc and don't pushes the variable onto the stack and onot mask on the bit. The name should be (I will change it later to GC_MARK_NO_TOUCH( ...)) That's it. I'm not sure that this scheme supports incremental gc, but it is a nice start to play with the gc. The added overhead is low compared to the rest of the gc code. Have fun! /Stefan