public
Description: Rubinius, the Ruby VM
Homepage: http://rubini.us
Clone URL: git://github.com/evanphx/rubinius.git
Search Repo:
name age message
folder .autotest Wed Mar 12 14:27:54 -0700 2008 added RUBY env for autotest [Ryan Davis]
folder .gdbinit Thu Sep 04 10:44:36 -0700 2008 Added gdb rps for simple show. Fixups for TypeI... [brixen]
folder .gitignore Wed Aug 27 17:40:33 -0700 2008 Move several ruby-only constants out of environ... [drbrain]
folder AUTHORS Wed Jul 30 13:28:58 -0700 2008 Fix a type in AUTHORS [evanphx]
folder INSTALL Thu Oct 18 15:32:23 -0700 2007 Add install task, remove tasks task, make build... [drbrain]
folder LICENSE
folder Makefile Tue Nov 13 17:32:37 -0800 2007 Don't complain if the config.mk is missing [evanphx]
folder README Fri Aug 29 16:42:39 -0700 2008 Merge stuff between cpp's README and master's, ... [drbrain]
folder README-DEVELOPERS Thu Sep 04 11:15:28 -0700 2008 Updated README info about gdb functions. [brixen]
folder Rakefile Thu Aug 28 13:26:11 -0700 2008 run_ruby needs vm/vm [drbrain]
folder THANKS Wed May 30 14:44:05 -0700 2007 blah [System User]
folder benchmark/ Tue Mar 11 02:29:58 -0700 2008 Prevent bin/bm from crashing on long test names... [tmornini]
folder bin/ Tue Mar 11 02:29:58 -0700 2008 Prevent bin/bm from crashing on long test names... [tmornini]
folder doc/ Thu Aug 28 16:59:30 -0700 2008 Add a bit more about method resolution [evanphx]
folder kernel/ Fri Sep 05 16:27:16 -0700 2008 HACKs cleanup - mostly paths to my source in p4 [Ryan Davis]
folder lib/ Fri Sep 05 18:28:01 -0700 2008 OH HELL YEAH! [Ryan Davis]
folder mspec/ Thu Aug 21 19:41:42 -0700 2008 Cleaned warning found running block_args_spec.rb [Ryan Davis]
folder rakelib/ Tue Sep 02 13:47:20 -0700 2008 Move spec:ci closer to working [drbrain]
folder runtime/ Sun Aug 24 23:50:57 -0700 2008 Reorganized kernel/** into bootstrap, common, d... [brixen]
folder spec/ Fri Sep 05 16:27:16 -0700 2008 HACKs cleanup - mostly paths to my source in p4 [Ryan Davis]
folder stdlib/ Tue Mar 11 14:58:02 -0700 2008 Nuke matrix.rb from stdlib [oleg dashevskii]
folder test/ Sat Mar 08 20:42:34 -0800 2008 Import RubyGems r1641 [drbrain]
folder tools/ Mon Mar 10 03:36:35 -0700 2008 Add example dtrace script for examining garbage... [crafterm]
folder vm/ Fri Sep 05 15:08:42 -0700 2008 size_t -> std::size_t [rue]
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.