Luaをネイティブコンパイルする難しさ——VMを捨てた先に待っていたもの

Trials and Tribulations of Native Lua Compilation

LuaをC++に変換し、ClangやGCCでネイティブ実行ファイルにするコンパイラclxの開発記。Lua VMを実行経路から外してもテーブル、コルーチン、GCなどのランタイムは必要で、それらを正しく協調させるのが本当の難所だった。動的ロード用にVMを埋め込むモードや、数百KBのPongゲームも生成できる小ささにも触れる。

ネイティブLuaコンパイラの開発を最も正確に表すならこうだろう。個々の部品は扱いやすいが、それらすべてを正しく連携させることこそが本当の作業なのだ。

この日のほかの記事

2026-10-21