design-b D-1 gate: battery green scheduler-only; startModal import scrub + work log
Gate results (single battery, scheduler-only): wx app battery + asyncify + coroutine 363 passed / 3 skipped / 0 failed; full kicad suite 138 passed / 30 skipped / 1 failed — the one failure is the pre-existing local occ-probe glb case (predates D-1, unrelated). Post-gate scrubs: vestigial 'startModal' removed from ASYNCIFY_IMPORTS (tests/apps/Makefile.wasm) and env.startModal from scripts/common/asyncify-imports.txt (the import no longer exists in any wasm; both lists are boundary supersets so behavior is identical). Stale comment pointers to the deleted legacy modal machinery updated. Doc 20: D-1 work log added, status flipped to IN PROGRESS. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TEHGiiXMShNXbBr7gSJ7iz
This commit is contained in:
parent
de27ecf327
commit
d519ac89c0
5 changed files with 50 additions and 17 deletions
|
|
@ -61,14 +61,13 @@ CXXFLAGS += $(EH_FLAGS)
|
|||
# Base Emscripten flags (for all apps)
|
||||
# ASYNCIFY enables blocking modal dialogs (ShowModal waits for user)
|
||||
# ASYNCIFY_IMPORTS tells Emscripten which imported JS functions can unwind the stack
|
||||
# - startModal: for modal dialogs
|
||||
# - js_writeTextToClipboard, js_readTextFromClipboard, js_clipboardHasText, js_clearClipboard: for clipboard
|
||||
# - js_enumerateFonts: for font enumeration via Local Font Access API
|
||||
BASE_LDFLAGS = $(EH_FLAGS) -sALLOW_MEMORY_GROWTH -sERROR_ON_UNDEFINED_SYMBOLS=0 \
|
||||
-s "EXPORTED_RUNTIME_METHODS=['HEAPU8','HEAP8','HEAP32','ccall']" \
|
||||
-sASYNCIFY=1 \
|
||||
-sASYNCIFY_STACK_SIZE=65536 \
|
||||
-sASYNCIFY_IMPORTS=['startModal','js_writeTextToClipboard','js_readTextFromClipboard','js_clipboardHasText','js_clearClipboard','js_enumerateFonts']
|
||||
-sASYNCIFY_IMPORTS=['js_writeTextToClipboard','js_readTextFromClipboard','js_clipboardHasText','js_clearClipboard','js_enumerateFonts']
|
||||
|
||||
# LDFLAGS for non-GL apps (standalone tests)
|
||||
LDFLAGS_NOGL = $(DEBUG_LDFLAGS) $(BASE_LDFLAGS) $(WX_LDFLAGS_NOGL)
|
||||
|
|
@ -103,7 +102,7 @@ COROUTINE_BASE_LDFLAGS = $(EH_FLAGS) -sALLOW_MEMORY_GROWTH -sERROR_ON_UNDEFINED_
|
|||
-s "EXPORTED_RUNTIME_METHODS=['HEAPU8','HEAP8','HEAP32','ccall']" \
|
||||
-sASYNCIFY=1 \
|
||||
-sASYNCIFY_STACK_SIZE=65536 \
|
||||
-sASYNCIFY_IMPORTS=['startModal','js_writeTextToClipboard','js_readTextFromClipboard','js_clipboardHasText','js_clearClipboard','js_enumerateFonts','emscripten_fiber_swap']
|
||||
-sASYNCIFY_IMPORTS=['js_writeTextToClipboard','js_readTextFromClipboard','js_clipboardHasText','js_clearClipboard','js_enumerateFonts','emscripten_fiber_swap']
|
||||
LDFLAGS_COROUTINE = $(DEBUG_LDFLAGS) $(COROUTINE_BASE_LDFLAGS) $(WX_LDFLAGS_NOGL)
|
||||
|
||||
# The asyncify-races harness must match PRODUCTION asyncify semantics: the KiCad
|
||||
|
|
|
|||
|
|
@ -90,10 +90,12 @@ test.describe('Asyncify races — green targets (full shims)', () => {
|
|||
page,
|
||||
testLogger,
|
||||
}) => {
|
||||
// RED today: wx dialog.cpp keeps the modal resolver in a single slot
|
||||
// (Module._endModal = fn; delete after use), so with three nested modals
|
||||
// the middle EndModal resolves nothing and its ShowModal parks forever.
|
||||
// GREEN after the Stage-3 wx fix (LIFO resolver stack).
|
||||
// Historical red: the pre-scheduler wx dialog.cpp kept the modal resolver
|
||||
// in a single slot (Module._endModal), so with three nested modals the
|
||||
// middle EndModal resolved nothing and its ShowModal parked forever.
|
||||
// Green since the LIFO resolver semantics, now the scheduler wait
|
||||
// registry's per-kind stacks (doc 17 S4; legacy machinery deleted at
|
||||
// doc 20 D-1).
|
||||
await page.goto('/standalone/asyncify-races/races_test.html#only=modal_in_modal_in_modal');
|
||||
await tryLoadApp(page, 30000);
|
||||
|
||||
|
|
|
|||
|
|
@ -31,11 +31,10 @@ async function canvasCenter(page: Page): Promise<{ x: number; y: number }> {
|
|||
// very commit that dropped its expected-fail marker): the no-fp-index path
|
||||
// trips the crash-free gate below with "[wxWasm] modal event pump error -
|
||||
// cancelling modal: RuntimeError: index out of bounds" — the known
|
||||
// nested-modal-inside-doRewind asyncify pump limitation (see
|
||||
// wxwidgets/src/wasm/dialog.cpp startModal comment and
|
||||
// docs/features/ngspice-split/README.md "The editor side"). Needs the pump
|
||||
// crash fixed (or the chooser's modal flow kept off the nested-rewind path),
|
||||
// not a looser assertion.
|
||||
// nested-modal-inside-doRewind asyncify pump limitation (historical: the
|
||||
// legacy startModal pump was deleted at doc 20 D-1; modals are scheduler
|
||||
// waits now — re-evaluate against the scheduler runtime; see also
|
||||
// docs/features/ngspice-split/README.md "The editor side").
|
||||
test.skip('symbol chooser footprint selector populates and preview renders (eeschema)', async ({ page }) => {
|
||||
test.setTimeout(420000);
|
||||
const logs: string[] = [];
|
||||
|
|
|
|||
Loading…
Reference in a new issue