3个版本

0.0.2 2024年8月26日
0.0.1 2024年8月1日
0.0.0 2024年5月23日

#1#midenc

Download history 136/week @ 2024-05-20 3/week @ 2024-06-03 1/week @ 2024-06-10 124/week @ 2024-07-29 3/week @ 2024-08-12

每月 127 次下载

MIT 协议

32KB
700

Miden 编译器

[!IMPORTANT] 此项目处于开发中,因此如果您遇到问题跟踪器中没有涵盖的bug或其他问题,我们可能已经知道,但请无论如何报告它们,以便我们可以确保它们也公开跟踪。

此存储库包含Miden编译器,它可以作为现有语言的目标Miden汇编的编译后端,或者作为将另一个编译器生成的WebAssembly(Wasm)编译到Miden汇编的方法。

此仓库分为以下高级组件

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

依赖关系

~0.4–0.9MB
~20K SLoC