JVM Language Summit 2015
2015-08-10..2015-08-12
Santa Clara, United States
[JVM Language Summit 2012, JVM Language Summit 2015, JVM Language Summit 2017, JVM Language Summit 2018, JVM Language Summit 2019, JVM Language Summit 2023, JVM Language Summit 2024, JVM Language Summit 2025]
who it's for
vm engineers, language implementers, compiler writers, runtime and tooling engineers, performance engineers, library and framework authors
topics
sun.misc.Unsafe migration; variable handles and intrinsics; V-load V-store bytecodes; array interfaces for off-heap; packed/value object layouts; layout descriptor language; compiler-as-database (Dotty); J9 serviceability and diagnostics; resource tracking per-context; bytecode instrumentation coverage agent; ahead-of-time JVM compilation; java.lang.invoke lambda form optimizations
| title | author | length |
|---|---|---|
| The Secret History and Tragic Fate of sun.misc.Unsafe | Mark Reinhold | 18m |
Chronicles why sun.misc.Unsafe exists, lists concrete uses (reflection rewrite in Java 1.4, direct buffers, JSR‑166 atomic/park/unpark, BigInteger speedups… | ||
| Safety first | Paul Sandoz | 39m |
Details a concrete strategy to replace Unsafe for atomic and memory-layout use cases by introducing variable handles, an array mismatch intrinsic and… | ||
| New Bytecodes, New Objects | John Rose | 55m |
Argues for shrinking JVM bytecode surface by replacing type prefixes with a single V-load/V-store “any” model, prototyping array interfaces parameterized by… | ||
| Compilers are Databases | Martin Odersky | 01h 09m |
A new compiler backend called Dotty rethinks Scala compilation as a time‑indexed, functional database: every value (signatures, denotations) is keyed by… | ||
| The future is native | Dan Heidinga | 49m |
Packed objects prototype shows a concrete encoding: objects become (target+offset) headers so Java can map on‑heap or native structs, with examples of hash… | ||
| Serviceability in J9 | Bjorn Vardal | 53m |
J9 exposes fine-grained knobs (force JIT on/off, set invocation thresholds, limit compilation threads) plus GC and VM options to change one factor at a time… | ||
| Resource Tracking Techniques | Roger Riggs | 32m |
Adds a mechanism-only resource tracking system to the Oracle JDK (implemented in 8u40) that records opens, bytes, threads, CPU samples and retained heap per… | ||
| Code Coverage Instrumentation | Eirik Bjorsnos | 50m |
Builds a live JVM agent (Sky Bar, revok, ning, dogmatic MVC examples) that instruments bytecode to count exact line executions and shows counts over… | ||
| Adventures on the Road to Valhalla | Brian Goetz | 49m |
Prototype implements generics over primitives by keeping erased class files plus a specializer that uses a bytecode-mapping attribute and name-mangled… | ||
| Multi-Language Runtime | Mark Stoodley | 47m |
IBM refactors the J9 VM into a language‑agnostic toolkit and threads components—allocator, Health Center tracing, J9 garbage collector and the Testarossa… | ||
| Hybrid Memory Management | Christian Wimmer | 52m |
A Substrate-style VM implements region-based allocation atop an AOT compiler and simple runtime: methods mark region entry/exit, per-thread region buffers… | ||
| State of java.lang.invoke | Vladimir Ivanov | 01h 10m |
Java 8u40 replaces the old method‑handle IR with Lambda forms and adds Lambda form sharing, cutting the number of Lambda forms from millions to thousands and… | ||
| VM Design Choices | Cliff Click | 01h 02m |
HotSpot evolves from a single-threaded Self port into a complex VM where choices matter: an untrusted JNI call costs ~40–50 instructions because of handle… | ||
| JyNi | Stefan Richthofter | 52m |
A JNI-based layer called JyNi makes original CPython C extensions usable from Jython by pretending to be CPython to extensions and by exposing a Java-backed… | ||
| Java Goes AOT | Christian Thalinger | 41m |
An experimental AOT pipeline compiles java.base into shared libraries on Linux x86_64 using Graal as the compiler and libelf to produce ELF shared objects… | ||
| Jinq: LINQ-style Queries in Java | Ming-Yee lu | 21m |
A Java library implements LINQ-style queries for Java 8 by translating lambda expressions into SQL at runtime, claiming no compiler or VM changes and relying… | ||
| Flexible Types in Kotlin | Andrey Breslav | 42m |
Kotlin adds platform types to bridge JVM interop, treating Java types as a pair of narrow/wide bounds so the compiler lets risky calls compile and defers… | ||
| Nashorn for Java 9 | Marcus Lagergren | 57m |
Nashorn for Java 9 replaces eager bytecode emission with a lightweight interpreter that collects type profiles and triggers JIT only on hot paths, keeping… | ||
| nothing matches | ||