public
Description: Rubinius, the Ruby VM
Homepage: http://rubini.us
Clone URL: git://github.com/evanphx/rubinius.git
seydar (author)
Thu Aug 20 14:20:43 -0700 2009
commit  1f38a766e8d31917898a382c1088e2151fc55375
tree    dca7db90388e4bf5fa3f70859efa6d0893383582
parent  221ab4081a9595072f19cf63bf051643bc8aa58e
name age message
file .autotest Wed Mar 12 14:27:54 -0700 2008 added RUBY env for autotest [zenspider]
file .gdbinit Fri Mar 20 12:13:33 -0700 2009 Added gdb rph to print object given its subtend... [brixen]
file .gitignore Mon Apr 27 16:13:35 -0700 2009 Make load order explicit. See doc/bootstrapping... [brixen]
file AUTHORS Thu May 07 10:02:30 -0700 2009 1.8.7: Dir#each, .foreach (optional block) [marcandre]
file INSTALL Tue Dec 09 22:58:49 -0800 2008 Add license info and tweaks to README. [brixen]
file LICENSE Wed Feb 27 10:23:15 -0800 2008 Correct typos in LICENSE file, spotted by raggi [wilson]
file README Wed May 20 22:53:46 -0700 2009 Update compiler location in README. [brixen]
file Rakefile Wed Jul 08 13:34:43 -0700 2009 Disable install task [Evan Phoenix]
file THANKS Wed May 30 14:44:05 -0700 2007 blah [System User]
directory benchmark/ Mon Aug 03 00:44:19 -0700 2009 Synced benchmark results template for website u... [brixen]
directory bin/ Mon Oct 27 17:32:23 -0700 2008 fixed bin/bm to use bin/rbx as default comparis... [dgtized]
directory doc/ Wed Aug 19 15:32:08 -0700 2009 Add todo [Evan Phoenix]
directory kernel/ Thu Aug 20 14:20:43 -0700 2009 fixed an unecessary variable scope dohickey set... [seydar]
directory lib/ Tue Aug 18 17:18:17 -0700 2009 whitespace fixes [Evan Phoenix]
directory mspec/ Fri Jul 17 16:25:26 -0700 2009 Fix mspec's --gdb option [Evan Phoenix]
directory rakelib/ Tue Aug 18 17:18:18 -0700 2009 Float prims, Inline interface cleanup * Inlini... [Evan Phoenix]
directory runtime/ Sun Feb 22 23:49:34 -0800 2009 Move the patient to the operating room. [brixen]
directory spec/ Mon Aug 17 14:26:15 -0700 2009 Added bytecode for rescue. [brixen]
directory stdlib/ Sun Apr 26 22:24:01 -0700 2009 Move open3.rb to lib directory. [brixen]
directory test/ Sat May 30 14:30:06 -0700 2009 Upgrade to RubyGems 1.3.4 [Evan Phoenix]
directory tools/ Mon May 11 12:14:10 -0700 2009 Start of new LLVM JIT [Evan Phoenix]
directory vm/ Tue Aug 18 17:18:18 -0700 2009 Float prims, Inline interface cleanup * Inlini... [Evan Phoenix]
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. License

Rubinius uses the BSD license. See LICENSE for details.

3. Running Rubinius

See doc/getting_started.txt.

4. 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. See doc/howto/write_a_ticket.txt.

As Rubinius becomes more and more compatible with Ruby 1.8, the development
effort is shifting toward performance, rather than completeness.

5. 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.

6. Tickets

See doc/howto/write_a_ticket.txt

7. Contributing

The Rubinius team welcomes contributions, bug reports, test cases, and
monetary support. One possible way to help is implement Ruby library classes.
See doc/contributing.txt to get started.

8. 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 ./kernel/compiler directory.