2 个版本
新发布 0.0.1 | 2024 年 8 月 26 日 |
---|---|
0.0.0 | 2024 年 5 月 23 日 |
#3 在 #midenc 中
2.5MB
47K SLoC
Miden 编译器
[!IMPORTANT] 该项目正在进行中,因此如果您遇到问题跟踪器中没有涵盖的故障或其他问题,我们很可能知道这些情况,但请无论如何报告它们,以确保这些问题也可以公开跟踪。
此存储库包含 Miden 编译器,它可以作为现有语言的后端编译器,这些语言希望使用基于标准 SSA 的 IR 来针对 Miden 汇编;或者作为将另一个编译器生成的 WebAssembly (Wasm) 编译为 Miden 汇编的手段。
此存储库分为以下高级组件
- Miden HIR(高级中间表示)及其支持的包;提供构建和编译程序的 IR 所需的一切,该程序要生成 Miden 汇编。
- Wasm 前端;一个库,可用于将编译为
.wasm
的程序转换为 HIR - midenc 可执行文件,它提供了一个命令行工具,可以方便地将 Wasm 或 HIR 模块/程序编译为 Miden 汇编并进行测试。
[!TIP] 我们已发布初始 文档,格式为 mdBook,便于阅读,也位于
docs
目录中。此文档涵盖了如何开始使用编译器,提供了一些当前支持的使用案例的指南,并包含附录,详细介绍工具链的各个设计方面。
构建
您需要安装 Rust(撰写本文时,我们在 Rust 1.73 上进行开发)。
此外,您还需要安装 cargo-make
$ cargo install cargo-make
从那里,您可以使用以下命令构建用于编译器的所有工具,包括编译器本身:
$ cargo make
仅构建编译器
$ cargo make midenc
测试
运行编译器测试套件
$ cargo make test
这将运行工作空间中的所有单元测试以及我们的所有 lit
测试。
打包
待定
依赖项
~18–47MB
~722K SLoC