This document has some tips that might be useful when you work on RJIT.
This project is for experimental purposes. For production deployment, consider using YJIT instead.
The following platforms are assumed to work. linux-x86_64
is tested on CI.
- OS: Linux, macOS, BSD
- Arch: x86_64
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.
It enables --rjit-dump-disasm
if libcapstone is available.
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
.
This prints RJIT stats at exit.
This dumps all JIT code. You need to install libcapstone before configure and use --enable-rjit=dev
on configure.
- Ubuntu:
sudo apt-get install -y libcapstone-dev
- macOS:
brew install capstone