#erlang #ir #compiler #pattern #unified #spans #forms

nightly eirproject/libeir_syntax_erl

Erlang生态系统常见IR

1个不稳定版本

0.1.0 2019年7月12日

#46#unified

249 星 & 14 关注者

MIT/Apache

560KB
14K SLoC

Eir项目

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工具。

依赖项

~3–11MB
~123K SLoC