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

10-Mar-2023 679
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:.
Use coupon code:

RUBYONRAILS

to get 30% discount on our bundle!
Prepare for your next tech interview with our comprehensive collection of programming interview guides. Covering JavaScript, Ruby on Rails, React, and Python, these highly-rated books offer thousands of essential questions and answers to boost your interview success. Buy our 'Ultimate Job Interview Preparation eBook Bundle' featuring 2200+ questions across multiple languages. Ultimate Job Interview Preparation eBook Bundle