Lumen is a project to make a compiler for Erlang/Elixir and other BEAM languages that can be compiled to different environments rather than run on a virtual machine. This should allow some interesting things:
The Lumen project treats the current implementation of the BEAM as a kind of living standard to follow and aims to remain compatible where it makes sense. There are also some compromises made that allow for very strong optimizations. So the Lumen compiler does not attempt to retain the capacity for hot code updates which allows the compiler to eliminate unused parts of the standard libraries and make smaller binaries.
As announced on ElixirConf US 2020 we have the first public releases of the project that we are excited for the tinkering public to try!
Fair warning: Lumen is still an early stages project.
The current Lumen releases are available here. Download the right version for your environment and get cooking. Windows releases are coming but might not be there at this stage.
Not much changed in terms of code pushed to GitHub this week, other than updating our LLVM repo to pick up a large swath of recent changes. Those changes will be released as part of an overall Lumen release in the next week or so, we’re waiting on a couple other things before doing so: nightly Rust picking up the ability to parameterize standard library types with an allocator, and a set of changes by Paul to move a bunch of our C++ code into Rust now that there is enough FFI support to do most common actions in MLIR without needing to write C++ bindings.
This week the compiler saw a significant number of fixes and improvements, and the
build system was consolidated under
cargo make in an effort to make it easier to use,
more consistent, and rely less on platform-specific functionality.
Luke Imhoff of the Lumen team recently joined the Elixir Mix hosts to talk about Lumen. He ended up sharing insights into the process of evolving WASM and making sure it doesn’t end up exclusively suited to Object-Oriented Programming as well as covering a lot of what Lumen is, isn’t and can be. It could have been titled “Sneaking Elixir into the enterprise”!
The latest updates for the last two weeks of work.
A shorter update as we experiment with settling into a schedule of weekly updates on what is happening in the Lumen project.
As Lumen has had its first release we aim to keep everyone following the project posted on what’s new. This is a summary and some detail on what has happened since the Lumen release. We are likely to make a new release within a week or so, it will depend on when some changes land but that’s the idea. Until then we hope you enjoy following along.
Luke Imhoff spoke remotely to the very virtual ElixirConf and updated the community on the progress of the project along with giving an overview of what it is and does. The video from this talk will be added to this post when it becomes available to the general public. If you attended ElixirConf you can get the video from the conference event site.
Luke spoke about Lumen during the 2020 iteration of Lonestar Elixir.
Hans Elias Josephsen and Paul Schoenfelder spent some time on the Elixir Wizards podcast to speak about Lumen.
Paul spoke about Lumen, BEAM and Web Assembly at the 2019 Code Mesh conference in London.
The entire Lumen team were on the Elixir Talk podcast, listen below.
During ElixirConf 2019 the Lumen project was announced by Brian Cardarella, Luke Imhoff and Paul Schoenfelder.