WABT 是否提供对 WebAssembly 垃圾回收 (WasmGC) 的完整支持?

Does WABT provide complete support for WebAssembly Garbage Collection (WasmGC)?

提问人:Troels Lund 提问时间:11/17/2023 更新时间:11/17/2023 访问量:24

问:

我可以看到wat2wasm确实有启用“gc”的选项,但是在运行此示例时(启用了所有功能):

(module
  (type $Node (struct (field $next (ref null $Node)) (field $value (mut i32))))

  (global $global (mut (ref null $Node)) (ref.null $Node))

  (export "global" (global $global))

  (export "_start" (func $_start))

  (func $_start
    (local $i i32)
    (loop $loop
      (global.set $global
        (struct.new $Node
          (global.get $global)
          (local.get $i)
        )
      )
      (local.set $i
        (i32.add
          (local.get $i)
          (i32.const 1)
        )
      )
    
      (br_if $loop
        (i32.le_u
          (local.get $i)
          (i32.const 1000)
        )
      )
    )

  )
)

我收到此错误:

Error: parseWat failed:
test.wast:2:41: error: unexpected token "null", expected a numeric index or a name (e.g. 12 or $foo).
  (type $Node (struct (field $next (ref null $Node)) (field $value (mut i32))))

它确实可以在 **binaryen **wasm-as 中工作,但这对我没有帮助,因为我正在构建一个编译器,该编译器可以生成以线性编写风格编写的 WAT 程序。我依靠 wat2wasm 来生成二进制可执行文件,并希望利用 WasmGC。

有谁知道这是 wat2wasm 中的错误还是很快就会得到支持?

非常欢迎任何建议!:)

编译器构造 webassembly

评论


答: 暂无答案