ShalokShalom

ShalokShalom

So, there is another Erlang VM on the way :hugs:

Showing Posts 1 to 10

wanton7

wanton7

Wow another Erlang VM made with Rust! Other one is here GitHub - archseer/enigma: An Erlang VM implementation in Rust · GitHub

isaac-rstor

isaac-rstor

Feels like this is a problem:.

A process is simply a long running future, scheduled on top of tokio-threadpool work-stealing queue

A process should be exactly what it is in the normal BEAM, otherwise you’re gonna run into problems.

wanton7

wanton7

Yeah I see more future for ErlangRT because Enigma VM does shortcuts like that.

benwilson512

benwilson512

Author of Craft GraphQL APIs in Elixir with Absinthe

This is describing how this VM implements a process, it isn’t saying that the process will be something different from the perspective of an erlang programmer.

NobbZ

NobbZ

Tokia does IO based scheduling AFAIK, so the machine will probably behave differently under CPU bound load than the original BEAM.

Programmers on the BEAM usually rely on the fact, that regardless the load of the system, they will eventuelly get some time slot to do their thing.

benwilson512

benwilson512

Author of Craft GraphQL APIs in Elixir with Absinthe

So, I’m not disagreeing that the new VM may perform differently than the current one. I’m simply making the sort of ontological point that a Future is not fundamentally a different kind of thing than an erlang process as viewed from the VM. A process in the BEAM is a struct with various properties that runs on a threaded work stealing scheduler. That’s exactly what a Future is too.

NobbZ

NobbZ

Well, but the underlying schedulers work differently. While the BEAM is pre-emptive, Tokios futures are not.

Of course, from a (erlang/elixir/whatever) programmer things won’t change. They just spawn their way through, but programms will behave differently under load.

Of course there might be interest for the changed behaviour, or perhaps its the price some people are willing to pay for other benefits of this re-implementation, but currently I have not yet seen any benefits…

wanton7

wanton7

I think it’s just like @NobbZ said and you’ll lose one of the biggest benefits of BEAM. Preemptive scheduling was the biggest reason I got interested in Elixir to create web apps..

benwilson512

benwilson512

Author of Craft GraphQL APIs in Elixir with Absinthe

Elixir / Erlang is preemptive, but the C code that runs a process’s BEAM byte code is not pre-emptive. Languages built on this byte code are effectively preemptive because the underlying C can choose to yield at frequently occurring points in that byte code. Presumably the Rust code inside the Future could work the same way.

It’s entirely possible that I missed something here and their plan is to have each future churn on bytecode till the bytecode does IO, but there’s nothing about a future that requires that that’s the case any more than the fact that the BEAM is written in C.

michalmuskala

michalmuskala

I actually think that the new BEAM implementations should look into exploring other design trade-offs - other memory management schemes, different kinds of schedulers, different data representation, interpreters vs compilers, etc. We already have BEAM working like BEAM, so I don’t see much value in just replicating that exactly, on the other hand exploring new ideas might bring back some valuable insight into the main implementation.

Where Next? Top

Trending in Talks Top

CodeSync
LT: The Elixir Hiring Paradox - Arjun Gillard | ElixirConf EU 2026 Comments welcome! View the <span class="hashtag-icon-p...
New
ElixirConf
Writing Your Own Req Plugin - Jacob Swanner | ElixirConf US 2025 Comments welcome! View the <span class="hashtag-icon-pla...
New
ElixirConf
How LiveDebugger makes your life easier - Krzysztof Nalepa | ElixirConf US 2025 https://www.youtube.com/watch?v=MzvauYjQgdQ Comments w...
New
ElixirConf
Stranger Domains: Embedding your app across the web - Nathan Hessler | ElixirConf US 2025 https://www.youtube.com/watch?v=ljx3uDsy9Rg ...
New
ElixirConf
Building Websites with Tableau - Mitchell Hanberg | ElixirConf US 2025 https://www.youtube.com/watch?v=B5e7M-Ogyho Comments welcome! V...
New
CodeSync
Reactor Under the Hood: Building a Graph-Based Saga Orchestrator in Elixir, James Harton | Code BEAM Comments welcome! Vi...
New
CodeSync
MoodBot: Raising a Tiny Robot with Elixir, Nerves, and AI - Carsten Rösnick-Neugebauer | Code BEAM Comments welcome! View...
New

Other Trending Topics Top

mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge &amp; Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
wintermeyer
There are three potential reasons for members of this forum to have a look at https://vutuv.de You are tired or annoyed of LinkedIn. Yo...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews