firefly
firefly copied to clipboard
Provide Elixir frontend
In order to have a way to compile a Mix project via Lumen in the near term, we are going to use a Mix task which compiles the Elixir source via BEAM, converts the compiled code to Erlang source using the Erlang compiler API, and places it in an incremental compilation directory under _build. This will then be fed to Lumen as the input for compilation to native code.
The code for this initial tooling is located at https://github.com/lumen/lumen_elixir, it is currently in a draft state.
In the long term, we will ultimately want the Lumen compiler to be bootstrapped with its own OTP standard library, with a compiler module that invokes the Lumen compiler infrastructure instead. This would then be used to build a version of the compiler that can build from Elixir source directly, without requiring the BEAM at all. Unfortunately there are a lot of technical challenges involved here, so we need to use the above workaround until we have time to dedicate to the bootstrapping process.
Blocked on compiler implementation discussed with Jose