public
Description: Rubinius, the Ruby VM
Homepage: http://rubini.us
Clone URL: git://github.com/evanphx/rubinius.git
name age message
file .autotest Tue Mar 18 16:25:21 -0700 2008 simplified autotest fixture/shared mapping [zenspider]
file .gdbinit Thu Sep 11 17:37:18 -0700 2008 A slew of GC fixes [evanphx]
file .gitignore Sat Nov 08 08:07:43 -0800 2008 Ignore only toplevel tags dir for ctags. [brixen]
file AUTHORS Wed Jul 30 13:28:58 -0700 2008 Fix a type in AUTHORS [evanphx]
file INSTALL Mon Oct 20 08:07:03 -0700 2008 Fix doxygen dir in .gitignore. Updated INSTALL ... [rue]
file LICENSE Wed Feb 27 10:23:15 -0800 2008 Correct typos in LICENSE file, spotted by raggi [wilson]
file README Fri Aug 29 16:42:39 -0700 2008 Merge stuff between cpp's README and master's, ... [drbrain]
file README-DEVELOPERS Tue Oct 28 01:14:17 -0700 2008 Fix doc about cpp branch [evanphx]
file Rakefile Tue Oct 28 21:06:56 -0700 2008 Add spec:sydney_parser task, and add it to default [drbrain]
file THANKS Wed May 30 14:44:05 -0700 2007 blah [System User]
directory benchmark/ Fri Nov 07 18:52:47 -0800 2008 Tuple#enlarge does not appear to be used so no ... [dgtized]
directory bin/ Mon Oct 27 17:32:23 -0700 2008 fixed bin/bm to use bin/rbx as default comparis... [dgtized]
directory doc/ Thu Aug 28 16:59:30 -0700 2008 Add a bit more about method resolution [evanphx]
directory kernel/ Mon Nov 17 12:13:14 -0800 2008 Array#{shift,pop} now correctly shrink and dere... [dgtized]
directory lib/ Mon Nov 17 10:10:32 -0800 2008 Fix some splatted block arg cases, expose anoth... [wilson]
directory mspec/ Wed Nov 12 22:59:29 -0800 2008 Updated MSpec source to 3d0dd0b8. [brixen]
directory rakelib/ Wed Nov 12 23:01:38 -0800 2008 Exclude ctags dir from rsync in mspec:sync task. [brixen]
directory runtime/ Sun Aug 24 23:50:57 -0700 2008 Reorganized kernel/** into bootstrap, common, d... [brixen]
directory spec/ Mon Nov 17 13:02:07 -0800 2008 Did most of case/when... but the jumps generate... [zenspider]
directory stdlib/ Fri Oct 31 22:24:11 -0700 2008 Put mathn in lib. [brixen]
directory test/ Mon Nov 10 09:23:16 -0800 2008 Upgrade to RubyGems 1.3.1 r1918 [drbrain]
directory tools/ Mon Jul 14 16:59:39 -0700 2008 use rake instead [zenspider]
directory vm/ Mon Nov 17 10:10:32 -0800 2008 Fix some splatted block arg cases, expose anoth... [wilson]
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.