On 2015-09-02 22:13, Brandon Ragland wrote:
On Wednesday, 2 September 2015 at 18:25:11 UTC, Jacob Carlborg wrote:
[1]
https://github.com/D-Programming-Language/druntime/blob/master/src/gcstub/gc.d


While that may be true, if the purpose was to ensure tracking and
collection of objects / arrays created with the new expression, how
would one do that without knowledge of the actual implementation and the
interface?

Same would go for slicing operations, which would be difficult to track.

You'd have to pass a pointer to that new object onto the custom GC, or
it will never see it. Quick way to have huge memory leaks...

I'm not sure I understand you're reply. You asked for the interface to the GC, as far as I know the above link contains the interface for the GC. That is, all the extern (C) functions.

As far as the "new" expression, technically it has nothing to do with the GC. The "new" expression is lowered to a call to "_d_newclass" [1], which in the current implementation then calls the GC.

I recommend you having a look in the "rt" package.

[1] https://github.com/D-Programming-Language/druntime/blob/master/src/rt/lifetime.d#L71

--
/Jacob Carlborg

Reply via email to