Skip to content

JIT: make trap polling and optimized artifact lifetime concurrency-safe #433

Description

@chrisbbreuer

Parent: #146
Unblocked: #429
Depends on: #431, #432
Children: #454, #455, #456, #457
Related: #132, #133, #145

Implement concurrency-safe optimized trap polling, watchpoint invalidation, call/IC publication, and executable artifact retirement. No mutable optimizer record may be observed partially published or reclaimed while a compiler or mutator can still use it.

Acceptance

  • Model trap polls as invalidation points that clobber every heap fact rewritten by a stop window.
  • Publish shape/property/call IC records atomically and revalidate all advisory profiles/watchpoints at link time.
  • Implement code, call-link, handler-chain, and IC retirement with bounded epoch reclamation and GC accounting.
  • Serialize Class-A stop publication against shared-GC completion waits and prove bounded convergence.
  • Jettison dependent code before mutators resume; preserve resumable side exits and precise roots.
  • Pass writer/writer, reader/reset, poll/resume, GC-wait, memory-steady-state, no-GIL, and the supported Zig engine sanitizer matrix (TSan; Zig engine ASan is not exposed by the Zig 0.17 build).

Completion

fdb27940 introduced generation-scoped executable retirement, coherent call-link publication, epoch tokens, and byte/count accounting. 26ef6127/01306740 ordered Class-A invalidation with shared collection; #457 supplied exact inherited-property watchpoints. 4dfc2aca, aa99feb2, and 821a5242 promoted the remaining writer, trap, and stale-base corpus witnesses with nonzero optimizer evidence.

Final gate ead94ad8: complete test-jit passes 175/175 normally and 175/175 under TSan, both with zero leaks. The checked-in closure record is docs/.data/jit-concurrency-2026-07-22.md.

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