6 ms·
That project does look really fun! I can't tell if that is pulling V8 in as the WASM interpreter or not. Obviously, I would prefer that they leave others in th
by coder543 6y ago
That project does look really fun!
I can't tell if that is pulling V8 in as the WASM interpreter or not. Obviously, I would prefer that they leave others in the dust without having to pull in a huge C++ codebase, but it still sounds promising either way!
- nahuel0x 6y agoThere is no V8 here, you don't need a JS VM to run WASM. It uses wasmer, a Rust based WASM VM: https://github.com/wasmerio/wasmer https://github.com/wasmerio/wasmer
- coder543 6y agoAwesome! I had heard of wasmer before, but I didn't realize its performance was that good yet. I'll definitely be paying closer attention to this space now. Although, on closer inspection it seems like wasmer is using LLVM as a backend to get that good performance, which tempers my enthusiasm a little bit. I see that wasmer also supports the Cranelift backend, but the promised performance blog post[1] doesn't seem to have been published yet, so I don't know how much of a difference that makes in the real world. A ~13x difference in JIT compile time (LLVM vs Cranelift) is huge, and waiting on LLVM itself to compile can also be... exciting. LLVM does good work for AOT compilation, but I don't know how I feel about the trade-offs of using it as a JIT. If a massive C++ code base is going to be pulled in anyways, I would almost rather them pull in V8 than LLVM... but that's just my opinion, since V8 seems to be very well optimized for the JIT use case. But, I'm glad there is the choice to use Cranelift (and presumably exclude LLVM from the final binary) if that fits a particular use case, and I'm excited to see that follow-up blog post whenever the wasmer team has time to publish it. [1]: https://medium.com/wasmer/wasmer-1-0-3f86ca18c043 https://medium.com/wasmer/wasmer-1-0-3f86ca18c043
- syrusakbary 6y agoSyrus here, from Wasmer. Thanks for the kind words! There are some nice opportunities to bring LLVM compilation times closer to the optimal ones in multithreaded environments. We are currently working towards that and hope to get something tangible in next releases... stay tuned!