open-standards/wai/wai-int-module/Cargo.toml
Transaction Science 98d646dc92 wai-int-module: the first WA²ISM module of record, the operator-set module held at the integer level on every engine
wai/wai-int-module is one WebAssembly module with the interface of waism §5 and nothing else:
no import, one memory with a declared maximum, and every allocation trapping where memory
cannot grow (R13). It decodes the integer payloads (WIV1, WIH1, WIA1, WIS1), int_synth,
int_mlicpp, opus.dred.int and avatar.face through wai-rs's integer decoders, whose networks
run on wai-ops/1; networks and weights arrive as each capability's set.

- record/: the scalar and SIMD128 builds (7,099 vector instructions), named by SHA-256 in
  manifest.json, each held at the integer level by the Rust checker and check-module.mjs.
  build.sh builds both with the machine's paths remapped and checks both with both checkers.
  A build on another host has other bytes (the compiler's crate hashes take in each path
  dependency's absolute path and the host) and gives every case the same outcome.
- corpus.json (corpus.py): every committed vector and refusal fixture of those
  capabilities, 120 cases, from the committed corpora.
- host/ (wasmtime 50.0.1 Cranelift and Winch, Wasmi 2.0.0 with floats off), run-node.mjs and
  browser/run-browser.mjs run every case as a sink does and print one run digest; every run,
  on Linux x86_64, Linux arm64 and macOS arm64, gives the same.
- plant.py plants a float or a relaxed vector instruction in a module, for the checkers.
- waism §5, The set: one file as its bytes, several as their file sequence. avatars §6 names
  generator.wfg and identity.wfi; avatars §7.8, opus-dred §4.8 and determinism-tiers §5 state
  the module as a fabric.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-08 16:45:56 -05:00

38 lines
1.8 KiB
TOML

# The first module of record of WAISM's integer level (`extensions/waism.md`, `waism/1-int`):
# the operator-set module. One WebAssembly module, the ABI of waism §5 and nothing else,
# that decodes every integer capability `wai-rs` decodes through the integer operator set
# (`wai-ops/1`): the integer payloads (`WIV1`, `WIH1`, `WIA1`, `WIS1`), the integer
# synthesis, the multi-reference image codec, DRED decoded exactly, and faces from
# keypoints. The networks and their weights are not in the module: each arrives as the
# capability's parameter set, data the sink holds to its digest, so one checked module
# serves every one of these capabilities.
#
# Built for `wasm32-unknown-unknown` by `build.sh`, twice: scalar, and with SIMD128 (the
# same source, which the compiler lowers to WebAssembly's integer vector instructions where
# it can). Both checkers of the profile (`../wai-module-check`) must hold each at the
# integer level, and `record/` keeps the two modules of record.
[package]
name = "wai-int-module"
version = "0.1.0"
edition = "2024"
license = "Apache-2.0"
publish = false
[lib]
crate-type = ["cdylib"]
path = "src/lib.rs"
[dependencies]
# The integer decoders and nothing else of the crate: no codec library, no ONNX runtime,
# no filesystem. `video_int`, `audio_int` and `splat_int` bring `neural_int` (the operator
# set, the payload formats, `int_synth` and `int_mlicpp`); `dred_exact` and `avatar_face`
# the two capabilities that decode through `wai-ops` graphs of their own lowerings.
wai = { path = "../wai-rs", default-features = false, features = ["video_int", "audio_int", "splat_int", "dred_exact", "avatar_face"] }
sha2 = "0.10"
[profile.release]
debug = false
# One codegen unit and fat LTO: the linker keeps only what the six exports reach.
codegen-units = 1
lto = "fat"
panic = "abort"