Erjang is a virtual machine for Erlang, which runs on Java(tm).
If you just want to try it out, do this:
curl -O https://dl.dropboxusercontent.com/u/1360473/erjang-R16B01.jar && java -jar erjang-R16B01.jar Eshell V5.7.5 (abort with ^G) 1>
That's a minimal install that includes just
sasl. Should be able to let you compile and run basic erlang programs.
It loads Erlang's binary
.beam file format, converts it into Java's
.class file format, and loads it into the JVM. It will eventually have it's own implementation of all Erlang's BIFs (built-in-functions) written in Java. Erjang also has a BEAM interpreter; if you launch erjang with a
+i argument it will run interpreted (slower, but using much less memory).
Yes! It does actually work.
c(foo)command in the prompt)
mnesiawith distribution across Erjang/BEAM nodes.
webmachinecan run (without crypto for now).
riakcan boot; and works for basic cases ... but it's not ready for prime time yet.
krab$ ./jerl Eshell V5.8 (abort with ^G) 1> erlang:display("hello world!"). "hello world!" true 2> q(). krab$
There are still things that doesn't work: a few BEAM instruction are missing some runtime support. There are also BIFs missing, or only partially implemented; we're quite careful to throw @erjang.NotImplemented@ in BIFs (or branches thereof) which are not complete. Many OTP modules need NIFs or linked-in drivers that are entirely missing or only partly implemented.
Good question. Well, I just wanted to learn Erlang, and so this felt like a good way to get through all the details. Seems to be working -- I am learning erlang!
Here is what to expect: