I'm working on the precise gc patches. I now have a bunch of templates and all the other infrastructure, but what's holding me back is that I don't quite understand the .di files.

In order for user-defined datastructures to instantiate the correct templates, the template code needs to live (/be imported into) the object.di file. However, for any kind of efficiency, the templates also need to be able to directly call functions and/or access the state from src/gc/gcx.d. I cannot just import it, because it won't be available during (user code) compilation. What is the correct approach?

Currently, I'm leaning on creating a new public gc.di (or similar), with functions to scan ranges and single pointers, and add implementations of those to the gcx side. Is this the correct way forward?

Reply via email to