An alternative BEAM implementation, designed for WebAssembly

View the Project on GitHub lumen/lumen

2 February 2021

Update up to 2021-02-02


Updates have been a little sparse here as most of the Lumen team is occupied elsewhere. This is a brief update on some of the changes since last time. Everyone has been a bit busy after the holidays and in the start of the year. While you wait for things to pick up and move again we recommend taking a listen to the podcast Elixir Wizards that recently featured Brian Cardarella where they touch on some of the Lumen stuff towards the end.

Implement binary comprehensions in libeir_syntax_erl

The EIR Erlang frontend has supported list comprehensions for some time, but binary comprehensions have remained unimplemented due to rare usage.

Implementing this turned out to be more challenging than anticipated, due to patterns in binary comprehensions working in a fundamentally different way than any other patterns in the language. Binary comprehensions need to allow for “structural matches” on binaries, a pattern that matches on the length, but not on guards or constants.

Fix source span errors in eir

A bug around source span handling in EIR affected large parts of the standard library. (https://github.com/lumen/lumen/issues/597)

This is fixed by falling back to a slightly less sophisticated handling of source spans when macros are used. This isn’t expected to affect error messages negatively in any significant way.


Repo: lumen/lumen

Repo: eirproject/eir