Moving GC
Fawzi Mohamed
fmohamed at mac.com
Sat Dec 13 09:12:28 PST 2008
On 2008-12-13 04:24:54 +0100, dsimcha <dsimcha at yahoo.com> said:
> == Quote from Christopher Wright (dhasenan at gmail.com)'s article
>> It means that you can't use one block for objects of multiple types.
>
> Sure you can, without being any worse off than under the current
> scheme. Mark the
> contents of the memory as an array of void*s. This would have the same
> effect as
> marking it for GC scanning under the current scheme, basically making
> the GC scan
> the block conservatively. Furthermore, if you're storing value types
> or pointers
> to reference types that also have a pointer stored in a GC-scanned
> block, set the
> typeinfo to byte or something, and you have the equivalent of setting
> the NO_SCAN bit.
it should be an array of void (or union pointer, non pointer), they
should be pinned.
Also all pointers given to C (and potentially pointers reachable from
them) should be pinned.
This makes system programming difficult.
If one has a closed system with just D then it is easier.
Fawzi
More information about the Digitalmars-d
mailing list