Toolchain: emsdk 6.0.6 (versions.sh; cache-hash keys on it). Build knob PCBJAM_ASYNC_BACKEND=jspi|asyncify: build-kicad-target.sh links editors with -sJSPI + -sJSPI_EXPORTS=@scripts/common/jspi-exports.txt + --pre-js jspi-scheduler.js (no DYNCALLS, no post-link asyncify pipeline); wx build stamps the backend and forces clean on flip or unknown provenance; docker/build.sh passes the knob, seeds the emscripten ports cache from the volume every launch, jspi postprocess = patch-env-shim only. scripts/common/shims/jspi-scheduler.js: the JSPI successor scheduler — token-wait registry, resume turnstile (one armed resume between engine re-entries, SP swaps only at microtask boundaries), green-region spill stacks (16-aligned tops), S1 embind mutator FIFO lane + parker wraps, S6 shutdown, libctx integration hooks (suspend/end/quarantine + g_current arm/clear), SuspendError attributor, lost-wake + stuck-window watchdogs, __wxWaitDump observability. Embind: PARKER registrations get emscripten::async() under PCBJAM_JSPI (wasm/bindings/pcbjam_async_policy.h). nanosleep yields route via the shim. Tests: tests/asyncify -> tests/jspi successor suite (jspi-stack red/green shadow-stack battery, jspi-coroutine MiniCoro harness, suspend-races semantic scenarios + __wxWaitDump books coherence); projects jspi-firefox/ jspi-chrome (asyncify-webkit retired — no JSPI in WebKit); unconditional Firefox JSPI pref; guard-beacons -> wait-beacons (+wxScheduler/libctxJspi families); Makefile.wasm links test apps against JSPI with the shim as a tracked link prerequisite. Web: WasmTool setRo await + __wxWaitDump forensics, open-flow contained promise, scheduler-shim.test.ts retargeted (8 green). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NDeBaKKhQztd8KiVtHuyXr
102 lines
2.4 KiB
Text
102 lines
2.4 KiB
Text
# Build directories
|
||
build/
|
||
build-*/
|
||
cmake-build-*/
|
||
|
||
# IDE
|
||
.idea/
|
||
.vscode/
|
||
*.swp
|
||
*.swo
|
||
*~
|
||
|
||
# Compiled objects
|
||
*.o
|
||
*.obj
|
||
*.a
|
||
*.so
|
||
*.dylib
|
||
*.dll
|
||
|
||
# WebAssembly output (but not Makefiles that end in .wasm)
|
||
*.wasm
|
||
!Makefile.wasm
|
||
*.js.map
|
||
*.wasm.map
|
||
|
||
# macOS
|
||
.DS_Store
|
||
|
||
# Emscripten cache
|
||
.emscripten_cache/
|
||
|
||
# Local emsdk installation (managed by scripts/setup-emsdk.sh)
|
||
/tools/emsdk/
|
||
|
||
# Clean clone for reproducible builds (generated by build-wxwidgets-wasm-clean.sh)
|
||
wxwidgets-clean/
|
||
|
||
# Test artifacts
|
||
/tests/node_modules/
|
||
/tests/playwright-report/
|
||
/tests/test-results/
|
||
/tests/pw-artifacts/
|
||
/tests/.test-port
|
||
/test-results/
|
||
/tests/apps/*.js
|
||
/tests/apps/*.html
|
||
/tests/apps/minimal_test.wasm
|
||
/tests/apps/standalone/*/*.js
|
||
/tests/apps/standalone/*/*.html
|
||
/tests/apps/standalone/*/*.wasm
|
||
/tests/apps/kicad/*.js
|
||
/tests/apps/kicad/*.wasm
|
||
# Demo board for the gerbview print test — provisioned at setup from
|
||
# site/public/gerber-demo/board (see tests/scripts/setup-kicad-wasm.sh), not committed.
|
||
/tests/apps/kicad/board/
|
||
|
||
# DOM-port test bundles (mirrored + built by scripts/build-wasm-test.sh --dom)
|
||
|
||
# Worktree-local canvas reference snapshot for regression gating (see
|
||
# features/wx-dom-port docs); derived from a local run, not a project asset
|
||
/tests/phase0-canvas-reference/
|
||
/tests/phase0-timestamp-noisy.txt
|
||
/tests/apps/kicad/*.tar.gz
|
||
!tests/apps/kicad/pcbnew.html
|
||
/tests/apps/gal-webgl/*.js
|
||
/tests/apps/gal-webgl/*.wasm
|
||
/tests/apps/3d-webgl/*.js
|
||
/tests/apps/3d-webgl/*.wasm
|
||
/temp/
|
||
*.log
|
||
*.tmp
|
||
output/
|
||
*.d
|
||
/tests/.test-port-coroutine
|
||
.playwright-mcp
|
||
.claude/worktrees/
|
||
|
||
# Feature patch scratch (generated by scripts/create-feature-patches.sh).
|
||
# Curated design docs live under docs/features/ and ARE committed.
|
||
/features/
|
||
|
||
# wasm-opt benchmark local artifacts. The harness scripts under scripts/bench/
|
||
# ARE committed; the fixtures/results (/bench) and the QEMU VM image
|
||
# (scripts/bench/vm) are local-only.
|
||
/bench/
|
||
/scripts/bench/vm/
|
||
|
||
# Temporary/disposable prebuilt WASM sets (native-EH + JS-EH × eeschema + pcbnew
|
||
# O1 builds) + the standalone perf harness, used to reproduce the runtime-perf
|
||
# comparison on demand. Large (~1 GB), never committed.
|
||
/benchmark-builds/
|
||
|
||
/tests/.test-port-asyncify
|
||
/memory/
|
||
|
||
# Wrangler (Cloudflare CLI) local state/cache — created when running R2 deploys.
|
||
.wrangler/
|
||
tests/.scratch/
|
||
*.o.stamp
|
||
tests/apps/standalone/*/stack_test*.mjs
|
||
tests/apps/standalone/*/coroutine_jspi_test*.mjs
|