Parent: #1090
Requested assignee: @andrewtdiz
Problem
Generic JSValue scanning makes GC inspect too much memory, especially for numeric arrays, typed object fields, and pointer-free data.
Context
Add layout descriptors and pointer masks for heap objects where Perry has enough type or shape information. Useful targets include packed numeric arrays, typed object fields, closure capture masks, pointer-free layouts, and mixed pointer/non-pointer object shapes.
This should let GC skip raw numeric fields and scan only pointer-bearing slots.
Verification
- Trace counters show fewer scanned slots for numeric-heavy and typed-object workloads
- Correctness tests cover mixed pointer/non-pointer layouts
- Numeric array/object benchmarks improve or stay flat
- Existing runtime and memory-stability suites pass
Parent: #1090
Requested assignee: @andrewtdiz
Problem
Generic JSValue scanning makes GC inspect too much memory, especially for numeric arrays, typed object fields, and pointer-free data.
Context
Add layout descriptors and pointer masks for heap objects where Perry has enough type or shape information. Useful targets include packed numeric arrays, typed object fields, closure capture masks, pointer-free layouts, and mixed pointer/non-pointer object shapes.
This should let GC skip raw numeric fields and scan only pointer-bearing slots.
Verification