How to get a JIT Compiler for Free: Implementing SOM Smalltalk with RPython and Truffle

Today at FOSDEM, I gave a brief talk on implementing SOM, a little Smalltalk, with RPython and Truffle. RPython, probably best known for the PyPy implementation, uses meta-tracing JIT compilation to make simple interpreters fast. Truffle, a research project of Oracle Lab, is an approach for building self-optimizing interpreters and in combination with Graal, it gives a JIT compiler for AST-like interpreters. In the talk, I briefly sketch both of them, without going into many details.

The slides are embedded below. Please note that the performance numbers given in the slides are preliminary. They reflect the current snapshot and your on results may very drastically. Further, TruffleSOM has much remaining optimization potential, as does RPySOM. So, these numbers should not be considered benchmarks for the potential of Truffle+Graal or RPython themselves.

Acknowledgments: I would like to thank Carl Friedrich Bolz and Tobias Pape for their help on RPySOM (cf. commit log), especially for making it fast. And, I would like to thank Oracle Labs and the Truffle+Graal community for guidance, support, and fixing bugs. Among others, and in alphabetic order: Andreas Wöß, Chris Seaton, Christian Humer, Christian Wimmer, Gilles Duboscq, Michael Haupt, Thomas Würthinger, Wei Zhang.

Tags: , , , , , , , ,

2 Responses to “How to get a JIT Compiler for Free: Implementing SOM Smalltalk with RPython and Truffle”

  1. Estevo February 4, 2014 at 02:04 #

    Is the audio available somewhere?

    In the performance slide, what do the numbers mean? Does a higher figure indicate better or worse performance?

    Thanks for posting this!

  2. Stefan February 4, 2014 at 17:36 #

    I’ll post the link to the recording once it is available. The performance numbers are normalized to the Java results. So, lower numbers are better. I added a corresponding note on the slides.