Crosstwine Linker – Ruby Demo
The Language
Ruby is a dynamic, Open Source programming language with a focus on simplicity and productivity; please refer to www.ruby-lang.org for more information or to acquire a copy of the original implementation.
Important Notice
While our demo interpreters can yield substantial speed-ups on number-crunching applications, they do not currently accelerate some kinds of workloads. Notably, Ruby on Rails runs (and is very stable in recent builds), but quite a bit of additional work has to be done before we see performance improvements. Please see what makes Crosstwine Linker different from other VMs.
The Demo
These technology demos integrate Crosstwine Linker 1.0 alpha 1 with two—radically different—implementations of the language:
- 1.8
-
The original interpreter, developed by Yukihiro Matsumoto. The integration was done with the 1.8.6 version; the corresponding unmodified interpreter sports the version number 1.8.6p362.
- 1.9
-
The new official virtual machine, developed by Koichi Sasada. The integration was done with a development version; the corresponding unmodified interpreter sports the version number 1.9.2dev.
We provide binary tarballs for a number of x86-64 (AMD64, Intel 64) Linux distributions.
What to Expect?
Basically, a much faster Ruby interpreter (times in seconds; lower is better):
The Crosstwine Linker engine reduces the execution times by a factor of up to 4× on these synthetic benchmarks. Note that we had a relatively short research and experimentation phase, after which our focus was moved towards 100% compatibility, so:
-
The modified interpreter should support exactly the same feature set as the standard one, including the most esoteric tracing and debugging facilities;
-
We are only about to resume our work on performance, and expect these numbers to improve quite a bit in the near future. Don't hesitate to point us to real-world scenarios you think we ought to focus on.
Note that the 1.8 branch benefits from even higher speedups; some parts of the Ruby Benchmark Suite are executing up to 20× faster in the modified interpreter. And we are far from finished!
Installation
Here is a step-by-step guide of how to install one of the provided “packages”:
-
Download the most appropriate file for your distribution;
-
Execute the following command as an administrator:
$ cd / && tar xzvf /path/to/downloaded/file
This will create either /opt/crosstwine/xtruby-1.8.6-1.0a1 or /opt/crosstwine/xtruby-1.9.2dev-1.0a1, depending on the version chosen, containing the ready-to-use implementation. No files nor settings will be created/altered outside of that directory;
-
Use /opt/crosstwine/xtruby-1.8.6-1.0a1/bin/xtruby1.8 or /opt/crosstwine/xtruby-1.9.2dev-1.0a1/bin/xtruby1.9 as you would use the default interpreter. Optionally, add the bin/ subdirectory to your PATH environment variable.
Contact us if you have trouble following these instructions, or if you would like packages to be prepared for any other configuration.
Downloads
1.8
- Ubuntu 8.10 Server
- xtruby-1.8.6-1.0a1-Ubuntu8.10.tar.gz
- Debian Linux 5.0 (“Lenny”)
- xtruby-1.8.6-1.0a1-Debian5.0.tar.gz
- Red Hat Enterprise Linux 5.3
- xtruby-1.8.6-1.0a1-RHEL5.3.tar.gz
- SUSE Linux Enterprise Server 10
- xtruby-1.8.6-1.0a1-SLES10.tar.gz
- Fedora 10
- xtruby-1.8.6-1.0a1-F10.tar.gz
1.9
- Ubuntu 8.10 Server
- xtruby-1.9.2dev-1.0a1-Ubuntu8.10.tar.gz
- Debian Linux 5.0 (“Lenny”)
- xtruby-1.9.2dev-1.0a1-Debian5.0.tar.gz
- Red Hat Enterprise Linux 5.3
- xtruby-1.9.2dev-1.0a1-RHEL5.3.tar.gz
- SUSE Linux Enterprise Server 10
- xtruby-1.9.2dev-1.0a1-SLES10.tar.gz
- Fedora 10
- xtruby-1.9.2dev-1.0a1-F10.tar.gz
FAQ
- Why the 1.8 and 1.9 distributions?
-
They track different versions of the language: 1.9 is the “bleeding edge,” and offers substantial improvements over the 1.8 series. These improvements, however, come at a fairly high price: the language was modified, and the new dialect (as well as its extension mechanisms) is not backwards-compatible.
We got started with the 1.9 virtual machine (YARV), to see how much our technology could accelerate what is already a fairly efficient interpreter. But since backwards compatibility concerns are causing a very slow rate of adoption (at least in production), we decided to bite the bullet and also support the original AST interpreter.
- Is there a mailing list for Ruby-specific questions and discussions?
-
Yes. Please send an empty message to xtruby-subscribe@crosstwine.com to subscribe; you will be receive instructions for all the usual mailing list procedures in return.
- Is that all?
-
Some more questions are answered in the general Crosstwine Linker FAQ. Please contact us if your question is not covered.