Re: [ANN] CLX - Ahead-of-Time Lua 5.5 Compiler

"Pierre Chapuis" <[email protected]> Mon, 22 Jun 2026 10:57:38 +0200
Newsgroups gmane.comp.lang.lua.general
Message-ID <[email protected]>
Nice project.

FYI on an Arch Linux machine, out of the box, building and trying to use the result will fail:

```
/usr/bin/ld: /dcs/cwl/git/clx/build/libclx_size.a(runtime.cpp.o): plugin needed to handle lto object /usr/bin/ld: /dcs/cwl/git/clx/build/libclx_size.a(runtime.cpp.o): plugin needed to handle lto object /usr/bin/ld: /dcs/cwl/git/clx/build/libclx_size.a(openlibs.cpp.o): plugin needed to handle lto object /usr/bin/ld: /dcs/cwl/git/clx/build/libclx_size.a(openlibs.cpp.o): plugin needed to handle lto object /usr/bin/ld: /tmp/lto-llvm-d854bc.o: in function `luaopen_t(clx::LState*)': ld-temp.o:(.text._Z9luaopen_tPN3clx6LStateE+0x126): undefined reference to `clx::LTable::gettable(clx::LValue const&)' /usr/bin/ld: ld-temp.o:(.text._Z9luaopen_tPN3clx6LStateE+0x1bb): undefined reference to `clx::call_function(clx::LState*, clx::LValue const&, clx::LValue const*, unsigned long, char const*, int)' /usr/bin/ld: /tmp/lto-llvm-d854bc.o: in function `main': ld-temp.o:(.text.main+0x5): undefined reference to `clx::open(int, char**)' /usr/bin/ld: ld-temp.o:(.text.main+0x10): undefined reference to `clx::openlibs(clx::LState*)' /usr/bin/ld: ld-temp.o:(.text.main+0x20): undefined reference to `clx::close(clx::LState*)' /usr/bin/ld: ld-temp.o:(.text.main+0x6e): undefined reference to `clx::close(clx::LState*)' /usr/bin/ld: ld-temp.o:(.text.main+0xcc): undefined reference to `clx::close(clx::LState*)' clang++:
error:
linker command failed with exit code 1 (use -v to see invocation)
```

That is because it will build will GCC but compile the Lua program with clang and attempt to link with (GNU) ld.

Forcing it to use clang / lld for everything works.

-- 
Pierre Chapuis

On Mon, Jun 22, 2026, at 09:58, Samir Tine wrote:
> That's a fair question.
> The goal is not to intentionally exclude Lua features. In fact, CLX already supports essentially all Lua 5.5 syntax (including global, <const> and <close>) and most of the standard library.
> 
> The main unsupported areas today are features that fundamentally depend on runtime code generation or deep interpreter introspection, such as load(), loadfile(), dofile(), string.dump(), and most of the debug module.
> 
> The traditional Lua C API is also not supported, as CLX uses its own C++ API designed around the AOT execution model (CLX don't use any stack or VM internally)
> 
> Apart from these limitations, the goal is full Lua 5.5 compatibility.
> 
> 
> Le lundi 22 juin 2026 à 07:13:02 UTC+2, bil til a écrit :
>> Am So., 21. Juni 2026 um 17:17 Uhr schrieb <[email protected]>: 
>> > Support for most Lua 5.5 language features 
>> 
>> Please excuse a "lazy question" (I did not look at your project in 
>> detail, please excuse - currently too much different work): 
>> 
>> Which are the main features your project does NOT support? 
>> 
>> (because you do not like them / you think they are too cumbersome? or 
>> because the produce any severe problems in your project?) 
>> 
>> Am So., 21. Juni 2026 um 17:17 Uhr schrieb <[email protected]>: 
>> > 
>> > Hello, 
>> > 
>> > CLX is a new open-source ahead-of-time compiler for Lua 5.5. 
>> > CLX compiles Lua source code to standalone native executables through modern C++20 toolchains (Clang, GCC, and MSVC). 
>> > 
>> > Current features include: 
>> > 
>> > Native standalone executable compilation 
>> > 
>> > Support for most Lua 5.5 language features 
>> > 
>> > Cross-platform support (Linux, Windows, and macOS) 
>> > 
>> > Lightweight runtime designed for AOT compilation 
>> > 
>> > C++ API for native modules 
>> > 
>> > Example projects (a fully playable Pong game and a Mandelbrot fractal renderer) 
>> > 
>> > Recent benchmarks show consistent speedups over the standard Lua interpreter and competitive performance with LuaJIT on a number of workloads. 
>> > 
>> > The project is currently in beta and feedback is welcome. 
>> > 
>> > Website: 
>> > https://samyeyo.github.io/clx 
>> > 
>> > GitHub: 
>> > https://github.com/samyeyo/clx 
>> > 
>> > Thank you, 
>> > 
>> > Samir Tine 
>> > 
>> > -- 
>> > You received this message because you are subscribed to the Google Groups "lua-l" group. 
>> > To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. 
>> > To view this discussion visit https://groups.google.com/d/msgid/lua-l/b37b13c2128d9a27a854da270db19608%40luart.org.
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups "lua-l" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
> To view this discussion visit https://groups.google.com/d/msgid/lua-l/a53347e9-2426-4f64-9dd9-b09b7d3c5b38n%40googlegroups.com <https://groups.google.com/d/msgid/lua-l/a53347e9-2426-4f64-9dd9-b09b7d3c5b38n%40googlegroups.com?utm_medium=email&utm_source=footer>.

-- 
You received this message because you are subscribed to the Google Groups "lua-l" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To view this discussion visit https://groups.google.com/d/msgid/lua-l/371b4e9f-7e7c-4094-b256-65736006f39b%40app.fastmail.com.