Parent: #142 Related: #263, #267, #300 Roadmap: #134
Implement the finished WebAssembly multi-memory proposal as an independently gated profile. The terminal Memory64 corpus exposed this as an ambient Core-3 dependency in imports.wast; it must not be hidden, conflated with Memory64, or reported as a Memory64 semantic failure.
Acceptance:
- Pin the exact proposal revision, dependencies, binary/text changes, and complete upstream inventory.
- Add an explicit feature gate and retain every memory index in decoding, validation, constant expressions, data segments, and instructions.
- Validate multiple defined/imported memories, address-type compatibility, index bounds, shared limits, and cross-memory operation typing with deterministic errors.
- Instantiate and execute independent memory stores, imports, exports, growth, bulk operations, traps, and JavaScript API identity without assuming memory zero.
- Cover mixed memory32/memory64 modules, failure-atomic allocation/linking, precise buffer lifetime, host limits, fuzzing, stress, leak checks, and supported-host sanitizers.
- Publish per-file upstream totals, reproduction, CI witnesses, and documentation without changing the default MVP profile.
Completion evidence
- Runtime and validation landed through
3cdb0b87; the profile remains disabled by default. - Failure-atomic lifecycle coverage landed in
96dbc0de; 32 mixed-memory stress cycles and 512-operation deterministic store fuzzing landed infe643630. 0fb0c069documents the focused normal, Linux TSan, and ReleaseSafe gates.- The pinned terminal inventory scores 829/829 commands across all 38 proposal files with zero failures, skips, or runner errors; README and detailed reproduction are published in
docs/wasm.md.