Skip to content

lumen/eir

This branch is 46 commits behind eirproject/eir:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

37e790f · Jul 8, 2020
Dec 19, 2019
Jul 7, 2020
May 27, 2020
May 27, 2020
May 27, 2020
Jul 8, 2020
May 27, 2020
Jul 8, 2020
Aug 29, 2019
Jul 8, 2020
May 27, 2020
Feb 2, 2019
Sep 10, 2019
Dec 18, 2019
May 27, 2020
Jul 8, 2020
Jul 12, 2019
Jan 28, 2019
Apr 21, 2020
May 4, 2019
May 13, 2019
Aug 30, 2019
Sep 10, 2019
Mar 10, 2020
Dec 18, 2019

Repository files navigation

Eir Project

Erlang compiler and IR implemented in Rust

Details

Current features:

  • Unified Thorin based IR representation named Eir
  • Erlang frontend
  • Core frontend
  • Pattern match compilation passes
  • Basic optimization and cleanup passes
  • Naive interpreter used for testing

The project is split into several crates:

  • libeir_ir - Contains the core Eir IR data structures, validation, printing
  • libeir_syntax_erl - Frontend for Erlang, lowers to Eir.
  • libeir_syntax_core - Frontend for Core Erlang, lowers to Eir.
  • libeir_passes - Compiler passes operating on Eir.
  • libeir_lowerutils - Utilities for lowering Eir to SSA form.
  • libeir_interpreter - Naive interpreter for Eir. Used to run OTP test suites.
  • libeir_intern - Symbol interning. Used by most other crates.
  • libeir_diagnostics - Source span handling and diagnostics printing.
  • libeir_util - Kitchen sink of utilities used by other crates.
  • pattern-compiler - A generic pattern matching tree compiler.
  • tools - CLI tools used to work with the IR.

About

Erlang ecosystem common IR

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 90.9%
  • Erlang 9.1%