What the JVM needs
From JVMLangSummitJump to navigationJump to search
Notes from Rich Hickey's workshop
user mode limitations
- please optimize this
- typestate: now immutable - especially arrays (typically encapsulated in non-writing header, a la java.lang.String)
- Why Tailcalls: as a guarantee, not just an optimization
- need a uniform entry/exit types (Object => boxing)
- Hacker's delight overflow detection is OK (only for add/sub); need a static method that throws overflow-exception?
- floating garbage foo(o, o=null); is tailcall a solution?
- 31-bit arrays
- 16-bit instructions
- static data structures (array literals)
- structs (efficient pointerless element selection)
- value types (no mutability, acmp-identity, id-hashcode, monitorenter)
- immutable arrays = array-like value types