https://webassembly.github.io/demo/ 说:“实现了完整的执行语义。”听起来 MVP 已经完成,但到底缺少什么,或者我做错了什么?

浪费:

(module
    (memory 1)

    (export "growMemory" $growMemory)
    (func $growMemory (param $0 i32) (result i32) (grow_memory (get_local $0)))

    (export "getMemorySize" $getMemorySize)
    (func $getMemorySize (result i32) (memory_size))
)

JS代码:
var xhr = new XMLHttpRequest();
xhr.open('GET', 'build/test.wasm', true);
xhr.responseType = 'arraybuffer';
xhr.onload = function() {
    var module = Wasm.instantiateModule(new Uint8Array(xhr.response));
    console.log(module.exports.getMemorySize());
    console.log(module.exports.growMemory(1));
    console.log(module.exports.getMemorySize());
};
xhr.send(null);

Chrome Canary 加载了 WASM 文件,但似乎没有实现增长内存:
65536
0
65536

Firefox Nightly 加载失败:
TypeError: wasm validation error at offset 124: bad expression code

此外,页面大小似乎是 0x10000 而不是 0x1000。但我在设计或规范中找不到它。

最佳答案

2017 年 3 月更新:

WebAssembly MVP 有 reached consensus :



当前的 webassembly.org 站点记录了在 MVP 之后要遵循的以下后续步骤:



2016 年 11 月更新:

目前有一个浏览器预览版,正在征求开发者的反馈。来自 webassembly.org :



原始答案:

我们同步了演示的浏览器之间的功能奇偶校验,并打算从现在开始同步更新所有浏览器 + 演示,朝着 MVP 迈进。

我们有一些目前有效的东西,但它并不稳定。当我们使用更大和更多样化的代码库时,我们希望能够解决问题,看看可以改进什么,并获得信心,即 MVP 后的功能将可以轻松实现。我们还希望开发人员提供反馈,以确保我们构建的内容可用!

它缺少一些功能,例如 Wasm JavaScript 对象的 API、内存和 Wasm 实例之间的指针共享。我们也没有确定二进制格式,目前最大的变化是后期排序,但还有很多较小的变化。

浏览器集成也缺乏:我们希望提供 View 源代码和一些调试支持。还有一些性能调整和大量的安全测试。

要跟踪这些问题,我建议查看 designspec 问题跟踪器。

关于你的具体问题,我们还没有完成 Chrome 中的 grow_memory。不过工作已经开始了。

关于webassembly - WebAssembly MVP 在浏览器中的现状,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36678553/

10-11 02:15