pcbjam/.gitignore
Viktor Vaczi 3f09a46ff5 jspi: migration phases 0-7 — build knob, scheduler shim, test successor suite
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
2026-08-13 07:06:24 +02:00

102 lines
2.4 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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