Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Erlang Replacement Therapy. Another attempt to make Erlang runtime (BEAM emulator) in Rust. Good news: I know what to do. Bad news: I have no clue how to Rust

License

Notifications You must be signed in to change notification settings

kvakvs/ErlangRT

Open more actions menu

Repository files navigation

https://app.fossa.io/api/projects/git%2Bgithub.com%2Fkvakvs%2FErlangRT.svg?type=shield

ErlangRT - Runtime

Erlang Replacement Therapy. This is an attempt to make Erlang runtime (BEAM emulator) in Rust. This is not the first attempt so I kinda know what I'm doing.

Progress to the Proof of Concept

  • Term library 80% (remaining 80% are in progress)
  • External Term Format (decoder 70%, encoder 0%)
  • BEAM Loader - mostly done
  • VM and processes 40%
  • VM loop and opcodes 45% (74 of 168)
  • Some basic BIFs <15%
  • Binaries, sub-binaries, binary heap, binary opcodes: <20%
Trying to run ``init:boot/1``

Tests in priv/test2.erl work. Running make test tries to run init:boot/1 and produces the output above.

Compiling

  • The source assumes that you have Erlang OTP 22+ source in a Git submodule in otp/, and the stdlib and preload BEAM files are compiled and ready. Makefile takes care of it.

  • Install latest Rust and Cargo via Rustup

  • Run make and with the magic of Bash autocomplete see which targets it supports. You might like:

    • make run - runs the executable with test args, whatever set by the developer, do not expect it to show any magical tricks;
    • make doc - builds doc pages in target/doc/erlang_rt/
    • make test - runs the tests
    • make build and make build-rel - builds but does not run the debug and the release target respectively

Currently the emulator expects to have preloaded BEAM modules from OTP 22+ located in otp/ Git submodule (Makefile takes care of it).

Editing and Code Navigation

I am using and strongly recommend IntelliJ IDEA CE (free version) with IntelliJ-Rust plugin (available in repositories tab inside IntelliJ).

Reference Material

Contributing

See CONTRIBUTING.rst

License Inspection

https://app.fossa.io/api/projects/git%2Bgithub.com%2Fkvakvs%2FErlangRT.svg?type=large

About

Erlang Replacement Therapy. Another attempt to make Erlang runtime (BEAM emulator) in Rust. Good news: I know what to do. Bad news: I have no clue how to Rust

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  
Morty Proxy This is a proxified and sanitized view of the page, visit original site.