Production ready? Graal essential for JITing?

john bergin john.bergin at gmail.com
Fri Jun 24 15:21:42 UTC 2016


Thank you Raffaello / Christian for your prompt responses!!

Now knowing that JVMCI is the link between Truffle and Graal makes the
picture a lot more clear!

OK so Truffle running on a stock JVM acts as a self-optimizing interpreter.
I believe the paper linked below describes the work done by Tuffle. Am I
correct on this?

http://lafo.ssw.uni-linz.ac.at/papers/2012_DLS_SelfOptimizingASTInterpreters.pdf

Interesting to know that JVMCI will be a experimental feature in JDK9.

Thanks for all the links, Christian, and SimpleLanguage looks especially
interesting. I'll give the video a watch too.

Thanks for the info. Lots to get started with.

On 24 June 2016 at 16:06, Christian Humer <christian.humer at gmail.com> wrote:

> 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