More PC Precision Stuff

Lutger lutger.blijdestijn at gmail.com
Thu Oct 29 12:32:54 PDT 2009


dsimcha wrote:

> I've gotten underway hacking the GC to add precise heap scanning, but I
> thought of one really annoying corner case that really would make things
> an
> order of magnitude more complicated if it were handled properly:  Structs
> and
> classes that have large static arrays embedded.  For example:
> 
> class Foo {
>     Foo next;
>     void*[4 * 1024 * 1024] hugeArray;
> }
> 
> The problem here is that scanning this precisely would require me to
> either generate a megabyte bitmask that explicitly says "scan every
> element of hugeArray" or to change my bitmask data structure from a flat
> array to something nested and an order of magnitude more complex to
> generate at compile time.
> 
> Since this is such a rare case in practice, I'm tempted to just say that
> any object with size above some arbitrary limit, say 1 kb, just gets
> scanned
> conservatively and be done with it.  For arrays, this would be a limit on
> the size of the element, i.e. for a T[], it would be a limit on T.sizeof,
> *not*
> T.sizeof * length.  I'd like to get the community's input on this:  Is
> this enough of a corner case that I have permission to cop out of solving
> it properly for the sake of simplicity?

Could you or anyone else solve this problem at a later stage? If that would 
not be made more difficult then I would say cop out, at least for now.



More information about the Digitalmars-d mailing list