#lua #解释器 #编译器 #调试

bin+lib luallaby

**进行中** 纯 Rust Lua 解释器/编译器

4 个版本

0.1.0 2024年2月15日
0.1.0-alpha4 2023年11月12日
0.1.0-alpha.32022年2月1日
0.1.0-alpha.12021年9月20日
0.0.1 2021年8月16日

#218 in 编程语言

每月21 次下载

MIT 许可证

1MB
29K SLoC

Rust 15K SLoC // 0.0% comments Lua 13K SLoC // 0.1% comments C 2K SLoC // 0.1% comments

luallaby

Crates.io docs.rs Crates.io

该项目正在开发中。如果您需要合理的 Lua 解释器,请勿使用此版本(目前)。

这是一个完全用 Rust 编写的 Lua 编译器和解释器。该项目旨在提供一个完全兼容的 Lua 实现,包括 Lua 和 Rust 之间的互操作性。

待完成和实现事项

按特定顺序列出要实现的功能列表

  • 完整的语言语法支持
  • 适当的错误处理带有跟踪+上下文(不在每个问题上惊慌)
  • Rust-Lua 互操作性
  • 标准库
    • 基本库
    • 协程库
    • 包库
    • 字符串操作
    • 基本的 UTF-8 支持
    • 表格操作
    • 数学函数
    • 输入和输出
    • 操作系统功能
    • 调试功能
  • 垃圾回收器
  • 通过 Lua 测试套件
  • 与其他编译器的基准测试
    • 合理的性能
  • REPL

测试

该包有自己的测试套件,主要包含基本的单元测试或健全性检查,以验证语言和标准库的所有部分至少处于半工作状态。这些健全性检查可以用以下方式运行

cargo test

该仓库还包含 Lua 测试套件的副本。可以通过将它们作为常规 Lua 文件运行来运行这些测试 cargo run -- <file>.lua,如果输出以 "OK" 结束且解释器没有出错,则认为测试通过。

cargo test 套件中还包括 Lua 测试套件,但已标记为忽略。要包括 Lua 测试套件和健全性检查,请运行

cargo test -- --include-ignored

用法

待办事项

许可证

luallaby 在 MIT 许可证的条款下分发。

有关更多信息,请参阅 LICENSE 文件。

依赖项

~6–14MB
~170K SLoC