clx es un compilador y runtime de Lua multiplataforma que genera ejecutables nativos independientes a partir de código Lua mediante cadenas de herramientas modernas de C++. Su objetivo no es competir por ser la implementación más rápida de Lua en todos los escenarios, sino ofrecer compilación ahead-of-time, ejecutables desplegables de forma autónoma, rendimiento predecible, arranques rápidos, integración con toolchains de C++ existentes y fuertes oportunidades de optimización gracias a compiladores nativos modernos como Clang, GCC y MSVC.
El proyecto se distribuye bajo licencia MIT y se encuentra en fase beta. Es capaz de compilar aplicaciones no triviales en Lua y apunta a la compatibilidad con Lua 5.5, con el núcleo del lenguaje, tablas, metatablas, corrutinas, módulos y la mayor parte de la biblioteca estándar ya implementados. Entre sus características técnicas destacan valores etiquetados de 16 bytes (8 bytes de carga más etiqueta de tipo), optimización de cadenas en línea para textos de hasta 6 bytes, cachés de acceso rápido a tablas y un runtime ligero orientado a AOT.
En las pruebas publicadas, clx supera ampliamente al intérprete estándar de Lua 5.5 y se sitúa a la par o por delante de LuaJIT en varios benchmarks: en fib.lua alcanza 62,20x frente a Lua 5.5 y 9x frente a LuaJIT, y en arraysum.lua logra 4,13x. Los binarios pueden ser muy compactos: los programas Lua pueden ocupar menos de 100 KB con la opción --minimal. Como limitaciones, no soporta la API C tradicional de Lua, los módulos binarios deben escribirse con la API C++ propia de clx, y funciones como load(), dofile(), loadfile(), string.dump() o el módulo debug requieren un intérprete en tiempo de ejecución. Entre los ejemplos incluidos hay un Pong completo y un visor de Mandelbrot, ambos compilados como ejecutables nativos.
