GraalVM
A high-performance runtime supporting Java and JVM languages, JavaScript, Ruby, R, Python, C/C++, and more. It can run standalone or embedded in OpenJDK / OracleJDK, Node.js, and Oracle Database.
GraalVM
GraalVM
A high-performance runtime supporting Java and JVM languages, JavaScript, Ruby, R, Python, C/C++, and more. It can run standalone or embedded in OpenJDK / OracleJDK, Node.js, and Oracle Database.
Project Overview
GraalVM is designed to accelerate the execution of applications written in Java and other JVM languages while also providing runtimes for JavaScript, Ruby, Python, and a number of other popular languages. GraalVM’s polyglot capabilities make it possible to mix multiple programming languages in a single application while eliminating any foreign language call costs.
GraalVM Ahead-Of-Time compiler Native Image generates native executables from the Java source files and makes the Java ecosystem Cloud Native by deploying and running efficient microservices.
GraalVM is currently used by Oracle Cloud Infrastructure, Oracle Netsuite, Twitter, Alibaba, and many other organizations. Oracle Database Multilingual Engine leverages GraalVM as efficient and secure JavaScript runtime.
Learn more and get started with GraalVM: graalvm.org
Publications
Conference Publication
Control Flow Duplication for Columnar Arrays in a Dynamic Compiler
Sebastian Kloibhofer, Lukas Makor, David Leopoldseder, Daniele Bonetta, Lukas Stadler, Hanspeter Moessenboeck
Conference Publication
Automatic Array Transformation to Columnar Storage at Run Time
Lukas Makor, Sebastian Kloibhofer, David Leopoldseder, Daniele Bonetta, Lukas Stadler, Hanspeter Moessenboeck
Conference Publication
TruffleTaint: Polyglot Dynamic Taint Analysis on GraalVM
Jacob Kreindl, Daniele Bonetta, Lukas Stadler, David Leopoldseder, Hanspeter Moessenboeck
Conference Publication
ML-SOCO: Machine Learning-Based Self-Optimizing Compiler Optimizations
Raphael Mosaner, David Leopoldseder, Wolfgang Kisling, Lukas Stadler, Hanspeter Moessenboeck
Conference Publication
Constant Blinding on GraalVM
Matthias Neugschwandtner, Gergo Barany, Felix Berlakovich
Conference Publication
Toward Just-in-time and Language-agnostic Mutation Testing
Stefan Reschke, Toni Mattis, Fabio Niephaus, Robert Hirschfeld
Conference Publication
Lightweight On-Stack Replacement in Languages with Unstructured Loops
Matt D'Souza, Gilles Duboscq
Conference Publication
CompGen: Generation of Fast Compilers in a Multi-Language VM
Florian Latifi, David Leopoldseder, Christian Wimmer, Hanspeter Moessenboeck
Slides
Low-Overhead Multi-Language Dynamic Taint Analysis on Managed Runtimes through Speculative Optimization
Jacob Kreindl, Daniele Bonetta, David Leopoldseder, Lukas Stadler, Hanspeter Moessenboeck
Conference Publication
Compiler-Assisted Object Inlining with Value Fields
Rodrigo Bruno, Vojin Jovanovic, Christian Wimmer, Gustavo Alonso
In Proceedings
Example-based Live Programming for Everyone: Building Language-agnostic Tools for Live Programming With LSP and GraalVM
Fabio Niephaus, Patrick Rein, Jakob Edding, Jonas Hering, Bastian König, Kolya Opahle, Nico Scordialo, Robert Hirschfeld
In Proceedings
Polyglot Code Finder
Jan Ehmueller, Alexander Riese, Hendrik Tjabben, Fabio Niephaus, Robert Hirschfeld
In Proceedings
Toward Presizing and Pretransitioning Strategies for GraalPython
Johannes Henning, Tim Felgentreff, Fabio Niephaus, Robert Hirschfeld
In Proceedings
User-defined Interface Mappings for the GraalVM
Alexander Riese, Fabio Niephaus, Robert Hirschfeld
In Proceedings
GraalSqueak: Toward a Smalltalk-based Tooling Platform for Polyglot Programming
Fabio Niephaus, Tim Felgentreff, Robert Hirschfeld
In Proceedings
PolyJuS: A Squeak/Smalltalk-based Polyglot Notebook System for the GraalVM
Fabio Niephaus, Eva Krebs, Christian Flach, Jens Lincke, Robert Hirschfeld
Journal Publication
Live Multi-language Development and Runtime Environments
Fabio Niephaus, Tim Felgentreff, Tobias Pape, Robert Hirschfeld, Marcel Taeumel
In Proceedings
Dominance-Based Duplication Simulation (DBDS)
David Leopoldseder, Lukas Stadler, Thomas Wuerthinger, Josef Eisl, Doug Simon, Hanspeter Mössenböck
In Proceedings
Sulong, and Thanks For All the Bugs: Finding Errors in C Programs by Abstracting from the Native Execution Model
Manuel Rigger, Roland Schatz, Rene Mayrhofer, Matthias Grimmer, Hanspeter Moessenboeck
Conference Publication
Simulation-based Code Duplication for Enhancing Compiler Optimizations
David Leopoldseder
Slides
FastR update: Interoperability, Graphics, Debugging, Profiling, and other hot topics
Lukas Stadler
Conference Publication
Trace Register Allocation Policies: Compile-time vs. Performance Trade-offs
Josef Eisl, Stefan Marr, Thomas Wuerthinger, Hanspeter Moessenboeck
In Proceedings
Practical partial evaluation for high-performance dynamic language runtimes
Thomas Wuerthinger, Christian Wimmer, Christian Humer, Andreas Woess, Lukas Stadler, Chris Seaton, Gilles Duboscq, Doug Simon, Matthias Grimmer
In Proceedings
Lenient Execution of C on a JVM -- How I Learned to Stop Worrying and Execute the Code
Manuel Rigger, Roland Schatz, Matthias Grimmer, Hanspeter Moessenboeck
Slides
Building Reusable, Low-Overhead Tooling Support into a High-Performance Polyglot VM
Michael Van De Vanter
In Proceedings
Language-Independent Information Flow Tracking Engine for Program Comprehension Tools
Michael Van De Vanter, Mohammad Reza Azadmanesh
Conference Publication
FAD.js: Fast JSON Data Access Using JIT-based Speculative Optimizations
Daniele Bonetta, Matthias Brantner
In Proceedings
Increasing the Robustness of C Libraries and Applications through Run-time Introspection
Manuel Rigger, Rene Mayrhofer, Roland Schatz, Matthias Grimmer, Hanspeter Moessenboeck
In Proceedings
Fast, Flexible, Polyglot Instrumentation Support for Debuggers and other Tools
Michael Van De Vanter, Chris Seaton, Christian Humer, Thomas Wuerthinger
Conference Publication
Just-In-Time GPU Compilation of Interpreted Programs with Profile-Driven Specialization
Juan Fumero, Lukas Stadler, Michael Steuwer, Christophe Dubach
In Proceedings
Practical Partial Evaluation for High-Performance Dynamic Language Runtimes
Thomas Wuerthinger, Christian Wimmer, Christian Humer, Andreas Woess, Lukas Stadler, Chris Seaton, Gilles Duboscq, Douglas Simon, Matthias Grimmer
In Proceedings
Bringing Low-Level Languages to the JVM: Efficient Execution of LLVM IR on Truffle
Manuel Rigger, Matthias Grimmer, Christian Wimmer, Thomas Wuerthinger, Hanspeter Moessenboeck
In Proceedings
One Compiler: Deoptimization to Optimized Code
Christian Wimmer, Vojin Jovanovic, Thomas Wuerthinger
Conference Publication
Efficient and Thread-Safe Objects for Dynamically-Typed Languages
Benoit Daloze, Stefan Marr, Daniele Bonetta, Hanspeter Moessenboeck
Conference Publication
Gems: shared-memory parallel programming for Node.JS
Daniele Bonetta, Luca Salucci, Stefan Marr, Walter Binder
In Proceedings
Sulong - Execution of LLVM-Based Languages on the JVM
Manuel Rigger, Matthias Grimmer, Hanspeter Moessenboeck
Conference Publication
Sulong: Memory Safe and Efficient Execution of LLVM-Based Languages
Manuel Rigger
PhD Thesis
Combining speculative optimizations with flexible scheduling of side-effects
Gilles Duboscq
In Proceedings
An Efficient and Generic Event-based Profiler Framework for Dynamic Languages
Gülfem Savrun-Yeniçeri, Michael Van De Vanter, Per Larsen, Stefan Brunthaler, Michael Franz
In Proceedings
Building Debuggers and Other Tools: We Can “Have it All” (Position Paper)
Michael Van de vanter
Journal Publication
Snippets: Taking the High Road to a Low Level
Douglas Simon, Christian Wimmer, Bernhard Urban, Gilles Duboscq, Lukas Stadler, Thomas Wuerthinger
Journal Publication
Workload characterization of JVM languages
Aibek Sarimbekov, Lukas Stadler, Lubomír Bulej, Andreas Sewe, Andrej Podzimek, Yudi Zheng, Walter Binder
In Proceedings
Partial Escape Analysis and Scalar Replacement for Java
Lukas Stadler, Thomas Wuerthinger, Hanspeter Mössenböck
In Proceedings
One VM to rule them all
Thomas Wuerthinger, Christian Wimmer, Andreas Woess, Lukas Stadler, Gilles Duboscq, Christian Humer, Gregor Richards, Douglas Simon, Mario Wolczko
In Proceedings
An intermediate representation for speculative optimizations in a dynamic compiler
Gilles Duboscq, Thomas Wuerthinger, Lukas Stadler, Christian Wimmer, Douglas Simon, Hanspeter Mössenböck
In Proceedings
An Intermediate Representation for Speculative Optimizations in a Dynamic Compiler
Gilles Duboscq, Thomas Wuerthinger, Lukas Stadler, Christian Wimmer, Doug Simon, Hanspeter Mössenböck
In Proceedings
An Experimental Study of the Influence of Dynamic Compiler Optimizations on Scala Performance
Lukas Stadler, Gilles Duboscq, Hanspeter Mössenböck, Thomas Wuerthinger, Doug Simon
In Proceedings
Graal IR: An Extensible Declarative Intermediate Representation
Gilles Duboscq, Lukas Stadler, Thomas Wuerthinger, Doug Simon, Christian Wimmer, Hanspeter Mössenböck
In Proceedings
Compilation Queuing and Graph Caching for Dynamic Compilers
Lukas Stadler, Gilles Duboscq, Hanspeter Mössenböck, Thomas Wuerthinger