ruby/doc/rjit/rjit.md

1.1 KiB

RJIT: Ruby JIT

This document has some tips that might be useful when you work on RJIT.

Project purpose

This project is for experimental purposes. For production deployment, consider using YJIT instead.

Supported platforms

The following platforms are assumed to work. linux-x86_64 is tested on CI.

  • OS: Linux, macOS, BSD
  • Arch: x86_64

Developing RJIT

Bindgen

If you see an "RJIT bindgen" GitHub Actions failure, please commit the git diff shown on the failed job.

For doing the same thing locally, run make rjit-bindgen after installing libclang. macOS seems to have libclang by default. On Ubuntu, you can install it with apt install libclang1.

--enable-rjit

On supported platforms, --enable-rjit is set by default. You usually don't need to specify this. You may still manually pass --enable-rjit to try RJIT on unsupported platforms.

--enable-rjit=dev

--enable-rjit=dev makes the interpreter slower, but enables the following two features:

  • --rjit-dump-disasm: Dump all JIT code.
  • --rjit-stats: Print RJIT stats.