Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Ruby C++ C Shell Perl OCaml Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Failed to load latest commit information.|
1. What is Rubinius Rubinius is an execution environment for the Ruby programming language. It is comprised of three major pieces: a compiler, a 'kernel' (otherwise known as the Ruby Core Library), and a virtual machine. The project's goal is to create a top-of-the-line Ruby implementation. 2. Running Rubinius Refer to the INSTALL file for instructions on getting and building Rubinius. 3. Status Rubinius is under heavy development and currently supports the core Ruby classes and kernel methods. The majority of the existing Ruby libraries should run without modification. If your MRI 1.8.6-compatible code does not run under Rubinius, please open a bug ticket. As Rubinius becomes more and more compatible with Ruby 1.8, the development effort is shifting toward performance, rather than completeness. 4. Goals * Thread safety. Rubinius intends to be thread-safe so you could embed more than one interpreter in a single application. It does not currently meet this goal due to some components borrowed from the mainline Ruby interpreter. * Clean, readable code that is easy for users to understand and extend. * Reliable, rock-solid code. Valgrind is used to help verify correctness. * Bring modern techniques to the Ruby runtime. Pluggable garbage collectors and code optimizers are possible examples. 5. Volunteering to Help The Rubinius team welcomes contributions, bug reports, test cases, and monetary support. One possible way to help is implement Ruby library classes. Visit http://rubinius.lighthouseapp.com for documentation on how to begin hacking Rubinius. 6. Architecture While most of the Rubinius features are implemented in Ruby, the VM itself is written in C++. This is likely to continue to be the case in the coming months, partly to ease the integration of LLVM into the Rubinius system. The compiler, assembler, and bytecode generators are all written in Ruby, and can be found under the ./lib/compiler directory.