forked from rubinius/rubinius.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
260 lines (236 loc) · 8.85 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
---
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 & 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; …</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…</li>
</div>
</div>
</div>
</div>
{% include footer.html %}
</body>