Lua VM 없이 Lua를 네이티브 코드로 컴파일하는 여정
Trials and Tribulations of Native Lua Compilation
LuaRT의 rtc로 Windows 배포 문제를 해결한 저자는 한 단계 더 나아가 Lua VM 없이 Lua 코드를 C++로 변환해 네이티브 실행 파일을 만드는 clx를 개발했다. 테이블, 다중 반환값, 코루틴, 가비지 컬렉션 등 Lua의 복잡한 의미론을 네이티브 코드로 보존하는 것이 핵심 난제였으며, 필요할 때는 --dynamic 모드로 Lua VM을 임베드할 수 있게 설계했다. 성능과 실행 파일 크기 면에서도 의미 있는 결과를 얻었다.
네이티브 Lua 컴파일러 개발을 가장 정확하게 설명하자면 아마 이럴 것이다. 개별 조각들은 감당할 만하지만, 그것들이 모두 함께 올바르게 동작하게 만드는 것이 진짜 작업이다.