Sulong: Executing Low-level Languages on TruffleICW Invited Talk
Truffle is a language-implementation framework written in Java, which has been used to implement various languages in the multi-lingual GraalVM. These languages include Ruby and Python, which rely on native extensions in order to execute code written in languages such as C/C++. To execute native extensions, we implemented Sulong, a LLVM IR interpreter that runs on Truffle and which is used in place of a native function interface in the GraalVM. This talk will give an overview of Sulong, how it is used within the GraalVM, and how it interacts with inline assembly code, compiler builtins, and the underlying operating system.
Bio: Manuel Rigger is a postdoctoral researcher, mentored by Hanspeter Mössenböck, at Johannes Kepler University Linz working on system security, software reliability, language implementation, and software-repository mining to uncover knowledge relevant for these areas. As part of his dissertation, he developed Sulong, a Truffle-based execution system for LLVM-based languages, which is used in place of a native function interface within GraalVM. From March 2019, he will work as a postdoctoral researcher, mentored by Zhendong Su, at ETH Zurich.
I am a postdoctoral researcher interested mainly in the secure execution of programs written in low-level languages such as C. I work on source-level and binary-level bug-finding and bug-mitigation approaches, low-level software security in general, the efficient implementation of programming languages, and the mining of software repositories to uncover knowledge related to these topics.