4 ms·
I'll just put this here in case anyone's interested. https://github.com/mbrock/HBEAM https://github.com/mbrock/HBEAM It's a Haskell executor of .beam programs
by mbrock 11y ago
I'll just put this here in case anyone's interested.
https://github.com/mbrock/HBEAM https://github.com/mbrock/HBEAM
It's a Haskell executor of .beam programs, in very early prototype stage, and I abandoned working on it 5 years ago (apparently).
Of course it's not meant to be competitive in any way, it's basically just for fun, and because I wanted to learn more about how Erlang works.
The function `interpret1` in the middle of this file has the main opcode switch.
https://github.com/mbrock/HBEAM/blob/master/src/Language/Erlang/BEAM/Emulator.hs https://github.com/mbrock/HBEAM/blob/master/src/Language/Erl...
I think it's about the smallest subset needed to run a factorial program, but also to implement the very basics of mailboxes with send/receive/timeout.
It uses GHC's shared transactional memory for the mailboxes:
https://github.com/mbrock/HBEAM/blob/master/src/Language/Erlang/BEAM/Mailbox.hs https://github.com/mbrock/HBEAM/blob/master/src/Language/Erl...
Someone, fork it and finish it! :-)