clx: 将 Lua 编译为原生可执行文件
Show HN: Clx – Compile Lua to Native Executables Through C++20

clx 是一个跨平台的 Lua 即时编译器与运行时,利用 C++20 后端将 Lua 代码直接编译为独立的本地可执行文件。它摒弃了传统的字节码解释器开销,带来可预测的运行时性能和极速启动体验。通过集成现代 C++ 工具链,clx 能生成体积极小的二进制文件,同时支持 Lua 5.5 标准特性。无论是开发桌面应用还是高性能脚本,它都能提供强大的优化能力和便捷的部署方案。
我们的目标不是在所有工作负载中成为最快的 Lua 实现,而是提供可预测的运行时性能、极速启动时间以及通过现代原生编译器实现的强大优化机会。
HN 评论区
32- Clx 通过 AOT 编译生成原生可执行文件,规避了 iOS 平台对 LuaJIT 的 JIT 限制,为跨平台游戏开发提供了新路径。
- 项目采用 C++20 作为代码生成后端以利用现代编译器的优化能力,但开发者表示核心逻辑并不依赖 C++20 独有特性,降级至 C++17 可行。
- Clx 当前不支持 loadfile 等动态加载功能,因这与 AOT 模型冲突,但未来计划通过 C++ API 扩展环境隔离能力以支持加载预编译模块。
- 针对多平台 GUI 需求,开发者建议通过第三方模块(如 metal-cpp 或 SFML)集成平台特定绑定,而非将 Objective-C 运行时直接嵌入核心。
- Clx 在表结构上采用分离的数组/哈希布局以优化缓存友好性,并通过原生类型特化减少指针追踪,从而提升性能。