Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

261 lines (236 sloc) 9.062 kb
---
layout: page
twitter_feed: true
---
<body class='about index' id='about_index'>
{% include home_header.html %}
<div class='alt' id='intro'>
<p>
An environment for the Ruby programming language providing
performance, accessibility, and improved programmer productivity
</p>
</div>
<div class='container'>
<div class='stripe' id='steps'>
<div class='span-8' id='download'>
<h3>Download</h3>
<p>
The current version Rubinius is
<span><a href="/releases/1.2.4">1.2.4</a></span>
</p>
<p id='tarball'><a href="http://j.mp/oAIbiK">1.2.4 archive</a></p>
<p>
<em>Or</em>
</p>
<p>Use binary installers for</p>
<p>
<span id='installer'><a href="http://j.mp/pSA5XO">OS X 10.6</a></span>
</p>
<p>
<em>Or</em>
</p>
<p>You can use HEAD Rubinius directly.</p>
<p id='tarball'><a href="http://github.com/rubinius/rubinius">Clone Git</a></p>
</div>
<div class='span-8' id='build'>
<h3>Build</h3>
<p>
To run from the source directory
<ol class='code'>
<li>./configure</li>
<li>rake</li>
</ol>
</p>
<p>
<em>Or</em>
<br>
To install
<ol class='code'>
<li>./configure --prefix=/a/b/c</li>
<li>rake install</li>
</ol>
</p>
</div>
<div class='span-8 last' id='report_bugs'>
<h3>Feedback</h3>
<p id='issue_tracker'><a href="http://github.com/rubinius/rubinius/issues">Issue Tracker</a></p>
<p>
We apologize in advance for any bugs. Please take the time to open an issue about your problem.
Include your CPU / operating system, the command you tried to run, and all the output to your terminal.
</p>
</div>
</div>
</div>
<div class='stripe' id='enjoy'>
<div class='container'>
<div class='span-12'>
<h3 class='alt'>Have Fun &amp; Enjoy!</h3>
<p>
<strong>We're very excited you're interested in Rubinius.</strong>
What started as a toy grew into a labour of love. We
<em>love</em>
building Rubinius and hope you'll love using it.
We need your feedback to make Rubinius the best it can be.
You can reach us in the IRC channel at #rubinius on freenode.net,
<a href="http://twitter.com/rubinius">via Twitter</a>
or on
<a href="http://groups.google.com/group/rubinius-dev">the mailing list.</a>
</p>
</div>
<div class='span-11 prepend-1 last'>
<div id='twitter'>
<h3><a href="http://twitter.com/rubinius">Follow Us on Twitter</a></h3>
</div>
</div>
</div>
</div>
<div class='container'>
<div class='stripe' id='use_docs'>
<h3>How Can I Contribute To Rubinius?</h3>
<p>
It's easy! Just download the source for rubinius, build it, and type "rbx docs". This
will pop up a web browser for the embedded documentation. This will walk you through
writing a patch and ticket.
</p>
<p>
If there is any confusion, just stop by IRC (
<a href="irc://irc.freenode.net/#rubinius">#rubinius on irc.freenode.net</a>
) or post to
<a href="http://groups.google.com/group/rubinius-dev">the mailing list</a>
and we'll be happy to get you going!
</p>
</div>
</div>
<div class='container stripe' id='lay_speak'>
<h3>Highlevel, what is Rubinius?</h3>
<div class='span-14 diagram'>
<div class='span-7 attic'>
<p>Extensive Built in Functionality</p>
</div>
<div class='span-7 last attic'>
<p>Simple Platform Integration</p>
</div>
<div class='span-14 last mezzanine'>
<p>Object Oriented</p>
</div>
<div class='span-7 basement'>
<p>Automatic Memory Management</p>
</div>
<div class='span-7 last basement'>
<p>Efficient Code Execution</p>
</div>
<p class='alt caption'>Rubinius High Level Overview</p>
</div>
<div class='span-9 prepend-1 last explanation'>
<p>Rubinius is software that translates the code for the Ruby programming language such as</p>
<p class='code' id='human_readable'>puts "hello world"</p>
<p>and turns it into efficient machine code like this</p>
<p class='code' id='machine_readable'>push %rbp; mov %rsp, %rbp; push %rbx; subq $0x98, %rsp; cmp $0x0, 0x10(%rcx); call 0xffffffffff472010; jmp 0x9c; &hellip;</p>
<p>then executes it.</p>
<p class='more'>
A large aspect of popular languages such as C and Java is that the majority
of the functionality available to the programmer is written in the language itself.
Rubinius has the goal of adding Ruby to that list.
Rubyists could more easily add features to the language, fix bugs, and learn
how the language works.
Wherever possible Rubinius is written in Ruby. Where not possible (yet), it's C++.
</p>
</div>
</div>
<div class='container stripe' id='geek_speak'>
<h3>Technically, what is Rubinius?</h3>
<div class='span-24'>
<p>
Rubinius is an implementation of the
<a href="http://ruby-lang.org">Ruby programming language.</a>
</p>
<p>
The Rubinius bytecode virtual machine is written in C++, incorporating
LLVM to compile bytecode to machine code at runtime.
The bytecode compiler and vast majority of the core classes are
written in pure Ruby.
</p>
<p>
To interact with the rest of the system, the VM provides primitives which
can be attached to methods and invoked. Additionally, FFI provides a
direct call path to most C functions.
</p>
<p>
Rubinius uses a precise, compacting, generational garbage collector.
It includes a compatible C-API for C extensions written for the standard
Ruby interpreter (often referred to as MRI—Matz's Ruby Implementation).
</p>
</div>
<div class='span-24 diagram'>
<div class='span-20'>
<div class='span-10 attic'>
<p>Reflection APIs</p>
</div>
<div class='span-10 last attic'>
<p>Foreign Function Interface</p>
</div>
<div class='span-15'>
<div class='span-7 mezzanine'>
<p>Kernel</p>
</div>
<div class='span-8 last mezzanine'>
<p>Bytecode Compiler</p>
</div>
<h4 class='alt'>The Initialism Layer</h4>
<div class='span-5 basement'>
<p>GC</p>
</div>
<div class='span-5 basement'>
<p>JIT</p>
</div>
<div class='span-5 last basement'>
<p>VM</p>
</div>
</div>
<div class='span-5 last turret' id='primitives'>
<p>Primitives</p>
</div>
</div>
<div class='span-4 last turret' id='extensions'>
<p>C API</p>
</div>
<p class='span-24 alt caption'>The Rubinius Nitty Gritty</p>
</div>
</div>
<div class='container stripe' id='compatibility'>
<h3>How compatible is Rubinius?</h3>
<div class='span-12'>
<p>
From the start, compatibility has been critical to us. To that end, we created the
<a href="http://rubyspec.org">RubySpec</a>
to ensure that we maintained parity with official Ruby.
We are currently at a 93% RubySpec pass rate and growing everyday.
</p>
<p>
For now Rubinius is targeting MRI 1.8.7 (1.9 is on the post 1.0 list).
Most Gems, Rails plugins and C-Extensions work right out of the box.
If you find a bug,
<a href="http://github.com/rubinius/rubinius/issues">let us know</a>
and we'll get on top of it.
</p>
</div>
<div class='span-11 prepend-1 last'>
<div id='compatible_projects'>
<h4 class='alt'>Compatible, Right Now</h4>
<div id='ul'>
<li class='alt'>Rails</li>
<li>Rake</li>
<li class='alt'>RSpec</li>
<li>IRB</li>
<li class='alt'>Nokogiri</li>
<li>YAML</li>
<li class='alt'>Mongrel</li>
<li>MySQL</li>
<li class='alt'>Yajl-JSON</li>
<li>And many more&hellip;</li>
</div>
</div>
</div>
</div>
{% include footer.html %}
</body>
Jump to Line
Something went wrong with that request. Please try again.