Typed GC

Shammah Chancellor anonymous at coward.com
Wed Feb 26 14:22:59 PST 2014


On 2014-02-26 16:51:25 +0000, evansl said:

> On 02/26/14 10:25, evansl wrote:
>> On 02/12/14 06:11, Shammah Chancellor wrote:
>>> With all the talk of garbage collection.  I was wondering if it would be
>>> useful to make the GC typed.  If it was typed, it maybe be possible to
>>> make it more efficient via type information, (such as only scanning
>>> reference fields).   Also, it could have access to attribute information
>>> if applicable.
>>> 
>>> -S.
>>> 
>> Hi Shammah,
>> 
>> In an earlier thread, Andrei proposed:
>> 
>> I suspect that allocating and manipulating objects on the GC heap in
>> particular may have certain restrictions. One possibility to avoid
>> such restrictions is to have a function typify(T)(void* p) which
>> ascribes type T to heap location p.
>> 
>> which would be one way to at least record the type of each memory
>> location.  However, later posts in that thread indicated there
>> were problems with where to store that information.  I thought
>> you could store it in the heap along side the pointed to object;
>> however, that seemed to have problems, according to this post:
>> 
>> http://forum.dlang.org/thread/lao9fn$1d70$1@digitalmars.com?page=12#post-jgommvkndygzcpxxotly:40forum.dlang.org 
>> 
>> 
>> 
>> So, the idea seems good, but I'd guess implementation is problematic.
>> At least that's what I guess from the referenced posts.
>> 
>> -regards,
>> Larry
>> 
> OOPS.  Just read Benjamin's post:
> 
> http://forum.dlang.org/post/ldhquc$11ec$1@digitalmars.com
> 
> and then the druntime code:
> 
> https://github.com/D-Programming-Language/druntime/blob/e47a00bff935c3f079bb567a6ec97663ba384487/src/object_.d#L2629 
> 
> 
> which contains:
> 
>      immutable(void)* m_RTInfo; // data for precise GC
> 
>      override @property immutable(void)* rtInfo() const
>      { return m_RTInfo; }
> 
> So, I guess m_RTInfo contains information from which the pointers
> within the object can be precisely found.
> 
> Sorry for noise :(
> 
> -Larry

No problem, thanks for the reply.  However,  I was suggesting that new 
be given type info at compile time in order to add some optimization to 
the GC there.

-SC



More information about the Digitalmars-d mailing list