V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Mohanson
V2EX  ›  程序员

最近在写 WebAssembly 虚拟机

  •  
  •   Mohanson · 2018-12-25 23:50:58 +08:00 · 8901 次点击
    这是一个创建于 2163 天前的主题,其中的信息可能已经有所发展或是发生改变。

    上周开了个新坑, 使用 Pure Python 实现了 WebAssembly 虚拟机, 已经(部分)能跑用 c/c++ 编译出来的 WebAssembly 代码了阿鲁.

    希望能在这周写完. 测试也是个头疼的活.

    目测完成度 55% 左右.

    项目链接: https://github.com/mohanson/py-wasmi

    等这个项目做完, 又能水文章了好开心阿鲁.

    第 1 条附言  ·  2018-12-26 18:14:32 +08:00
    已经写完大部分指令集, 正在写条件控制, 完成率 70%
    第 2 条附言  ·  2018-12-30 19:05:08 +08:00
    老铁们, 终于写完了(自认为), 现在还未加完整测试, 元旦后再加, 这几天先玩会我的劳拉小姐姐.

    太 OJB 累了, 肝了 5 天, 休息休息一下.
    第 3 条附言  ·  2019-01-02 21:25:26 +08:00
    MVP 版本 release 了: https://www.v2ex.com/t/523261
    23 条回复    2018-12-30 19:08:20 +08:00
    lxml
        1
    lxml  
       2018-12-26 02:31:37 +08:00 via Android
    感觉用 python 写有点坑啊,现在这种底层的都流行用 rust 来搞
    yech1990
        2
    yech1990  
       2018-12-26 02:45:31 +08:00 via Android
    一屏幕的 if 看得脑瓜疼😥
    Mohanson
        3
    Mohanson  
    OP
       2018-12-26 08:25:12 +08:00 via Android
    @yec 之后应该会把 if 里面的逻辑都扔数组里面,现在代码比较乱
    Mohanson
        4
    Mohanson  
    OP
       2018-12-26 08:38:02 +08:00 via Android   ❤️ 1
    @lxml 最近刚用 rust 写完了 evm 虚拟机,
    Mohanson
        5
    Mohanson  
    OP
       2018-12-26 08:40:07 +08:00 via Android
    @lxml wasm 比较复杂,先用 python 撸起来 笑脸 evm 在这里 https://github.com/cryptape/cita-vm
    atonku
        6
    atonku  
       2018-12-26 08:44:44 +08:00   ❤️ 2
    虽然不知道你们在说些什么,但是微笑就对了
    byteli
        7
    byteli  
       2018-12-26 09:17:58 +08:00 via Android
    mark,有时间看看怎么测试的
    dabaibai
        8
    dabaibai  
       2018-12-26 10:38:20 +08:00
    python 写的? 用 C 写更好吧
    Mohanson
        9
    Mohanson  
    OP
       2018-12-26 11:20:23 +08:00
    @dabaibai 用 py 是想最快速地完成 wasm 虚拟机, 快速试错, 上来就 c 太麻烦了. 性能可以以后再考虑.
    hanxiV2EX
        10
    hanxiV2EX  
       2018-12-26 11:22:24 +08:00 via Android
    都好牛逼
    tengshe789
        11
    tengshe789  
       2018-12-26 11:25:21 +08:00 via Android
    浓浓的神乐画面感🤐
    swchzq
        12
    swchzq  
       2018-12-26 11:30:29 +08:00   ❤️ 1
    666, 正想找个好修改的 wasm 虚拟机来做 wasm 动态逆向分析
    Mohanson
        13
    Mohanson  
    OP
       2018-12-26 11:55:09 +08:00
    @swchzq 666 加个好友, 有问题可以交流下 cXE6NTI2MDk5ODEy
    Mohanson
        14
    Mohanson  
    OP
       2018-12-26 11:59:59 +08:00
    @swchzq go-interpreter/wagon, paritytech/wasmi 都不错
    vicvinc
        15
    vicvinc  
       2018-12-26 12:41:25 +08:00
    这两天在想要是在 webkit 上直接支持 wasm 会咋样
    vicvinc
        16
    vicvinc  
       2018-12-26 12:59:47 +08:00
    好像已经支持了(🤦‍♂️

    ```We ’ re pleased to announce that WebKit has a full WebAssembly implementation.```

    https://webkit.org/blog/7691/webassembly/
    qiushijie
        17
    qiushijie  
       2018-12-26 13:43:22 +08:00 via Android
    我想写一个 c 版本的
    janxin
        18
    janxin  
       2018-12-26 14:16:30 +08:00
    Rust 起码有两个的 wasm 虚拟机了吧...python 的似乎也有好几个了...

    不过 wasm 现在使用起来还是有很多限制,起码在我们的使用场景里面暂时还不能用

    什么时候能原生操作 dom 了再说吧
    Mohanson
        19
    Mohanson  
    OP
       2018-12-26 14:26:45 +08:00   ❤️ 1
    @janxin Pure Python 的目前还没有. 写轮子可以边学边开心, 不自己动手就只能永远停留在 "我觉得这个技术 xxxx" 的范围.
    Mohanson
        20
    Mohanson  
    OP
       2018-12-26 14:28:48 +08:00
    @qiushijie 搞起搞起
    janxin
        21
    janxin  
       2018-12-26 14:31:01 +08:00
    @Mohanson https://github.com/kanaka/warpy 这个应该算吧?

    有时间自然是很不错的,不过我这边确实这个优先级很低罢了
    janxin
        22
    janxin  
       2018-12-26 14:31:59 +08:00
    仔细想象我说的不是虚拟机,嗯。。。
    Mohanson
        23
    Mohanson  
    OP
       2018-12-30 19:08:20 +08:00
    肝完啦老铁们~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1438 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 114ms · UTC 23:48 · PVG 07:48 · LAX 15:48 · JFK 18:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.