#1679

Support WebAssembly SIMD instructions in ahead-of-time translation

Openjlucaso1opened 22d ago

Support WebAssembly SIMD in ahead-of-time translation. SIMD is currently outside the documented feature set and blocks the Rust WASM artifact shipped by @oxidezap/whatsapp-rust-bridge@0.26.0.

Reproduction

Use package.json with {"private":true,"type":"module"} and save as repro.ts:

const bytes = Buffer.from('AGFzbQEAAAABBAFgAAADAgEACgkBBwBBAP0PGgs=', 'base64')
console.log(WebAssembly.validate(bytes))
new WebAssembly.Module(bytes)
console.log('ok')

The module contains one SIMD instruction and no imports:

(module (func i32.const 0 i8x16.splat drop))
node repro.ts
node /path/to/scriptc/packages/cli/dist/main.js coverage repro.ts --print diagnostics

Node prints true and ok. Coverage exits 0 but classifies the module as:

{"status":"unsupported","features":["simd"],"unsupported":["simd"]}

Requested support

Translate SIMD instructions to native code. TRANSLATABLE in packages/compiler/src/wasm/binary.ts currently excludes simd.

#1617 and #1660 address rejection diagnostics. This request concerns translation support. #1395 introduced the initial WASM translation scope.

Recorded on Linux x86_64 with Node 24.19.0 and a source build reporting scriptc 0.4.0, at 0237d70df00475fa6251a432405070c43f2bc94c with #1660, #1656 and #1673 applied.

Activity

0

No activity yet.