Arrays 2.0 - Opportunities and Challenges
summary
Proposes concrete JVM support for library-defined hybrid arrays with fused head-and-tail layout that let headers and packed element tails share a single dead-reckonable block, plus array pinning and chop (safe shrink) operations, memory fences for slice sharing, and template-instantiated classes backed by value types (via method-handle/bootstrap machinery) to avoid boxing. Claims gigabyte-scale contiguous chunks with transparent segmentation, improves cache-line locality, reduces GC pauses, and enables flat, C-like B-tree and string layouts.
AI-written summary · about
chapters (18)
- 0:00Intro
- 3:30Why we can't live without arrays
- 9:39Why arrays bother users
- 14:33Why arrays bother JVM implementors
- 20:46What Java coders say they want... (2)
- 25:57rank: what the JVM should provide
- 28:01bigness: what the JVM should provide
- 29:04resize: what the JVM should provide
- 30:10notation: what the JVM should provide
- 31:06layout: what the JVM should provide
- 35:57hybrid arrays in the VM
- 36:42sharing: what the JVM should provide
- 38:55flatness: what the JVM should provide
- 41:01What library types can define...
- 42:07More about operator overloading
- 45:07Hard problem: Type templating (2)
- 47:49Power tools: JSR 292
- 49:17Killer Use Cases for Arrays 2.0
related talks
55mNew Bytecodes, New Objects
23mApple Array Allocation
11mExtending the Scope of the Array Abstraction beyond Sparsity
01h 01mNative Code, Off-Heap Data and Java
51mBeyond ByteBuffers
45mProject Panama - Foreign Function & Memory API
19mCompiling Recurrences over Dense and Sparse Arrays
25mAn Array-Oriented Language via the Design Recipe
