3 ms·
Looks like they aren't intending to use Cranelift. Which makes sense for an initial port that already has its own codegen. Personally found Cranelift a joy to u
by __s 5y ago
Looks like they aren't intending to use Cranelift. Which makes sense for an initial port that already has its own codegen. Personally found Cranelift a joy to use. Would be nice if Cranelift had a WASM backend to could compile a JIT to WASM to JIT WASM in WASM (this cyclic feature would be useful for creating JITs for dynamic languages in WASM rather than compiling the C interpreters to WASM)
- woodruffw 5y agoIt's unfortunate, but cranelift might still be considered too unstable for "primetime": my understanding as an outsider is that they're looking to stabilize YJIT sooner rather than later, to prevent it from being a perpetually unstable/experimental feature like MJIT ended up being. (Also, the last time I checked, cranelift emitted extremely suboptimal code. That's not their fault given the design constraints (it's a new project and they're aiming to beat LLVM's SelectionDAG in codegen performance), but it's probably not ideal given Ruby's long term performance goals. I'm also not sure how easy it would be to retrofit the LBBV[1] architecture of YJIT onto cranelift.) [1]: https://dl.acm.org/doi/10.1145/3486606.3486781 https://dl.acm.org/doi/10.1145/3486606.3486781
- taldridge 5y agoWorking on it! https://GitHub.com/teymour-aldridge/cranelift_codegen_wasm https://GitHub.com/teymour-aldridge/cranelift_codegen_wasm