OCaml/Erlang GC strategy implementation and documentation?


I am trying to work on a project regarding garbage collection, where we want to use LLVM to identify the GC roots. While the Shadow Stack GC seems to be well documented, it does not work for our purpose (we need thread-safe collection of roots).

The documentation also describes other root set tracking strategies The ‘Erlang’ and ‘Ocaml’ GCs , and I wanted to examine if they would work for the project. Is there any further documentation on them? In case not, even a link to the implementation would be helpful.


OTP Erlang, the Erlang, does not use LLVM.

Thanks for replying. Yes I realize that Erlang does not use LLVM. The documentation at Garbage Collection with LLVM — LLVM 17.0.0git documentation also says that they are not actually used by any language runtime. I just want the docs/link to code, of the Erlang or OCaml GC strategies implemented in LLVM, to examine if they would be fit for my project.

@Swapnil, did you manage to find what you desire in last months? I’m interested in this too.