<div dir="ltr">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: <a href="http://beam-wisdoms.clau.se/en/latest/otp-cpp-ramblings.html">http://beam-wisdoms.clau.se/en/latest/otp-cpp-ramblings.html</a> 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.<div><br></div><div>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.</div></div><div class="gmail_extra"><br><div class="gmail_quote">2017-09-13 13:11 GMT+02:00 Jesper Louis Andersen <span dir="ltr"><<a href="mailto:jesper.louis.andersen@gmail.com" target="_blank">jesper.louis.andersen@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><span class=""><div class="gmail_quote"><div dir="ltr">On Tue, Sep 12, 2017 at 10:10 PM austin aigbe <<a href="mailto:eshikafe@gmail.com" target="_blank">eshikafe@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hello,<div><br></div><div>Any consideration for implementing the Erlang VM in Rust?</div><div><br></div></div></blockquote></div><div class="gmail_quote"><br></div></span><div class="gmail_quote">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.</div><div class="gmail_quote"><br></div><div class="gmail_quote">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:</div><div class="gmail_quote"><br></div><div class="gmail_quote">* Move more work out into NIFs. Reimplement those in Rust</div><div class="gmail_quote">* Coalesce more work on Dirty Schedulers</div><div class="gmail_quote">* Implement Native Processes, so you can start running Rust-native-processes</div><div class="gmail_quote">* Write an AOT or JIT compiler pass. Move ETS into pure Erlang. Move a lot of the BIF optimized functions into pure Erlang.</div><div class="gmail_quote"><br></div><div class="gmail_quote">A smaller core is way easier to replace.</div><div class="gmail_quote"><br></div><div class="gmail_quote">Personally, I'd just throw some more time after concurrent OCaml, and then write a translator from Erlang to OCaml :P</div><div class="gmail_quote"><br></div></div>
<br>______________________________<wbr>_________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/<wbr>listinfo/erlang-questions</a><br>
<br></blockquote></div><br></div>