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