As software demandsĀ evolve and grow, new programming languages emerge and rise to popularity. However, supporting more advanced language runtime features such as just-in-time (JIT) compilation and garbage collection (GC) for a new language is no easy feat. Writing your own full-featured JIT and GC usually requires reading profusely on the subjects and implementing everything from scratch over a long period of time, or poring over hundreds of thousands of lines of code. The open-source Eclipse OMR runtime toolkit is striving to make this process much simpler for language runtime developers and researchers.

This workshop will introduce the Eclipse OMR framework, present ongoing research projects leveraging OMR technologies, deliver a hands-on tutorial using an educational virtual machine (VM) called base9 to demonstrate how OMR components can easily be integrated into an existing runtime, and conclude with a discussion on the needs and challenges facing language runtimes development and research communities.

Java runtime technology has benefited from hundreds of person years of development investment over the last two decades, resulting in a highly capable and scalable dynamic language that delivers powerful performance and has a vibrant developer ecosystem. The Eclipse OMR project aims to expand access to high quality runtime technologies for other dynamic languages through an ongoing effort to restructure the core components of the J9 Java Virtual Machine (JVM). Rather than building new languages on top of Java, however, Eclipse OMR intends to unlock the inner workings of the JVM without imposing Java semantics to create a common platform for building language runtimes.

The high-level goals of this workshop are to:

  1. introduce the Eclipse OMR open-source framework for building and enhancing language runtimes: what it is, the runtime components that have been contributed, active areas of development, and how workshop participants can become involved;

  2. allow language runtime practitioners and researchers to describe promising ongoing projects that leverage Eclipse OMR so that participants can hear first-hand how this technology is being used;

  3. provide a hands-on tutorial based on an educational virtual machine (VM) called base9 to demonstrate how advanced JIT and GC technologies can be easily integrated into an existing runtime;

  4. conclude with a birds-of-a-feather (BoF) session with workshop participants moderated by Eclipse OMR project leads to discuss the needs and challenges of runtime development and research communities and how open-source runtime technologies should evolve to meet those requirements.

There will be three sections:

  1. An initial speaker section where the underlying technology will be introduced with its relevance to workshop attendees. Select speakers from industry and academia will present relevant work on projects such as WebAssembly, Lua, Swift, and garbage collection that build upon Eclipse OMR technology.

  2. A hands-on section where participants will be guided through a set of exercises to integrate compiler technology and garbage collection technology into the base9 language runtime (https://b9org.github.io/b9). Attendees will experience first-hand the progression of performance improvements as different features of the OMR technology are integrated. We expect the hands-on section to consume at least half of the time allotted to this workshop. Attendees are required to bring their own laptops if they wish to participate in the hands-on portion. We will provide instructions to attendees prior to the workshop to streamline the setup process.

  3. A short BoF session moderated by Eclipse OMR project leads where organizers and participants can discuss the technology, its application, where it needs to improve, what features developers and researchers would like to see but are currently lacking, and so on.

Are you interested in learning about modern, open-source runtime technologies? Do you want a guided hands-on experience to see how the technology can be leveraged in practice? If you answered yes to both of these questions, then you are the ideal participant we are looking for! Some knowledge of runtime technology and C/C++ would be useful, but not required.