• 慌慌张张
    2020-10-20
    老师您好,请教一个问题。我们一般都是把c或者c++直接编译成wasm,只要native通了,wasm也没问题。那么出现wat得意义在哪里?貌似不需要通过wat来调试之类的……

    作者回复: 其实就如同 WAT 的字面意思,这种格式就是为了能够以更加方便的形式来阅读 Wasm 字节码的内容。因为并不是所有的 Wasm 字节码都有其对应的源代码。对于一些特殊情况,我们可以直接人工编写 WAT 代码然后编译的字节码使用。

    共 2 条评论
    6
  • weineel
    2020-10-02
    感觉 Flat-WAT,比 WAT 看着好懂,为啥不直接只用 Flat-WAT?

    作者回复: 这个主要是由于对“S-表达式”这种代码表达方式的选择。而为什么选择“S-表达式”则是由于几个因素的考虑:1、尽量不自行创建新的格式,而是直接利用已有的成熟的格式;2、这种格式可以“转换”为方便人们阅读的形式;3、这种格式可以表达 Wasm 模块的内部结构,与字节码一一对应。综上,核心团队选择了“S-表达式”。而对于编译器和工具来说,这种“S-表达式”可以被现有的很对代码实现直接解析和使用,不用重新造轮子,减轻了 Wasm 早期发展时的难度和负担。而同时“S-表达式”也可以被转换为对应的“Linear Representation”的形式,也就是“Flat-WAT”的格式。所以因果关系是先有的“S-表达式”形式的 WAT,才有的对应的 Flat-WAT。

    
    3
  • 军秋
    2020-09-26
    老师能在浏览器中像调试js一样调试wasm的C代码吗?(浏览器source中显示C代码,断点单步调试?)我自己尝试了一些方法还没成功

    作者回复: 可以的,具体可以参考这篇文章:https://developers.google.com/web/updates/2019/12/webassembly。我在后面实践篇的文章中也会介绍哈。

    
    2
  • Running
    2022-05-21
    因为最近工作涉及到一些WASM,及时购买了这个课程恶补基础,很好的一门课程。最近遇到一点技术问题想请教一下于老师,Chrome Web Store要求新上架的应用需要支持Manifest V3, 由于应用有部分代码是使用C语言实现的,编译成WASM,那么问题是WASM 在支持 Manifest V3 遇到了加载的问题。 在Manifest V2使用CSP unsafe-eval 是可以运行的,但是V3 已经禁止了eval运行。 https://bugs.chromium.org/p/chromium/issues/detail?id=1173354#c19 于老师,对于这个问题有什么建议吗?这个问题困扰了好久

    作者回复: 抱歉,Manifest V3 这块我不太了解,可以在 StackOverflow 上问问看呢?

    
    1
  • 纳兰容若
    2022-05-20
    老师您好 有个问题请教一下: 正文中 “经过编译和转换后,该函数对应的 WAT 文本代码如下所示。”下面的wat代码,我使用WABT中的wat-desugar进行flat时候出现错误: ASM/test.wat:8:6: error: unexpected token "get_local", expected an expr. ../../WASM/test.wat:11:4: error: unexpected token set_local. ../../WASM/test.wat:15:4: error: unexpected token (, expected ). ../../WASM/test.wat:15:5: error: unexpected token set_local. ../../WASM/test.wat:17:7: error: unexpected token "get_local", expected an expr. ../../WASM/test.wat:18:7: error: unexpected token get_local. ../../WASM/test.wat:21:5: error: unexpected token set_local. ../../WASM/test.wat:22:6: error: unexpected token tee_local. ../../WASM/test.wat:24:8: error: unexpected token "get_local", expected an expr. ../../WASM/test.wat:27:5: error: unexpected token ), expected EOF. 这个是什么原因呢 是我的wabt安装的不正确么
    展开

    作者回复: 是用什么编译的呢?

    
    
  • Clearly
    2021-12-20
    老师那个给的演示地址,查看对应生成的 WAT 可读文本代码,怎么用啊,一直在build状态

    作者回复: 你是说 WasmFiddle 吗?这个工具在输好左侧的代码后,点击上面的 Build 然后再点击 Run 就可以了。我刚刚试了一下是 ok 的,可以看下是不是有网络问题哈。

    
    
  • Jason
    2020-09-17
    老师的原理讲解很细致,受益匪浅,以前自认为自己了解了 wasm,课程看到此意识到自己所知甚少。谢谢于老师的讲解,期待于航老师的实战讲解!

    作者回复: 很高兴能够对你有帮助!

    
    
  • Bachue Zhou
    2023-05-04 来自上海
    wat 代码里出现了多次 255 立即数,请问是用来做什么的?按理说 i32 的最大值也不是 255 吧。
    
    