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 hands-on tutorials using OMR JitBuilder and GC to demonstrate how OMR components can be easily integrated into an existing runtime, and conclude with a discussion on the needs and challenges facing language runtimes development and research communities.

Goals

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 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.

Details

There will be three sections:

  1. An initial speaker session 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 tutorial session where participants will be guided through a set of exercises to integrate compiler technology and garbage collection technology. 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.

Prerequisites

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.

Latest update:

  1. For “Boost WABT Performance with JitBuilder” hands-on tutorial, please check out the prerequisites here.

  2. For “Create an Object Model and Get a GC for Free” hands-on tutorial, please check out the prerequisites here.

Thanks and we are looking forward to meeting everyone soon!

Talks

Title

Mon 5 Nov

turbo-2018-tutorial
08:30 - 10:00: TURBO - Speakers 1 at Stuart
Chair(s): Xiaoli LiangIBM Canada
turbo-2018-tutorial08:30 - 09:00
Talk
Xiaoli LiangIBM Canada
turbo-2018-tutorial09:00 - 09:30
Talk
Leonardo BanderaliIBM Toronto Labs
turbo-2018-tutorial09:30 - 10:00
Talk
Mark StoodleyIBM Canada
turbo-2018-tutorial
10:30 - 12:00: TURBO - Speakers 2 at Stuart
Chair(s): Gerhard DueckUniversity of New Brunswick
turbo-2018-tutorial10:30 - 11:00
Talk
Robert YoungIBM, Canada
turbo-2018-tutorial11:00 - 11:30
Talk
Jean-Philippe LegaultUniversity of New Brunswick, Aaron GrahamIBM/University of New Brunswick: Centre for Advanced Studies - Atlantic (CAS-Atlantic)
turbo-2018-tutorial11:30 - 12:00
Talk
turbo-2018-tutorial
13:30 - 15:00: TURBO - Hands-on Tutorial 1 at Stuart
Chair(s): Leonardo BanderaliIBM Toronto Labs
turbo-2018-tutorial13:30 - 15:00
Other
Leonardo BanderaliIBM Toronto Labs, Xiaoli LiangIBM Canada, Daryl MaierIBM Canada, Mark StoodleyIBM Canada, Robert YoungIBM, Canada
turbo-2018-tutorial
15:30 - 17:00: TURBO - Hands-on Tutorial 2 at Stuart
Chair(s): Leonardo BanderaliIBM Toronto Labs
turbo-2018-tutorial15:30 - 17:00
Other
Leonardo BanderaliIBM Toronto Labs, Xiaoli LiangIBM Canada, Daryl MaierIBM Canada, Mark StoodleyIBM Canada, Robert YoungIBM, Canada

Tue 6 Nov

turbo-2018-tutorial
08:30 - 10:00: TURBO - Hands-on Tutorial 1 at Stuart
Chair(s): Robert YoungIBM, Canada
turbo-2018-tutorial08:30 - 10:00
Other
Robert YoungIBM, Canada, Leonardo BanderaliIBM Toronto Labs, Xiaoli LiangIBM Canada, Daryl MaierIBM Canada, Mark StoodleyIBM Canada
turbo-2018-tutorial
10:30 - 12:00: TURBO - Hands-on Tutorial 2 at Stuart
Chair(s): Robert YoungIBM, Canada
turbo-2018-tutorial10:30 - 12:00
Other
Robert YoungIBM, Canada, Leonardo BanderaliIBM Toronto Labs, Xiaoli LiangIBM Canada, Mark StoodleyIBM Canada, Daryl MaierIBM Canada
turbo-2018-tutorial
13:30 - 15:00: TURBO - Speakers 1 at Stuart
Chair(s): Daryl MaierIBM Canada
turbo-2018-tutorial13:30 - 14:00
Talk
Karim AliUniversity of Alberta
turbo-2018-tutorial14:00 - 14:30
Talk
turbo-2018-tutorial14:30 - 15:00
Talk
Scott YoungUniversity of New Brunswick
turbo-2018-tutorial
15:30 - 17:00: TURBO - Speakers 2 at Stuart
Chair(s): Mark StoodleyIBM Canada
turbo-2018-tutorial15:30 - 17:00
Other
Mark StoodleyIBM Canada