ECOOP 2022
Mon 6 June - Thu 7 July 2022 Berlin, Germany
Tue 7 Jun 2022 12:00 - 12:30 at Stockholm 1 - Applications

The past several years of my career have been spent predominately working on TruffleRuby, an implemention of the Ruby programming language that can achieve impressive execution speed thanks to the Truffle language implementation framework and the Graal JIT compiler. Taken together, these three technologies form part of the GraalVM distribution. The full distribution includes implementations of other languages (JavaScript, Python, R, and Java), an interpreter for LLVM bitcode (Sulong), tooling such as a profiler and debugger for both host and guest code (VisualVM), tooling to visualize decisions made by the JIT compiler (IGV), and the ability to generate native binaries of Java applications (including any of the listed language interpreters) via Native Image. There’s more to GraalVM as well, which makes defining it and discovering all of its capabilities difficult. In this article, I’d like to focus on two pieces of GraalVM functionality: 1) loading a Truffle interpreter into a Java application to call guest language code (e.g, Ruby) directly from Java; and 2) using Native Image to turn that Java code into a native shared library, allowing Truffle languages to be loaded and called just like any other exposed C function.

Tue 7 Jun

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

11:00 - 12:30
ApplicationsTruffle at Stockholm 1
11:00
30m
Short-paper
Efficient Object Graph Recording with Truffle for Live Data-Structure Programming
Truffle
Shusuke Takahashi Tokyo Institute of Technology, Yusuke Izawa Tokyo Institute of Technology, Hidehiko Masuhara Tokyo Institute of Technology, Youyou Cong Tokyo Institute of Technology
Media Attached
11:30
30m
Talk
Designing an intuitive language-agnostic integration of foreign objects in Ruby
Truffle
Benoit Daloze Oracle Labs
Pre-print Media Attached
12:00
30m
Talk
Embedding Truffle Languages
Truffle
Kevin Menard Shopify
Media Attached