@shapeshift-labs/frontier-lang-wasm
v0.1.0
Published
Runtime-neutral WebAssembly semantic merge and translation evidence for Frontier Lang.
Maintainers
Readme
@shapeshift-labs/frontier-lang-wasm
Runtime-neutral WebAssembly semantic merge and translation evidence for Frontier Lang.
This package scans WebAssembly text format (.wat) into source-bound records for modules, functions, imports, exports, memories, tables, globals, params, results, locals, instructions, host boundaries, and proof gaps. It can also hash binary .wasm inputs into fail-closed preservation evidence. It is designed for merge review and projection evidence. It does not compile WAT, decode .wasm binaries, validate stack typing, execute modules, prove host behavior, or claim binary/runtime equivalence.
import { createWasmSemanticMergeEvidence } from '@shapeshift-labs/frontier-lang-wasm';
const evidence = createWasmSemanticMergeEvidence(`
(module
(import "env" "log" (func $log (param i32)))
(memory (export "memory") 1)
(func $add (export "add") (param $a i32) (param $b i32) (result i32)
local.get $a
local.get $b
i32.add))
`, { sourcePath: 'math.wat' });
console.log(evidence.status); // "needs-review"
console.log(evidence.summary.functions); // 2
console.log(evidence.summary.imports); // 1What It Captures
- WAT source spans and stable semantic hashes
- module, type, function, import, export, memory, table, global, start, data, and element records
- params, results, locals, calls, branches, loads, stores, and memory/table instructions
- host import/export boundaries and runtime proof gaps
- binary preservation evidence with validation, WAT roundtrip, and source-map/debug-name gaps
- conservative semantic merge evidence with
autoMergeClaim,semanticEquivalenceClaim,binaryEquivalenceClaim, andruntimeEquivalenceClaimalways false
What Stays Above This Package
frontier-lang-wasm is evidence, not an execution engine. Binary decoding, WAT/binary roundtrip proof, wabt/wasm-tools validation, stack typing, source maps, DWARF/name-section recovery, host runtime tracing, fuel limits, memory/table alias proof, and final merge admission belong above this package.
High-level Frontier programs can lower toward Wasm-like targets, but the reverse path is evidence-limited unless source maps, debug names, host receipts, and runtime traces are attached. This package gives Frontier a place to record the low-level module boundary without pretending the module boundary is the whole program.
