Overview
Syllabus
Intro
Method Handles in JDK 7: The Good
Method Handles in JDK 7: Not-so-good
Method Handles in JDK 7: The Ugly
Rendering MHs to bytecodes (JDK 7)
Bytecode rendering only for constants
JVM Entanglement
JVM Dis-entanglement
Key IR requirements
Inspiration
Lambda Form IR (in one page)
LF type system
What's in a Name?
Lambda Form Execution
Lambda Form AST interpreter
Lazy Method Handle interpretation
Example 1: swap arguments
Bound Method Handles
Example 1B: swap arguments
Example 2B: return a constant value
Direct Method Handles
Direct Method Handle "Linkers"
call a regular method
Metacircularity (bootstrapping)
Bytecode call sites for JSR 292
Linking MH. invokeExact
Linking invokedynamic
function composition
Status
Future work
Taught by
Java