GSoC/GCI Archive
Google Summer of Code 2012

JRuby

Web Page: https://github.com/jruby/jruby/wiki/GoogleSummerOfCode2012

Mailing List: http://xircles.codehaus.org/projects/jruby/lists

JRuby is an implementation of the Ruby programming language that runs atop the JVM. For Rubyists, it offers the JVM's excellent performance, garbage collection, and cross-platform support. For JVM folks, it offers a beautiful language, multi-encoding strings, native library access, and a fluid, flexible class model. For everyone, it represents a great number of interesting challenges, solutions, and opportunities.

Projects

  • A complete benchmark tool (and suite) for Ruby implementations and libraries This project is to develop a benchmark tool which allows to compare implementations, with different flags and over time in order to keep track of performance (avoid regression) and detect where it could likely be improved. It also includes creating a coherent and high quality benchmark suite starting from existing ones. In particular it would allow to accurately measure JRuby performance by differentiating early/long-term performance, and the effect of invokedynamic and other external factors.
  • Dalvik back end for the JRuby compiler The goal of this project is to create a Dalvik back end to the JRuby compiler which can be used on-device to compile Ruby into Dalvik bytecode on demand.
  • Digital Signature Support in krypt krypt{jce} provides cryptography support to jruby. The project aims at providing Digital Signature support to krypt{java}. It aims at providing this support to xml via nokogiri and to pdfs.
  • JRuby GUI library / Shoes on JRuby Bring a GUI library that actually works and is somewhat stable to JRuby.
  • JRuby Kilim Integration Currently JRuby has two fiber implementations. The default one uses Java threads and the oter uses MLVM coroutines. This is a proposal for a third implementation using Kilim's fibers.
  • JRuby on Android: Ruboto The goal of the project is to improve ruboto performance (particularly start up time). Other objectives are to shrink the app and building better tooling for AOT complation.
  • Write/read IR to/from disk This feature will enable JRuby to avoid parsing Ruby source, build AST, and generate IR across runs. This feature might be especially useful for faster bootup of short-running programs (ex: tests).This project would have to ensure that the (human-readable) textual output captures all necessary information from IR so that when it is read back in, the IR can be reconstructed without loss of information.