Fork me on GitHub

The community's ruby implementation

Ruby imiplemented in 100% ruby, for everyone.

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:

Upcoming work

But there is still a lot of work, here are just the next few topics

  • Dynamic Memory management
  • Benchmarks for calling and integer
  • Start stdlib with String and files
By then we may be in the foothills, but nowhere near even basecamp, let alone there.

Docs

The short introduction is under the architecture menu.

The presentation for GrillRb is more detailed than the previous unconf Hamburg one. But a 20min 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.

Parsing parfait and other goodies (2019-08-20)

Class methods and a conference (2019-02-28)

Implicit blocks are working (2018-08-20)