GC.sizeOf(array.ptr)

Sean Kelly via Digitalmars-d digitalmars-d at puremagic.com
Tue Sep 30 11:19:45 PDT 2014


On Tuesday, 30 September 2014 at 17:51:18 UTC, Steven
Schveighoffer wrote:
> On 9/30/14 1:23 PM, Sean Kelly wrote:
>
>> (except for the
>> definition of the APPENDABLE BlkAttr, which really should be
>> defined externally and within the user-reserved range of the
>> bitfield instead of the GC-reserved range, but I digress...)
>
> The APPENDABLE bit was added as a solution to avoid having to 
> reserve that memory for all allocations. Basically, if you try 
> to append to a block that doesn't have the bit, it simply 
> reallocates conservatively.
>
> So it does have to be part of the GC metadata, because the most 
> important effect is on blocks that AREN'T allocated via the 
> array runtime. Otherwise, the append mechanism creeps into all 
> aspects of memory allocation.

Yeah I know.  But when I defined the BlkAttr bitfield I'd
reserved one portion of the range for internal GC stuff and
another portion for user-defined stuff.  APPENDABLE should
probably have landed in the user-defined portion.  I don't see
any of those comments in the current code or I'd point to them.
I guess they were deleted at some point.


More information about the Digitalmars-d mailing list