1 个不稳定版本
0.1.0 | 2019年7月12日 |
---|
#72 in #erlang
249 个星标 & 14 个关注者
21KB
594 代码行(不含注释)
Eir Project
Erlang 编译器和 IR,用 Rust 实现
详细信息
当前功能
- 基于 Thorin 的统一 IR 表示名为 Eir
- Erlang 前端
- 核心前端
- 模式匹配编译过程
- 基本优化和清理过程
- 用于测试的简单解释器
项目分为几个 crate
libeir_ir
- 包含核心 Eir IR 数据结构、验证、打印libeir_syntax_erl
- Erlang 前端,降低到 Eir。libeir_syntax_core
- Core Erlang 前端,降低到 Eir。libeir_passes
- 在 Eir 上操作的编译过程。libeir_lowerutils
- 将 Eir 降低到 SSA 形式的实用工具。libeir_interpreter
- Eir 的简单解释器。用于运行 OTP 测试套件。libeir_intern
- 符号内部化。由大多数其他 crate 使用。libeir_diagnostics
- 源范围处理和诊断打印。libeir_util
- 其他 crate 使用的工具大杂烩。pattern-compiler
- 一个通用的模式匹配树编译器。tools
- 用于处理 IR 的 CLI 工具。
依赖项
~1.7–9MB
~79K SLoC