Garbage Collection and gamedev - tl;dr Yes we want it, so let's solve it

Ola Fosheim Grostad ola.fosheim.grostad at gmail.com
Sun Nov 22 20:20:50 UTC 2020


On Sunday, 22 November 2020 at 19:54:14 UTC, Ethan wrote:
> But yeah, this all comes down to the fact that the runtime 
> really needs work these days. And to a degree, I imagine 
> user-provided templates that dictate how code should be 
> generated is an interesting compiler design paradigm that can 
> help there.

If you want to mix ARC and GC in the same executable, for high 
efficiency, you need at least two types of pointers: owning and 
nonowning, and to break cycles you also need weak pointers (turns 
to null on destruction) which are useful for speculative caching 
as well.

The good news is that going from ARC to GC is free and that ARC 
annotated pointers will collect faster with a precise tracing GC 
than is the case today. So clearly a win for libraries, either 
way.

The bad news is that doing ARC in the LLVM IR is nontrivial so 
you may need a new intermediary typed language specific IR. But 
you need that to do @live well anyway... So, why not?




More information about the Digitalmars-d mailing list