Re:Tenderjit – A JIT for Ruby Written in Ruby
by gnulinux on Thursday September 23, 2021 @01:24AM
(#28625454)
How can you do ISA-agnostic JIT unless you implement a separate backend for each ISA? I.e. is it possible to write a JIT in a generic way such that it'll work for a class of ISAs?
Re:Tenderjit – A JIT for Ruby Written in Ruby
by nitrogen on Thursday September 23, 2021 @01:34AM
(#28625501)
You can write a JIT that generates C code and calls the system's C compiler: https://duckduckgo.com/?q=ruby+"MJIT"
Re:Tenderjit – A JIT for Ruby Written in Ruby
by gnulinux on Thursday September 23, 2021 @09:40AM
(#28628960)
Oh well I never thought of it, nor read of it. Need to go back to books. Thanks for sharing!
Re:Tenderjit – A JIT for Ruby Written in Ruby
by arthur2e5 on Wednesday September 22, 2021 @10:46PM
(#28624719)
It’s x86-64 only. A quick look at the https://github.com/tenderlove/tenderjit/blob/main/lib/tender... linked from the README reveals heavy references to x86-64 registers. The “Fisk” library used appears to be a x86-64 assembler in Ruby.
I guess that’s to be expected with “pure ruby” — all the cross-insn backends you can use (Cranelift, LLVM) are written in not-Ruby.
Re:Tenderjit – A JIT for Ruby Written in Ruby
by tenderlove on Thursday September 23, 2021 @12:11PM
(#28631178)
It's x86-64 specific right now. I'm interested in adding ARM support so I'll do that at some point in the future. My desktop is x86-64 and our production machines are as well, which is why I started with it.
Thanks for the interest!
I ask because I'm *very* interested in this, but am working on ARM
Edit - just to be clear why I'm interested. For me it matters not if Ruby is slow, until it does, which is usually a very specific and obvious piece of code.