2 个版本

新版本 0.0.1 2024年8月26日
0.0.0 2024年5月23日

#4#midenc

Download history 141/week @ 2024-05-20 5/week @ 2024-07-01

78 每月下载量

MIT 许可协议

1.5MB
29K 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 测试。

打包

TBD

依赖项

~16–45MB
~694K SLoC