X

曜彤.手记

随记,关于互联网技术、产品与创业

Recent Articles

WebAssembly - GC v1 Extension

本篇来看的提案是 - “GC v1 Extension”。该提案为 Wasm 提供了 v1 版垃圾回收机制(GC)的支持,相关概念的实现基于前述提案 “Reference Types” 以及 “Typed Function Reference”。WasmGC 是自 Wasm MVP 标准发布以来的一次重大更新,它为托管类编程语言(如 Kotlin、PHP 等)提供了可以直接利用宿主 GC 的能力。

WebAssembly - Threading

本篇来看的提案是 - “Threading”。该提案为 Wasm 提供了用于支持多线程处理的相关概念和指令,包括可以被多个模块实例共享的 “shared memory”;用于操作内存的原子指令;用于线程等待和唤醒的 `wait` 与 `notify` 指令;以及与内存序相关的 `fence` 指令等。Wasm 的多线程模型实现依赖于其所处的具体执行环境,比如在 Web 环境中,线程即对应 worker。

WebAssembly - Typed Function References

本篇来看的提案是 - “Typed Function References”,该提案在 “Reference Types” 提案的基础上为 funcref 增加了类型信息,使得基于引用的函数调用变得更加方便,同时也支持 GC 提案的正确实现。

WebAssembly - Multiple Memories

本篇来看的提案是 - “Multiple Memories”。该提案为 Wasm 提供了多内存段(memory section)支持。

WebAssembly - Extended Constant Expressions

本篇来看的提案是 - “Extended Constant Expressions”。该提案增加了更多可以应用在 Wasm 常量表达式中的常量指令。

WebAssembly - Tail Call Extension

本篇来看的提案是 - “Tail Call Extension”。尾递归优化(TCE)相信大家都很熟悉,这是一种常见的“递归转循环”优化,可以消除函数递归调用过程中产生的栈帧,以实现更快的计算过程。

WebAssembly - Relaxed SIMD

本篇来看的提案是 - “Relaxed SIMD”。今天要介绍的这个提案在原始 SIMD 提案的基础上又增加了若干指令,不同的是,这些指令根据执行引擎运行所在平台的不同,可能具有不确定(non-deterministic)的执行结果。

WebAssembly - 128-bit Packed SIMD Extension

今天来看的提案是 - “128-bit Packed SIMD Extension”。Wasm 在设计之初的一个重要目标就是提供 “near native” 的指令执行效率,而该提案则通过提供一组通用 Wasm SIMD 指令集,使得 Wasm 可以直接利用现代处理器上的硬件 SIMD 指令来执行更高效的并行算数运算。该能力被广泛应用于多媒体和游戏等领域。

WebAssembly - Bulk Memory Operations and Conditional Segment Initialization

今天来看的提案是 - “Bulk Memory Operations and Conditional Segment Initialization”。该提案提供了更高效的线性内存和 Table 操作指令(类似于某种 “super instruction”),以及针对两者的条件初始化能力。

WebAssembly - Reference Types

今天来看的提案是 - “Reference Types”。从标准上看,该提案主要新增了一种类型 externref,可用于在 Wasm 模块内引用宿主环境中的“不透明(opaque)”值类型,该类型既可作为普通的值类型,也可作为 WebAssembly Table(后简称 “table”)的元素类型。除此之外,提案还补充了用于操作 table 的更多指令,同时支持了多重 table。

See more? Please refer to the "Articles" page : )