Use the checked-in dependency pins when investigating behavior. Links to
upstream main show current upstream work, not necessarily this checkout's
semantics. The authority policy, including the sole CM-3 exception, is in
architecture §1.
The submodule pins the spec, executable reference, and WAST corpus used by this checkout. Its principal sources are:
| Source | Purpose |
|---|---|
| Explainer | Text format, types, validation, canonical interface names |
| Canonical ABI | Lift/lower, canonical options, built-ins, state rules |
| definitions.py | Executable semantic reference; use function names rather than line numbers |
| run_tests.py | Reference tests; diff.py compares reference and prose |
| Binary format | Component binary encoding |
| Concurrency | Tasks, streams, futures, and concurrency model |
| WIT | Interface language |
| Linking | Shared-nothing linking |
| WAST suite | Official test corpus |
Current upstream sources are at WebAssembly/component-model. The Component Model book is introductory documentation, not the semantic tie-breaker. Local discrepancies belong in upstream-component-model-repo-findings.md.
- JSPI overview:
promising,Suspending, and the restriction on intervening JS frames. - V8 JSPI introduction.
- WebAssembly feature matrix: useful context; project coverage is recorded in architecture §3, browser expectations, and shell expectations.
- Shell pins: exact tested shell/runtime builds.
- V8 wasm code caching: published engine policy, not a portable cache guarantee. See architecture §10.
- Stack-switching proposal: related core-wasm work, not polyengine's current scheduling mechanism.
The revision is declared in Cargo.toml and resolved in Cargo.lock. Update source links with the pin.
- Environ at the pinned revision:
component translation and plan structures under
component/; fused adapter generation infact.rsandfact/. - Adapter translation: how component linkage is translated into FACT adapters.
- Component-model tests at the same revision: supplementary reference material, not a corpus executed by the current project gates or an independent check of the reused frontend.
Cargo.toml and Cargo.lock govern the host toolchain; individual guest crates pin their own dependencies (for example, hello). The wasm-tools release train must agree with the wasmtime frontend.
- wasm-tools: CLI and
libraries, including
wasmparser,wasm-encoder,wit-parser,wast, andjson-from-wast. - wasmparser: parsing and validation.
- wasm-encoder: core and component binary generation.
- wit-parser: bindgen's WIT input.
- wast: WAST parsing; use the version in the lockfile.
- json-from-wast: testgen's JSON-command and wasm-artifact conversion.
- wit-bindgen and its
pinned 0.60.0
generate!documentation: guest bindings, distinct from polyengine's host-facingcrates/bindgen.
- WebIDL
USVStringandString.prototype.toWellFormed: lone-surrogate replacement during string lowering. TextEncoder.encode: the current non-ASCII UTF-8 lowering path inruntime/src/cabi/strings.ts.- Encoding labels:
TextDecoder("latin1")means Windows-1252, not the CABI's latin1 mapping. FinalizationRegistry: nondeterministic resource backstop, not guaranteed cleanup.- Explicit resource management:
usingandSymbol.dispose. - WebAssembly JS API.
- Deno documentation.
For deployment authority and cache trust, see security.md.