You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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, TSan, and ASan evidence.
Current checkpoint
The numeric optimizer publishes immutable artifacts under owner leases, rejects stale compilation claims, polls the owner generation before entry and at every loop header, and side-exits exact state before bytecode checkpoint/trap work. 057a2ef adds a distinct instruction-level moving-GC safepoint: it publishes precise roots at a completed backedge and resumes after relocation without changing exact trap/checkpoint timing.
89fc073 adds exact poll/resume evidence for cooperative stop, expired watchdog, and shell-timeout trap requests: an optimized loop reconstructs before the boundary and bytecode services each request at step 1,024 in normal and TSan runs.
ad0b211 closes native entry while any statement-observation hook is installed, including already-published artifacts and active execution leases. Focused refusal proves zero native attempts and zero step consumption.
Calls and property effects now execute through the immutable runtime-operation ABI completed in #439, including exact exceptions, roots, and five-way finally dispatch. They intentionally do not yet publish speculative call-link or shape/property IC records. The next #433 slice follows guarded property lowering in #132 (and packed arrays in #133), then extends link-time revalidation, stop-window invalidation, and bounded retirement to real heap facts; fake counters and unused reset APIs remain out of scope.
Parent: #146
Blocks: #429
Depends on: #431, #432
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
Current checkpoint
The numeric optimizer publishes immutable artifacts under owner leases, rejects stale compilation claims, polls the owner generation before entry and at every loop header, and side-exits exact state before bytecode checkpoint/trap work. 057a2ef adds a distinct instruction-level moving-GC safepoint: it publishes precise roots at a completed backedge and resumes after relocation without changing exact trap/checkpoint timing.
89fc073 adds exact poll/resume evidence for cooperative stop, expired watchdog, and shell-timeout trap requests: an optimized loop reconstructs before the boundary and bytecode services each request at step 1,024 in normal and TSan runs.
ad0b211 closes native entry while any statement-observation hook is installed, including already-published artifacts and active execution leases. Focused refusal proves zero native attempts and zero step consumption.
Calls and property effects now execute through the immutable runtime-operation ABI completed in #439, including exact exceptions, roots, and five-way finally dispatch. They intentionally do not yet publish speculative call-link or shape/property IC records. The next #433 slice follows guarded property lowering in #132 (and packed arrays in #133), then extends link-time revalidation, stop-window invalidation, and bounded retirement to real heap facts; fake counters and unused reset APIs remain out of scope.