What the JVM needs

From JVMLangSummit
Revision as of 11:43, 28 July 2010 by Jrose (talk | contribs)
Jump to navigationJump to search

Notes from Rich Hickey's workshop

user mode limitations

  • please optimize this
  • fences
  • 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


  • fixnums
  • 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?

storage management

  • 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