Webassembly 现在的能力和以后的能力

Tags
javascriptwasm
Created
May 8, 2018 10:01 AM

https://github.com/rust-lang/rust/tree/master/src/libstd/sys/wasm

现在基本就是 asm.js 的翻版:http://webassembly.org/docs/mvp/

  • WebAssembly 中的可分发,可加载和可执行的代码单元称为模块。
  • WebAssembly 代码在模块中的行为是根据结构化堆栈机器的指令指定的。
  • WebAssembly 二进制格式被设计为由 WebAssembly 实现本地解码,被指定为模块结构和代码的二进制编码。
  • WebAssembly 文本格式被设计为在使用工具(例如,汇编器,调试器,分析器)时被读取和写入,被指定为模块结构和代码的文本投影。
  • WebAssembly 旨在通过Web浏览器和完全不同的执行环境来实现。

Garbage collection // 让有 GC 高级语言(such as Dart or Kotlin)也能编译成 wasm

Fixed width SIMD/Relaxed SIMD

Exception handling

线程 // Worker + SharedArrayBuffer,C++ pthread,rust std::thread

  • https://developers.google.com/web/updates/2018/10/wasm-threads
  • https://rustwasm.github.io/2018/10/24/multithreading-rust-and-wasm.html

https://hacks.mozilla.org/2019/11/multi-value-all-the-wasm/

  • 加快访问 DOM 的速度 // 可以同时指定指针和长度
  • Wasm interface types // 直接在 wasm 中使用 js 对象
  • Wasm 实现 WebIDL // WebIDL 类型的 Wasm 表示
  • 0f9ad8fd5fd64cf8a164acd8c8ff71c6
    image

以后:http://webassembly.org/docs/future-features/

  • GEMM
  • JS Promise Integration
  • ESM 集成 // wasm 能直接导入 js 模块,类似 wasm-bindgen 使用 attributes 导入 js 内容
  • 。。。

https://webassembly.org/roadmap/

SuperMade with Super