3 个版本
0.0.3-alpha | 2022年11月10日 |
---|---|
0.0.2-alpha | 2022年11月10日 |
0.0.1-alpha | 2022年11月7日 |
#646 in 编程语言
210KB
6K SLoC
Sonatina
Sonatina 是一个专门针对智能合约的编译器后端。
Sonatina 目前处于非常早期的发展阶段,因此请不要在生产环境中使用它!
项目结构
sonatina
由几个 crate 组成。
codegen
:sonatina
的主要 crate,提供 IR 模块和函数构建器、优化流程、指令选择 DAG 和二进制代码生成。filecheck
: 提供filecheck
测试运行器和测试用例。parser
:sonatina
IR 解析器,主要用于filecheck
测试。object
: 为链接器提供抽象的目标文件格式。triple
: 为智能合约提供目标三重。
待办事项
- IR 验证器
- ISel DAG
- 为 EVM 的全局栈分配
- 内联函数
- 目标文件
- 链接器
测试
运行 test_all.sh
。
lib.rs
:
此 crate 提供了 sonatina-IR 文本格式的解析器。该文本格式主要用于调试和测试。
依赖项
~1.6–2.2MB
~43K SLoC