From: Wilson Bilkovich Date: 2006-12-11T01:51:19+09:00 Subject: Re: Show your support for Rubinius! On 12/10/06, Benjohn Barnes wrote: > > On 7 Dec 2006, at 16:53, Wilson Bilkovich wrote: > > > On 12/7/06, benjohn@fysh.org wrote: > >> I'd like to know more about Rubinius, but all the info I've got on it > >> are Evan's blogs on http://blog.fallingsnow.net/. Is there more info > >> somewhere else? > >> > > > > #rubinius on irc.freenode.net is a good resource. > > > > I'm going to write up an "installing and understanding Rubinius" > > document, and Evan is working on some cool architectural diagrams that > > we can then put on extremely geeky T-shirts. > > > > Current dependencies (this list will be getting shorter month by > > month) > > ruby: > > an existing install of 1.8 > > sydparse > > RubyInline > > emp > > rake > > > > external: > > glib2 > > gcc 4.0 or 4.1 > > > > Right now the Makefile that bootstraps Rubinius isn't set up for other > > compilers. You will need to modify it if you have something other than > > gcc4.x. This is another temporary issue. If someone wants to come > > along and fix it, that would be cool. :) > > > > As soon as the glib2 dependency is gone (soon, hopefully), I will make > > sure that Rubinius builds on Windows under VC8. > > > > After you have the dependencies installed: > > rake shotgun # builds the C components > > rake bk # builds the kernel > > rake test_shotgun # runs the unit tests that are in 'shotgun-tests' > > > > Currently there are some test failures, but not too many. The bytecode > > is compiled and stored in the 'code-cache' directory as .rbc files. > > Am I right that Rubinius: > > 1) Compiles Ruby directly to assembly language, and > 2) Is actually written in Ruby, so can self host? > > Because that would be cool :) Although, for 1, doesn't it need a lot > of work to target other processors, unless you're making use of an > existing intermediate language (c for instance, or something inside > the gcc compiler)? > It compiles to assembly language, but it is assembly language for the Rubinius Machine, not, say IA-32. The Rubinius instruction set architecture is then implemented in C for portability across processor types. The compiler is written in Ruby, and can self-host, but there is (and always will be) C involved in the runtime. As time goes on, more and more of that C will be generated from Ruby (similar to the way the Squeak VM works.) Singleton/metaclasses (i.e. class << self) and the ||= syntax were added last night. Woo hoo!