Chrome 支持运行 Kotlin、Java 等 GC 编程语言,你知道了吗?

系统 浏览器
WasmGC ​是 WebAssembly 社区群组发布的一项提案。当前的 Wasm 最小可行化实现只能处理线性内存中的 number 类型数据,即整数和浮点数。随着引用类型 (reference types) 提案的发布,Wasm 还可以保留外部引用。

谷歌 Chrome 开发者博客官宣:Chrome 已默认启用 WebAssembly 垃圾回收 (WasmGC) 功能 —— 能够将具有 GC 的编程语言编译为 WebAssembly (Wasm)。

下面是示例代码

  • Kotlin Wasm
import kotlinx.browser.document
import kotlinx.dom.appendText
import org.w3c.dom.HTMLDivElement

fun main() {
    (document.getElementById("warning") as HTMLDivElement).style.display = "none"
    document.body?.appendText("Hello, ${greet()}!")
}

fun greet() = "world"

据介绍,WasmGC 是 WebAssembly 社区群组发布的一项提案。当前的 Wasm 最小可行化实现只能处理线性内存中的 number 类型数据,即整数和浮点数。随着引用类型 (reference types) 提案的发布,Wasm 还可以保留外部引用。

WasmGC 现在添加了结构体和数组堆类型,因此支持非线性内存分配。每个 WasmGC 对象都有固定的类型和结构,这使得虚拟机可以轻松生成有效的代码来访问其字段,而不会像 JavaScript 等动态语言那样存在去优化的风险。

因此,该提案通过结构和数组堆类型为 WebAssembly 增加了对高级托管语言的有效支持,使得针对 Wasm 的语言编译器能够与主机 VM 中的垃圾回收器集成。简单来说,通过 WasmGC,将编程语言移植到 Wasm 意味着编程语言的垃圾回收器不再需要成为移植的一部分,而是可以直接使用现有的垃圾回收器。

责任编辑:武晓燕 来源: OSCHINA
相关推荐

2025-01-15 00:00:00

存储整数集Roaring

2023-04-07 00:05:30

WebGPUAPIJavaScript

2022-10-31 10:03:03

2021-07-29 07:55:20

JavaScriptcatchthrow

2022-11-28 14:27:17

插入意向锁age

2023-10-28 09:00:03

进程系统服务

2022-02-21 09:00:08

数字签名验证

2016-09-27 19:53:25

IOS 10苹果

2022-04-01 08:48:45

JavaPythonRuby

2018-05-20 11:01:47

Siri语音助手手机

2023-05-26 14:07:00

数据库分布式RAC

2024-10-30 08:31:36

Next.js高效性能

2015-08-03 09:54:51

网页设计趋势

2023-05-26 07:55:06

分布式数据库SQL

2022-08-16 07:32:03

RestfulSOAPRPC

2024-06-26 11:29:54

2023-08-28 07:02:10

2019-06-05 15:20:00

MongoDBNoSQL数据库

2023-07-27 08:40:45

PawSQL数据库

2024-04-18 10:23:35

装饰器Python
点赞
收藏

51CTO技术栈公众号