Webassembly何时将支持所有基本数据类型?

时间:2019-12-02 11:32:59

标签: webassembly

wasm何时将支持Strings, Array, bool等所有数据类型。

我可以在doc数据类型中看到仅支持i32,i64,f32,f64 https://github.com/WebAssembly/design/blob/master/Semantics.md#types

什么时候可以期望其他数据类型支持?正在做些什么?

1 个答案:

答案 0 :(得分:3)

很快就通过garbage collection proposal,但可能与您期望的不太一样!

WebAssembly是一种相对低级的语言和虚拟机,比诸如JavaScript之类的高级语言更接近真实的CPU。结果,它仅支持一些数字类型。这可以通过几种不同的方式进行扩展:

  • 一个是reference types上正在进行的工作,它允许WebAssembly保留对由主机创建的对象的引用,例如对JavaScript对象的引用。
  • 另一个是垃圾收集提议,但是该提议指出它将具有低级数据表示类型,而不是高级语言类型或对象模型

所有这些并不意味着编译为WebAssembly的语言不能支持更复杂的数据类型,例如字符串,结构和数组-实际上,您会发现C#,AssemblyScript和Rust都支持丰富的类型系统,而编译为WebAssembly。