From: Alexandre Buisse <[EMAIL PROTECTED]> Date: Tue, 26 Jul 2005 03:06:14 +0200
I am sorry not to have told everyone before, but I discussed with leo on IRC and the scheme he originally envisionned is actually very close to NLDC and more simple : simply do the NLD pass at the same time than the marking pass. But the underlying idea of collecting the IGP cycles remains the same. There is also the problem of no wanting to mark the whole memory but only a given number of generations which is addresses this way. This is sounding more and more like the CMUCL gencgc algorithm, which uses what I understand is a classic approach. Instead of an IGP list, it write-protects all oldspace pages (hence my earlier question), unprotecting them transparently when one is stored into, so that it only needs to scan writable pages to look for newspace pointers. It is my intuition that this would be less overhead than an IGP list, but I suspect this is data-dependent, and would take benchmarking to prove. > Even an outline of a proof would help to identify hidden assumptions. > Especially valuable would be to prove bounds on storage and time costs. > But of course it's your time, so it's your call . . . Well, I'll try to provide a sketch of it, but not now. That's OK; if Leo believes it will work, then I'm sure it will. My quibbles were about speed and complexity, and I don't want to distract you with unproven assertions about things that might not matter. Actually, I had some laptop problems which should hopefully be fixed soon. As time is beginning to run short (remember that the GC should be functional by Sept. 1st), I'll rewrite GMC for dummies very soon (tomorrow ?) and hope to begin coding just after that. Regards, Alexandre Great; I look forward to it. -- Bob