GSoC/GCI Archive
Google Summer of Code 2013

JRuby

Web Page: https://github.com/jruby/jruby/wiki/Google-Summer-of-Code-2013

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

  • Bringing JRuby up-to-date and faster than ever! This proposal intends to be open-ended in the details. I want to help to implement new features (from Ruby 2.0 and 2.1) and to consolidate existing ones as well as analyzing performance bottlenecks in libraries and in JRuby itself.
  • Implementation of krypt Provider API for JRuby and Refactor the ASN.1 parser/encoder to use more Ruby code Develop a Java bridge for integrating already implemented Providers in C/C++ using JNA. Implementing major parts of the ASN.1 parser/encoder in Ruby.
  • Implementing Ruby 2.0 DTrace Support and other new features for JRuby In the latest release of Ruby which is Ruby 2.0, it has been featured with many new features. In this project I'm going to add DTrace Support, TracePoint API and Module#Prepend feature of Ruby 2.0 into JRuby.
  • JRuby for Embedded The JVM's are becoming faster and efficient now. On the other hand we are now observing the development of embedded devices in home automation, security, automobiles etc. To fulfill the need and widen the use of JRuby, we have to provide support for such embedded devices. The aim of this project is to get JRuby ported on J2SE supporting JVM running on low configuration embedded device.
  • Krypt Cipher development Enhancing the Krypt API to include a wider variety of libraries and methods for encryption. Over the summer we will implement the Galois/Counter method of encryption into the Cipher library of Krypt.
  • RSense, JRuby-Parser : Better Tooling for Rubyists To update RSense, a set of tools for working with Ruby, so that it uses JRuby-Parser, and to re-factor it, taking advantage of the syntactical and semantic logic that JRuby-Parser provides.
  • Ruboto: JRuby on Android Nyangawa's proposal for Ruboto, focusing on the performance stuff
  • Shoes4 - pushing towards 1.0 The goal of this project is to push the shoes4 project as close as possible to a 1.0 release. Therefore the missing features of the Shoes DSL will be implemented. A focus is on not breaking the interface, since old shoes programs should still run. Backwards incompatible changes will only be made for consistency reasons or bug fixes.
  • Shoes4 support for Hackety Hack Plan and develop for features that Hackety Hack requires which will allow the use of Shoes4.
  • Visualization of the JRuby Interpreter and Compiler In the Google Summer of Code project I want to investigate and implement a visualization of IR with other compiler artifacts of the JRuby toolchain. This idea is inspired by the Scala compiler browser GUI and Dr. Garbage visualizing the abstract syntax respectively Java Bytecode. JRuby currently lacks to select of one compiler pass with dumping results of the pass like transformations, dependencies, .... I want to achieve to capture the relation between abstract syntax and IR, illustration of control flow graph and its basic blocks summarize information about subtree (selected) for a given node in AST like Java Bytecode