clx kompiliert Lua nativ – ganz ohne Lua-VM

Trials and Tribulations of Native Lua Compilation

Lua ist klein und leicht einzubetten, doch jede Anwendung schleppt eine Lua-VM mit. Der Autor hat mit clx einen Compiler gebaut, der Lua-5.5-Quellcode in C++ übersetzt und mit Clang, GCC oder MSVC zu echten nativen Executables kompiliert. Die clx-Runtime liefert Tabellen, Strings, Garbage Collection und Coroutinen, aber keine Bytecode-Interpretation. Module, native C++-Bibliotheken und sogar dynamisches Laden per --dynamic bleiben möglich – und kleinere, schnellere Programme sind ein willkommener Nebeneffekt.

Das Schwierige an einem nativen Lua-Compiler war nicht, Code für if, while oder arithmetische Ausdrücke zu erzeugen. Die Kunst bestand darin, Luas Semantik zu bewahren und gleichzeitig auszunutzen, dass das Ziel nun nativer Code war.

Mehr von diesem Tag

2026-10-21