[erlang-questions] Erlang VM in Rust

Dmytro Lytovchenko <>
Wed Sep 13 13:47:54 CEST 2017


I am a strong proponent for rewriting parts of BEAM VM in C++, and I've
even made a list of points to consider and benefits it would bring:
http://beam-wisdoms.clau.se/en/latest/otp-cpp-ramblings.html I was
personally ready to sink a lot of my time into this both paid (we have our
ways to get paid for helping OTP team) and unpaid. But i never started
because OTP team wasn't happy with this idea.

Main problem with all these rewritings, is that either you fork and take
over the fork completely, i.e. maintain version and all bugfixes and all
new developments, or you listen what OTP team has got to say. And so far
they say no to any major rewrite.

2017-09-13 13:11 GMT+02:00 Jesper Louis Andersen <
>:

> On Tue, Sep 12, 2017 at 10:10 PM austin aigbe <> wrote:
>
>> Hello,
>>
>> Any consideration for implementing the Erlang VM in Rust?
>>
>>
> I think the problem is roughly the same as with any other language: A lot
> of good effort has been sunk into the current VM in C and this makes a
> switch harder. Rust has ABI compatibility with C in some ways, which makes
> interoperability simpler, so one could imagine taking some of the more
> security-oriented parts of the VM and rewriting those in Rust or some other
> language of the more restrictive kind.
>
> If you want to rewrite all of it, a good approach is to start by making
> changes to the current VM which makes it smaller:
>
> * Move more work out into NIFs. Reimplement those in Rust
> * Coalesce more work on Dirty Schedulers
> * Implement Native Processes, so you can start running
> Rust-native-processes
> * Write an AOT or JIT compiler pass. Move ETS into pure Erlang. Move a lot
> of the BIF optimized functions into pure Erlang.
>
> A smaller core is way easier to replace.
>
> Personally, I'd just throw some more time after concurrent OCaml, and then
> write a translator from Erlang to OCaml :P
>
>
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20170913/0647a12f/attachment.html>


More information about the erlang-questions mailing list