• lisiur
    2021-01-12
    老师请教个问题哈,如果想开发一款自己的wasm运行时,大体思路是什么样的,有没有推荐的学习路径呀?

    作者回复: 如果只是写简单的解释器,其实可以直接按照 Spec 上的指令用 switch 的方式去逐个解释就可以。具体的实现模型也可以参考 Spec 上给出的抽象(https://webassembly.github.io/JS-BigInt-integration/core/exec/index.html)。更高性能的需要考虑一些 threading 的方法,同时考虑是否整合 JIT。这部分就没有具体的教程了,不过可以参考一些已有的实现,比如 LuaJIT、WABT 中提供的简易 Wasm 解释器等等。书籍的话市面上大部分都是介绍 JVM 的,手把手教学的也是比较少,相对好一些的可以参考《Advanced Design and Implementation of VMs》,虽然也是以 JVM 为背景,但对 VM 组成结构介绍的比较全面,可以有个初步了解。其他比如 GC 之类的就得单独学习了,比如《垃圾回收算法与实现》等等。JIT 可以参考 LLVM 给出的例子,整合起来会快很多。

    
    6
  • Xi
    2022-09-12 来自四川
    于老师,simd优化有那些学习资料可以推荐

    作者回复: 比如这个:https://www.codeproject.com/Articles/5298048/Using-SIMD-to-Optimize-x86-Assembly-Code-in-Array,可以 Google 上搜一搜,内容还是蛮多的。

    
    
  • 陶雅阁
    2022-07-05 来自上海
    老师请教一下,不同的语言被编译到wasm所对应的二进制字节码是否会有区别呢,或者说是优化程度的不同 另外像go语言运行时的垃圾回收是怎么处理的呢

    作者回复: 抱歉,回复晚了。是会有一定区别的,具体如何映射到字节码完全由对应语言编译器来决定。Go 语言会把 GC 也一起打包,用 Wasm 来实现,因此对应的字节码在执行时会有一定的运行时损耗。

    
    
  • 慌慌张张
    2020-10-29
    老师看到这,有一种all in wasm,感觉最后都是wasm都没问题的感觉。

    作者回复: 哈哈,作为编译目标确实可以这样讲。但虽然志在千里,也得着眼于实际。

    
    
  • 王超
    2020-10-27
    lucet和wasmtime合并了

    作者回复: 嗯嗯,看到了。感谢分享消息! “Combining the power of Lucet and Wasmtime exemplifies why the Bytecode Alliance formed: it specifically enables this kind of collaboration — aimed at making developers’ lives easier and powering trustworthy computation on the edge and beyond. ”

    
    
  • 一步
    2020-09-30
    字节码联盟是不是自家开发自家的wasn’t运行时,然后以后再外力的作用下,再一起选出来一个事实的标准?

    作者回复: 哈哈,这个应该不会的。字节码联盟旗下其实囊括了包含Intel在内的几家大型公司开发的Runtime,每个Runtime支持的特性和开发路径也都不尽相同。倒是没有“自家”这一说。大家对各个特性的开发也都是建立在Wasm和WASI标准基础之上的。

    
    
  • 201201132
    2022-09-17 来自广东
    SSVM更名成WasmEdge了
    
    1
  • 慌慌张张
    2020-10-29
    老师,请教一下,wasm可以用来前端加密嘛?我是这样想的,传统的js即使压缩后下载到本地其实也能看懂,但是wasm这种字节码应该看还是比较困难的,是不是可以应用在机密场景?
    共 2 条评论
    