Graal

OVERVIEW

  • Graal is a high-performance VM with a focus on Java, JavaScript, Ruby, and R. The Graal compiler focuses on speculative optimistic optimizations using profiling feedback from the application. It employs a novel techniques for reducing object allocations and taking advantage of dynamic frequency information. Furthermore, Graal supports auto-vectorization for higher throughput on hardware with SIMD support.

    Graal exposes the Truffle multi-language API that allows programming languages to efficiently target the Graal platform. This framework uses partial evaluation to derive from AST interpreters automatically optimized machine code. We are building comprehensive Truffle implementations for JavaScript, Ruby, and R. Additionally, there are several academic projects building on top of Truffle additional languages including Python and Smalltalk.

    The latest technology preview binaries for Graal can be downloaded from the Oracle Technology network: http://www.oracle.com/technetwork/oracle-labs/program-languages

    The Graal reference implementation and the Truffle API are open source available as part of the OpenJDK: http://openjdk.java.net/projects/graal


  • For more information see Project Site

PUBLICATIONS

 

OVERVIEW

Truffle is a self-optimizing runtime system on top of Graal. It uses partial evaluation to derive compiled code from interpreters. Truffle is suitable for creating high-performance implementations for dynamic languages with only moderate effort. There are currently prototype Truffle implementations for JavaScript, Ruby, Smalltalk, Python, and R.

LANGUAGES

TruffleRuby: https://github.com/jruby/jruby/wiki/Truffle
Zippy: https://bitbucket.org/ssllab/zippy
FastR: https://bitbucket.org/allr/fastr
TruffleSOM: https://github.com/smarr/TruffleSOM