Walter Bright <> changed:

           What    |Removed                     |Added
                 CC|                            |

--- Comment #87 from Walter Bright <> 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:
------- You are receiving this mail because: -------

Reply via email to