http://d.puremagic.com/issues/show_bug.cgi?id=3463
Walter Bright <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected] --- Comment #87 from Walter Bright <[email protected]> 2011-04-13 21:51:35 PDT --- The idea, as I understand it, is to supply a bit mask of where the pointers are. For me, the difficulties are: 1. distinguishing real pointers from might-be-a-pointer (such as you might get from union { int a; void* p; }). 2. large static arrays, large structs/classes, structs with large static array members, etc. The amount of static data dedicated to such bit arrays could get very large. I see two solutions: 1. if it is case (1) or (2), give up for that type and revert to the current method of scanning that object 2. devise a 'state machine' instead that the gc executes for a type. The state machine has instructions like "advance n bytes to the next pointer" and "the next pointer is ambiguous" and "execute the following sequence n times." I don't see an obvious choice which is better. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
