A Ruby to binary experiment
Now over, results in news.
Ruby code to binary.
In 100% pure Ruby.
The goal here is to prove that dynamic languages do not have to be slow.
Only interpretation is slow, but when Ruby is compiled to binary, it can be really fast.
How fast (X times), will eventually depend on the community. The RubyX approach works, but to create an MRI compatible Ruby will take many more man-years than I have.
RubyX is here to empower you, to make your Ruby shine as much as you like.
Since RubyX is written in Ruby, anyone can easily join, and the project is very open to newcomers. In time the idea is to implement a democratic version of open source, as an alternative the current "benevolent dictator" model.
Contrary to what many newcomers think, ruby-x is also technically easy to join. In the end it is just Ruby, and only a very small percent of code is low level. We have a list of issues in GitHub for beginners.
The RubyX compiler is working (ie creates binaries), and the architecture has been refined over several years.
A substantial part of the Ruby language has been implemented:
- Object oriented calling semantics.
- Basic block creation and passing.
- Dynamic method resolution.
- Control Structures, variables and assignment, integer operators.
- Object based memory.
- A minimal Runtime of classes, types, methods and basic types.
- Risc machine abstraction (with SSA and register allocation)
- A minimal ARM and ELF implementation to create working binaries.
Obviouly cancelled now (see news).
But there is still a lot of work, here are some of the next few topics
- Inlining and static memory analysis
- Start stdlib with String and files
- Dynamic Memory management
The short introduction is under the architecture menu.
To get to know the system, there is also an interpreter and a basic visual debugger.
Last but not least, I try to get recent developments down on paper when they are still fresh. Though not much has happened lately, as we bought this