Ruru: native Ruby extensions written in Rust
github.com
github.com
More than a month later there are obviously some bug reports and pull requests that have been opened. There hasn't been a single answer or acknowledgement from the team behind Helix. Not a single commit either.
I get that this is open source software and that they might suddenly not have any time to put on it, but at least an acknowledgement of the situation somewhere or getting some help from contributors would have been appreciated.
In fact, every crate I can find in this category (Helix, ruru, rurust, mrusty, and ruby-sys) is looking a little abandoned. rurust was updated 25 days ago, and that's the most recent.
http://blog.reverberate.org/2016/06/12/native-extensions-mem...
I wonder if this works the same for Rust.
I can't see how Rust's parallelism model would help either.
Maybe it would prevent some bugs that Ruby currently has? I don't see Ruby as having a problem with bugs though - certainly not that would make it worthwhile to do a translation.
I'm unaware of a Rust parallelism model. Care to explain?
Which is not a parallelism model itself, but is more about how rust's data model lends itself to implementing different kinds of parallelism in a reliable way.
I don't think Ruby as a language has had many issues in the space that Rust tends to solve (safety related to memory). Ruby is garbage collected. I don't know what (if any) performance boost the VM would get by being converted to LLVM IR. It's mostly the semantics of Ruby the language that make it hard to make fast. It seems most of the recent efforts to make Ruby faster have been by making the runtime do less allocations.
Well you can already convert the VM to LLVM IR today by compiling with clang.
Theoretically the LLVM will optimize your application as its running.
P.S.: I don't know Ruby so YMMV
P.P.S.: If it works with Ruby it'll work with Python too.
But really we don't directly compile the IR. We have an interpreter for IR, and we JIT compile the interpreter, sort of constant folded with the IR. It achieves the same thing without getting more technical.
Can you explain how a relatively less mature and less widely adopted "modern" language is going bring more contributors to MRI?
Look at it this way: for these programmers, the choice isn't between Rust and Crystal, it's between Rust and C. And for people who've never written systems code before, Rust is enormously friendlier.
Yes the Choice is pretty much something to replace / use instead of C. Which Swift as well as Crystal can be used in here too.
> Swift as well as Crystal can be used in here too
Can you elaborate? I don't know of any way to compile Swift or Crystal code into a library that exposes a C-compatible ABI, and I can find no documentation as such.That said, it's just a proof of concept. It'll probably be a while before it becomes robust enough for regular users.