Whoa, say what? --- Rubydium is aiming to become an optimising reimplementation of the Ruby 1.8 interpreter, currently its as good as vapourware however the key mechanism has been prototyped, thusly before commencing a major rewrite I thought i'd release the current state of the art. Why oh why? --- Rubydium works by generating optimized platform specific code on the fly, as needed, using instance type information gathered during the execution itself. Optimisations are possible as the generated code can be specialized for the types in question, therefore allowing heavy inlining of speed critical sections. Where ya at? --- This preview can execute an primitive subset of the Ruby language, its slow, buggy, more complex than i'd really like, and will probably make you loose a fair amount of hair just getting the preview working :) However, its a proof of concept that does show that The Twist is implementable using the libjit library. Whats you using mate? --- As a backend code generator libjit (http://www.southern-storm.com.au/libjit.html) is being used. The first component of Rubydium is therefore a small and incomplete binding to the libjit library. The CVS version of libjit is required for the Rubydium tech preview. As a Ruby parser Robert Feldt's awesome Ruth library is used. The AST is used directly during code generation at this point. Several minor modifications were needed so a custom Ruth library is required for Rubydium. Dude, where's my car? --- I've given Rubydium a nice cozy and well furnished apartment at the RubyForge estate: http://rubyforge.org/frs/?group_id=362 Or for the wgetters out there: http://rubyforge.org/frs/download.php/1546/libjit-cvs-snapshot-2004-09-27.tar.gz http://rubyforge.org/frs/download.php/1548/ruth-0.10-rubydium.tar.gz http://rubyforge.org/frs/download.php/1547/rubydium-0.1-1.tar.gz Didn't downloading that just feel sooo damn good? All excited? Hope so :) But, Geez, Dude, How do I start her up ? --- The Libjit CVS snapshot (needs base system - c/c++/bison-1.35/flex) (more information can be found in the included README) : ./configure --prefix=/path/to/install/prefix --enable-interpreter (example prefix: /home/alex/install/libjit) make make install Please note, the "--enable-interpreter" option is required. Ruth with my local modifications (1.8.x ruby is known to work) (see included README file for more information) : ruby helpers/make.rb ruby helpers/install.rb Rubydium : export JIT_DIR=/path/to/install/prefix ./build_script This will configure, then build, and finally execute the test suite. The test suite will produce an obscene amount of information, take a look through it on a rainy day sometime if you wish :) Any failed tests?, first please check that you actually do have an interpreter build of libjit rather than a x86 backend build. If you're certain that there are other errors, feel free to email me the failure reports :) And now what? --- Take a look around at the source. Given its current state its certainly not useful for executing anything, but its sure fun to see all that output whizz past! Here's to hoping at least some of you guys/gals can get this working! :) Enjoy :) Alex