evanphx / rubinius

Rubinius, the Ruby VM

This URL has Read+Write access

brixen (author)
Wed Sep 03 12:56:36 -0700 2008
commit  b78e807dbc432e81503603c25cb0180d82f57f1d
tree    41c20e074f6871b416f3aa88956444e6f960be2f
parent  17d49ee28335b65b8cbe5aa9bde5b22040f2b057
name age message
file .autotest Wed Mar 12 14:27:54 -0700 2008 added RUBY env for autotest [Ryan Davis]
file .gdbinit Loading commit data...
file .gitignore
file AUTHORS
file INSTALL
file LICENSE Wed Feb 27 10:23:15 -0800 2008 Correct typos in LICENSE file, spotted by raggi [wilson]
file Makefile Tue Nov 13 17:32:37 -0800 2007 Don't complain if the config.mk is missing [evanphx]
file README
file README-DEVELOPERS
file Rakefile
file THANKS Wed May 30 14:44:05 -0700 2007 blah [System User]
directory benchmark/
directory bin/
directory doc/
directory kernel/
directory lib/
directory mspec/
directory rakelib/
directory runtime/ Fri Nov 06 10:42:28 -0800 2009 Totally hack in building C exts with the bootst... [brixen]
directory spec/
directory stdlib/
directory test/
directory tools/
directory vm/
README
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.