2 个不稳定版本

0.1.0 2024 年 5 月 16 日
0.0.0 2024 年 5 月 16 日

#190编程语言

每月 33 次下载

MIT 许可证

72KB
1.5K SLoC

Miden 编译器

[!IMPORTANT] 此项目正在开发中,因此如果您在问题跟踪器中未涵盖的方面遇到错误或其他问题,我们很可能已经知道,但请无论如何报告它们,以便我们可以确保它们也公开跟踪。

此存储库包含 Miden 编译器,该编译器既可以作为现有语言的目标为 Miden 汇编使用基于标准 SSA 的 IR 的编译后端,也可以作为将其他编译器生成的 WebAssembly (Wasm) 编译为 Miden 汇编的方法。

此存储库分为以下高级组件

  • Miden HIR(高级中间表示)及其支持包;提供构建和编译程序所需的一切,以便生成 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 测试。

打包

待定

依赖关系

~74KB