Lambda Forms
summary
Hotspot refactors JSR 292 by replacing ad-hoc per-argument assembly stubs with a compact IR called lambda forms, moves most call-shuffling out of the VM into the JDK, and removes the brittle adapter method handles layer. The change deletes about 13,000 lines removed of VM code (net ~8,000 fewer), leaves a one‑page linker surface, and yields measurable wins—some workloads (tic‑tac‑toe example) run ~80% faster while class‑loader failures largely disappear.
AI-written summary · about
chapters (30)
- 0:00Intro
- 1:29Method Handles in JDK 7: The Good
- 2:55Method Handles in JDK 7: Not-so-good
- 4:19Method Handles in JDK 7: The Ugly
- 7:45Rendering MHs to bytecodes (JDK 7)
- 10:21Bytecode rendering only for constants
- 12:30JVM Entanglement
- 13:39JVM Dis-entanglement
- 15:36Key IR requirements
- 17:08Inspiration
- 19:02Lambda Form IR (in one page)
- 21:10LF type system
- 22:31What's in a Name?
- 23:53Lambda Form Execution
- 24:34Lambda Form AST interpreter
- 26:03Lazy Method Handle interpretation
- 28:41Example 1: swap arguments
- 29:59Bound Method Handles
- 30:31Example 1B: swap arguments
- 31:40Example 2B: return a constant value
- 31:54Direct Method Handles
- 32:59Direct Method Handle "Linkers"
- 35:08call a regular method
- 36:24Metacircularity (bootstrapping)
- 36:56Bytecode call sites for JSR 292
- 39:22Linking MH. invokeExact
- 40:19Linking invokedynamic
- 40:48function composition
- 41:53Status
- 42:34Future work








