This PR replaces the current implementation of MJIT with a new JIT called "RJIT" 2.

This PR replaces the current implementation of MJIT with a new JIT called "RJIT" 2.RJIT uses a pure-Ruby assembler to generate native codeMJIT requires a C compiler at runtime. YJIT requires a Rust compiler at build time. RJIT doesn't require them.This means that RJIT's warmup could be slower than YJIT, but it's still much faster than MJIT's.The code generated by RJIT looks very similar to YJITIn fact, many methods are direct translations of the Rust code into Ruby.This allows us to simplify the Ruby VM by removing MJIT-specific implementations.We could do some early experiments for YJIT in RJIT too if we want.See the ticket for motivation and further details:.
This PR replaces the current implementation of MJIT with a new JIT called "RJIT" 2. #ruby #rubydeveloper #rubyonrails https://rubyonrails.ba/single/this-pr-replaces-the-current-implementation-of-mjit-with-a-new-jit-called-rjit-2

Nezir Zahirovic

Contractor Ruby On Rails (8+ years) / MCPD .Net / C# / Asp.Net / CSS / SQL / (11 years)

related articles