Truffle/Ruby

OVERVIEW

  • Truffle is a multi-language interpreter framework. It allows implementing interpreters for a large variety of languages, that can then be executed on top of the JVM. Applying partial evaluation allows to compile the interpreted guest-language program to high-performance machine code.

    Using Truffle we are creating a high performance and compatible implementation of the Ruby programming language, Truffle/Ruby.

    Using the Graal compiler, Truffle/Ruby can achieve peak performance well beyond what is currently possible in other implementations using bytecode generation, the LLVM compiler framework, and metatracing. At the same time our support for the more complex parts of the Ruby language is often better than existing implementations, such as metaprogramming, tracing and C extensions, and we are researching features that Ruby has never had before, such as high performance debugging.

    Truffle/Ruby is open-source and has been integrated into the existing JRuby effort to implement Ruby on the JVM, allowing us to re-use existing functionality and to ease transition to the new runtime for current users.


  • For more information see Project Site

RESEARCH PAPERS

  • A. Wöß, C. Wirth, D. Bonetta, C. Seaton, C. Humer, and H. Mössenböck. An object storage model for the Truffle language implementation framework. In Proceedings of the International Conference on Principles and Practices of Programming on the Java Platform (PPPJ), 2014.
  • C. Seaton, M. L. Van De Vanter, and M. Haupt. Debugging at full speed. In Proceedings of the 8th Workshop on Dynamic Languages and Applications (DYLA), 2014.