A Ruby to binary experiment
Now over, results in news.
What
RubyX
compiles
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.
Status
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.
Upcoming work
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
Docs
The short introduction is under the architecture menu.
The presentation for GrillRb is more detailed than the previous unconf Hamburg one. But a 20 minute video was made in Hamburg and can be found on youtube.
To get to know the system, there is also an interpreter and a basic visual debugger.
The about section has some info of when and how this started. If you feel like contributing read this or write a mail to the group.
News
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