Re:Ruby: Porting YJIT to Rust
by woodruffw on Monday January 17, 2022 @04:15PM
(#29971758)
It'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.)
(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