Type Aware GC Questions

Sean Kelly sean at f4.ca
Mon Jan 29 11:30:44 PST 2007


Craig Black wrote:
> "Walter Bright" <newshound at digitalmars.com> wrote in message 
> news:ephqje$1eje$2 at digitaldaemon.com...
>> Craig Black wrote:
>>> I was wondering, just how smart is the compiler now?  If I define a class
>>> that doesn't have any pointers, then will the compiler know that it 
>>> doesn't
>>> have pointers?
>> Yes.
>>
>>> If I only have one pointer in my class, will the GC only
>>> scan that location?
>> No, it'll scan the whole class. All it has is a bit that says "might have 
>> pointers" or "has no pointers".
> 
> If I have such a class, is there something I can do to inform the GC not to 
> scan a certain portiion of memory? 

Phobos:

     import std.gc;

     MyClass c = new MyClass;
     hasNoPointers( c );

Tango:

     import Tango.core.Memory;

     MyClass c = new MyClass;
     gc.setAttr( c, GC.BlkAttr.NO_SCAN );

But this still only works for the entire memory block, not a subrange.


Sean



More information about the Digitalmars-d mailing list