On Tuesday, 14 January 2014 at 11:02:38 UTC, Benjamin Thaut wrote:
Am 14.01.2014 11:05, schrieb Walter Bright:
On 1/14/2014 1:18 AM, Benjamin Thaut wrote:
Current D does not allow a moving collector because of the lack of
compiler
support. It is still not possible to identify all pointers percicesly, especially those on the stack. Also when you want to implement a
semi-space GC
everything _must_ be moveable. Pinning is not an option for a
semi-space GC.
There for current D does not allow the implementation of semi-space GC
without
some changes to the spec. (E.g. structs / classes containing unions
_must_
provide a custom scanning function).


This is not true, I've implemented one for Java.

So how do you implement a semi-space GC with pinned objects?

You manage the pinned object in a different list that the semi-space list?

It's quite often that GCs maintain object inventory with several methods, for example using semi-space for young object but not for old objects..

Reply via email to