design-b D-1a: retire the legacy-shim ablation builds + redundancy pins
Doc 20 D-1 (legacy runtime deletion), first slice: races_test_noheal / races_test_nosleepfix pinned behavior of the legacy handlesleep shim, which is being deleted — the pins now assert properties of a runtime that no longer exists. Drops the two Makefile.wasm link+inject variants (SHIM_DISABLE_TRAMPOLINE_HEAL / SHIM_DISABLE_HANDLESLEEP), the shim-redundancy pin specs in asyncify-races.spec.ts, and resolves the tests/README.md open task. The green battery still runs every scenario against the scheduler glue. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TEHGiiXMShNXbBr7gSJ7iz
This commit is contained in:
parent
e19ef6cf65
commit
e7b8c2725b
4 changed files with 23 additions and 113 deletions
|
|
@ -200,8 +200,6 @@ all: minimal_test.html \
|
|||
$(S)/coroutine/coroutine_test.html \
|
||||
$(S)/coroutine-nested/nested_test.html \
|
||||
$(S)/asyncify-races/races_test.html \
|
||||
$(S)/asyncify-races/races_test_noheal.html \
|
||||
$(S)/asyncify-races/races_test_nosleepfix.html \
|
||||
$(S)/coroutine-pthread/coroutine_test_wxpt.html \
|
||||
$(S)/coroutine-pthread/embind_repro.html \
|
||||
$(S)/coroutine-pthread/gl_repro.html \
|
||||
|
|
@ -747,9 +745,9 @@ $(S)/coroutine-nested/nested_test.html: $(S)/coroutine-nested/nested_test.o $(S)
|
|||
../../scripts/common/inject-dyncall-shims.sh $(basename $@).js
|
||||
|
||||
# Asyncify race-condition red-green harness (tests/asyncify/). Three variants of
|
||||
# the same app: full shims, trampoline-heal ablated, handleSleep-fix ablated.
|
||||
# The ablated builds keep the historical bugs reproducible (red) so the shim
|
||||
# fixes stay pinned by tests. Same .o, three link+inject passes.
|
||||
# (The trampoline-heal / handleSleep ablation variants — races_test_noheal /
|
||||
# races_test_nosleepfix — were retired at doc 20 D-1 together with the legacy
|
||||
# runtime they pinned.)
|
||||
$(S)/asyncify-races/races_test.o: $(S)/asyncify-races/races_test.cpp $(S)/coroutine/kicad_coroutine_harness.h
|
||||
$(CXX) -c $(CXXFLAGS) -I$(KICAD_ROOT)/thirdparty/libcontext -I$(S)/coroutine $< -o $@
|
||||
|
||||
|
|
@ -757,14 +755,6 @@ $(S)/asyncify-races/races_test.html: $(S)/asyncify-races/races_test.o $(S)/corou
|
|||
$(CXX) $^ $(LDFLAGS_RACES) --pre-js $(JS) --shell-file $(HTML) -o $@
|
||||
../../scripts/common/inject-dyncall-shims.sh $(basename $@).js
|
||||
|
||||
$(S)/asyncify-races/races_test_noheal.html: $(S)/asyncify-races/races_test.o $(S)/coroutine/libcontext.o $(WX_CORE_LIB)
|
||||
$(CXX) $^ $(LDFLAGS_RACES) --pre-js $(JS) --shell-file $(HTML) -o $@
|
||||
SHIM_DISABLE_TRAMPOLINE_HEAL=1 ../../scripts/common/inject-dyncall-shims.sh $(basename $@).js
|
||||
|
||||
$(S)/asyncify-races/races_test_nosleepfix.html: $(S)/asyncify-races/races_test.o $(S)/coroutine/libcontext.o $(WX_CORE_LIB)
|
||||
$(CXX) $^ $(LDFLAGS_RACES) --pre-js $(JS) --shell-file $(HTML) -o $@
|
||||
SHIM_DISABLE_HANDLESLEEP=1 ../../scripts/common/inject-dyncall-shims.sh $(basename $@).js
|
||||
|
||||
|
||||
# Convenience targets
|
||||
menu: $(S)/menu/menu_test.html
|
||||
|
|
@ -836,7 +826,7 @@ $(S)/retinascale/retinascale_test.html: $(S)/retinascale/retinascale_test.o $(WX
|
|||
retinascale: $(S)/retinascale/retinascale_test.html
|
||||
coroutine: $(S)/coroutine/coroutine_test.html
|
||||
coroutine-nested: $(S)/coroutine-nested/nested_test.html
|
||||
asyncify-races: $(S)/asyncify-races/races_test.html $(S)/asyncify-races/races_test_noheal.html $(S)/asyncify-races/races_test_nosleepfix.html
|
||||
asyncify-races: $(S)/asyncify-races/races_test.html
|
||||
|
||||
# Only delete generated app files (*_test*, *_repro*) — a bare $(S)/*/*.js would
|
||||
# also delete checked-in sources like coroutine-pthread/worker_dom_stub.js.
|
||||
|
|
|
|||
|
|
@ -411,9 +411,9 @@ private:
|
|||
|
||||
// ----- scenario 1: post_park_fiber_swap -------------------------------------
|
||||
// The KiCad hang topology. OnInit already did a fiber swap, so the park throw
|
||||
// went through the live trampoline. With the self-heal shim the guard was
|
||||
// reset and this swap works; with SHIM_DISABLE_TRAMPOLINE_HEAL=1 the guard is
|
||||
// stuck true, the Call() below never returns, and the watchdog fires.
|
||||
// went through the live trampoline. With the self-heal shim the guard is
|
||||
// reset and this swap works; historically (ablated heal, retired at doc 20
|
||||
// D-1) the guard stuck true, Call() never returned, and the watchdog fired.
|
||||
void Scenario_PostParkFiberSwap()
|
||||
{
|
||||
#ifdef __EMSCRIPTEN__
|
||||
|
|
@ -608,9 +608,9 @@ private:
|
|||
|
||||
// ----- scenario 5: long_parked_sleep_clobbered_by_swap ------------------------
|
||||
// The KiCad clipboard crash shape: a long-parked sleep crossed by complete
|
||||
// fiber-swap cycles on fresh stacks. With handlesleep.js the sleep's buffer
|
||||
// is restored at wakeUp; with SHIM_DISABLE_HANDLESLEEP=1 doRewind reads a
|
||||
// clobbered currData -> "index out of bounds".
|
||||
// fiber-swap cycles on fresh stacks. The scheduler shim restores the sleep's
|
||||
// buffer at wakeUp; historically (no save/restore, ablation retired at doc 20
|
||||
// D-1) doRewind read a clobbered currData -> "index out of bounds".
|
||||
void Scenario_LongParkedSleep()
|
||||
{
|
||||
#ifdef __EMSCRIPTEN__
|
||||
|
|
|
|||
Loading…
Reference in a new issue