Skip to content

GC scanning: add layout descriptors and pointer masks #1096

Description

@andrewtdiz

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions