compiler support added for precise GC

Steven Schveighoffer schveiguy at yahoo.com
Mon Apr 16 04:58:00 PDT 2012


On Sun, 15 Apr 2012 22:24:56 -0400, Walter Bright  
<newshound2 at digitalmars.com> wrote:

> 6. I suggest the GCInfo pointer be stored at the end of the allocated  
> block, as then it won't affect the alignment of the allocated data.

This conflicts with the array runtime's use of the end of the block to  
store the block's 'used' length.  But it may not be an issue.

Note that the 16-byte block is going to get mighty small (only 12 bytes,  
possibly 11 if it's an appendable block).

I also suggest that you look into changing the way structs are allocated  
if you haven't already.  Right now, they are allocated by creating a new  
array of size 1.  While this is convenient in terms of avoiding a new  
function, it means all struct allocations are arrays, and as such will be  
typed as arrays, with appendable semantics and with GCInfo of an array.

-Steve


More information about the Digitalmars-d mailing list