Updating tags for StringIO.
[rbx.git] / README
blob5752cf3c1f5f99c9cfdf95d4a17d4c2db03e9711
1 1. What is Rubinius
3 Rubinius is an execution environment for the Ruby programming language.
4 It is comprised of three major pieces: a compiler, a 'kernel' (otherwise
5 known as the Ruby Core Library), and a virtual machine.
6 The project's goal is to create a top-of-the-line Ruby implementation.
8 2. Running Rubinius
10 Refer to the INSTALL file for instructions on getting and building Rubinius.
12 To disable backtrace colorization in Rubinius set the RBX environment variable
13 to rbx.colorize_backtraces=no.
15 3. Status
17 Rubinius is under heavy development, and currently supports the core Ruby
18 classes and kernel methods. The majority of the existing Ruby libraries
19 should run without modification.  If your MRI 1.8.6-compatible code does not
20 run under Rubinius, please open a bug ticket.
21 As Rubinius becomes more and more compatible with Ruby 1.8, the development
22 effort is shifting toward performance, rather than completeness.
24 4. Goals
26 * Clean, readable code that is easy for users to understand and extend.
28 * Reliable, rock-solid infrastructure. Rubinius is Valgrind clean.
30 * Bring modern techniques to the Ruby runtime. Currently we are up to
31   roughly 1986 in terms of modernity, but the date creeps forward daily.
33 * Support for the best ideas in concurrency, whatever those happen to be.
35 5. Volunteering to Help
37 The Rubinius team welcomes contributions, bug reports, test cases, and monetary
38 support. One possible way to help is implement Ruby library classes. Visit
39 http://rubinius.lighthouseapp.com for documentation on how to begin hacking
40 Rubinius.
42 6. Architecture
44 While most of the Rubinius features are implemented in Ruby, the VM itself
45 is written in C++. This is likely to continue to be the case in the coming
46 months, partly to ease the integration of LLVM into the Rubinius system.
48 The compiler, assembler, and bytecode generators are all written in Ruby, and
49 can be found under the ./lib/compiler directory.