Skip to content

(5) class objects: GC layout descriptor + leak/stress verification #1790

Description

@proggeramlug

Part of #1785. Design: #1772. Depends on #1786. Coordinate with #1090 / #1096 (@andrewtdiz).

(5) GC layout descriptor + leak/stress verification for class objects

Scope

Register a #1096 layout descriptor / pointer mask for the class object so GC scans it precisely: pointer-bearing slots = static-field slots + the static-prototype/parent link; scalar = class_id. Verify the class object moves correctly under evacuation and the #1095 copying nursery, and is collected when unreachable (the whole point vs. the integer-hack's permanent global-table leak).

Acceptance criteria

  • Creating N class objects in a loop and dropping them shows flat/bounded RSS (no per-evaluation leak) under GC stress.
  • PERRY_GC_VERIFY_EVACUATION=1 / forced-evacuate passes with class objects live.
  • Mixed pointer/scalar layout correctness test for the class object.
  • Coordinated with the GC overhaul owner so the descriptor + move semantics match the in-flight GC roadmap: make minor GC structurally cheap #1090 work.

Blocks

(6).

Metadata

Metadata

Assignees

No one assigned

    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