2

У меня есть язык, скомпилированный для байт-кода, запущенного поверх закрытого источника VM. У меня нет доступа. Я изучаю варианты создания интерфейса LLVM для этого языка. Одна вещь, которую я пытаюсь понять, - это то, как сборщик мусора вписывается в эту картину. У меня нет ни малейшего желания переопределить его. Есть ли что-нибудь в LLVM, которое позаботится о сборке мусора в этом конкретном случае? Поскольку язык, с которым я имею дело, похож на ядро ​​Java, я кратко рассмотрел java llvm frontend, размещенный под проектом llvm, но не нашел быстрых ответов - я, возможно, пропустил что-то легко, поскольку я не очень хорошо знаком с этими вещами, и есть не так много документации по этому подпроекту. Repo кажется довольно устаревшим, а также с последним фиксатором, связанным с 2007 годом.Поддержка LLVM для GC при реализации интерфейса для управляемого языка памяти

+1

I не знаю, поможет ли это вам, но существуют сборщики мусора FOSS, такие как Boehm-Demers-Weiser. Я думаю, что Mono (бесплатная реализация .NET) использовала его, поэтому вы можете посмотреть, что они сделали, и выяснить, можете ли вы сделать что-то подобное. –

ответ

1

Насколько я понял, прочитав некоторые документы LLVM, LLVM предоставляет некоторые крючки для сборщиков мусора, но не более того. В случае, если кто заинтересован я наткнулся на 2 открытых и разведанных реализаций GC: