Post Thumbnail

Это почти техническое руководство по реализации JIT-компиляции в Go с акцентом на вызов Go-функций из динамически сгенерированного кода.

Автор объясняет фундаментальную проблему, связанную с двумя ABI и строгими требованиями к стеку из-за сборщика мусора. Наивная JIT-реализация не будет работать стабильно.

Мы пройдемся по трем этапам реализации. Начнме с базового JIT, изменяющнго переменную. Потом будет ошибочная попытка прямого вызова Go-функции, приводящая к краху при сборке мусора. И, наконец, корректное решение с использованием ассемблерной прослойки и специальной метки gocall, которая обманывает рантайм, заставляя его считать JIT-вызов легитимным.

Этот подход лёг в основу форка gojit, который уже применяется в эмуляторе guac

Похожее

Post Thumbnail

C на Go

Интересный пропозал - добавить возможность сборки Go-пакетов, использующих cgo д...

Post Thumbnail

Rune

Команда Unstable Build заопенсорсила свою нативную IDE Rune, написанную на Go. ...