On Tuesday, 18 September 2018 at 16:19:23 UTC, Vladimir Panteleev wrote:
On Tuesday, 18 September 2018 at 14:23:44 UTC, 9il wrote:
I just remember that D's GC has NO_SCAN [1] attribute!

This will be added by default when for Mir allocations if type representation tuple has not references. For example, are Slice!(double*, 2) should never be scanned by GC, but it will be in GC heap until something refers it.

Not sure if this is what you mean or not, but the D GC already doesn't scan types which do not contain references. This was added in D 1.000, see TypeInfo.flags&1. NO_SCAN is a way to further override that.

Ah, awesome! Did not know about it. Need to review all allocations this allocations in Mir anyway.

If you mean that Slice itself (when on the heap) should not be scanned by the GC, I'm not sure that's a good idea. Is it not conceivable that a Slice would be the only reference left pointing at a block of memory in the heap?

Sure, Slice with GC allocated pointer should be referenced (btw, it is struct).

Reply via email to