Skip to content

WebAssembly reference values: add precise-GC externref slot substrate #274

Description

@chrisbbreuer

Parent: #271
Depends on: #262
Roadmap: #263, #142, #134

Replace the scalar-only Wasm value assumption with a typed reference-slot substrate that remains precise under ordinary, mid-script, and no-GIL collection.

Acceptance:

  • Represent null funcref, function references, and arbitrary externref values without pointer/tag ambiguity.
  • Publish live operand-stack, local, global, argument, and result reference edges to the existing precise collector.
  • Make slot copy/drop/frame unwind/trap paths update liveness failure-atomically.
  • Preserve reference identity across Wasm-to-Wasm and Wasm-to-JavaScript calls without permanently rooting dead values.
  • Add forced-GC and no-GIL stress tests proving live retention and exact reclamation after overwrite/drop/unwind.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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