Closed
Description
現状wasmの仕様にu32
が存在すると記載しているが, 実際にはプリミティブ型は i32
i64
f32
f64
の4つしか無い. これはwasmではプリミティブ型で符号を区別せず, オペレータ側で符号を区別するというwasmの思想に由来する. オペレータの定義に u32
が利用されていたため, プリミティブ型にもu32
が存在するとすっかり勘違いしていた…
The types 𝗂𝟥𝟤 and 𝗂𝟨𝟦 classify 32 and 64 bit integers, respectively. Integers are not inherently signed or unsigned, their interpretation is determined by individual operations.
https://webassembly.github.io/spec/core/syntax/types.html#value-types
以下の内容を含むよう文章を変更したい.
- wasmは
i32
i64
f32
f64
の4つのプリミティブ型のみを持つこと - wasmからjsに値を渡した時に, どのように値が変換されるか
- wasmからjsに
i64
を渡すと, アサーションエラーが発生すること - rustのu32, i8, i128型など, wasmに対応する型が無いものは別の型に変更される