Production ready? Graal essential for JITing?

Christian Humer christian.humer at gmail.com
Fri Jun 24 15:06:59 UTC 2016


Hi John,

Thanks for your interest.

I cannot answer a "safe for production" question, as Truffle is still a 
research project.
We tag our Truffle Github repository[1] with releases of the API. The 
latest Truffle release tag is truffle-0.14.
We do guarantee compatibility between two adjacent versions, however we 
may mark API as deprecated in one release and remove them in a later one 
at the moment.
So for upgrading you can go to the next Truffle version, fix all 
deprecated warnings and repeat with the next version until you reach the 
desired version.

Every Truffle release should run with a standard JVM >= 1.7 out of the 
box.
However you won't get the benefit of Graal optimizing the ASTs using 
dynamic compilation in such a scenario.
We are currently integrating our VM facing APIs called JVMCI[2] into 
JDK9.
So with a stock JDK9 you are going to be able run Truffle together with 
Graal as a JIT.

In the meantime, you can already use a modified JDK8 version called 
GraalVM[3] for development.
This version of the JDK includes JVMCI, Graal, Truffle and also ships 
with interpreters for JavaScript, Ruby and R.
To get started with Truffle language development I recommend to have a 
look at SimpleLanguage[4] and a recently published Truffle video 
tutorial[5] by Christian Wimmer.

Hope this helps.

Have fun,
Christian Humer


[1] https://github.com/graalvm/truffle
[2] http://openjdk.java.net/jeps/243
[3] 
http://www.oracle.com/technetwork/oracle-labs/program-languages/downloads/index.html
[4] https://github.com/graalvm/simplelanguage
[5] https://www.youtube.com/watch?v=FJY96_6Y3a4


On 24.06.2016 16:11:42, "john bergin" <john.bergin at gmail.com> wrote:

>Hi.
>
>I understand that Truffle and Graal are research projects and that 
>there is
>currently no set date for a release. But I'm wondering if there is a
>Truffle commit that is considered safe for production on a standard 
>JVM?
>
>I'm also wondering if Graal is needed to allow a Truffle AST to be
>optimized for a specific run-time context? My understand is Truffle is 
>a
>AST framework and Graal is the JIT and Graal feeds optimizations back 
>to
>the Truffle AST to suggest specific optimizations? Or maybe Truffle on 
>its
>own running on a stock JVM can allow for JITing of the Truffle AST.
>
>Appreciate any feedback on either question.
>
>Many thanks.
>John.



More information about the graal-dev mailing list