From d5b7c8a9727ebca2e7d29dd44c44f8724c2667cb Mon Sep 17 00:00:00 2001 From: Takashi Kokubun Date: Fri, 10 Mar 2023 11:27:04 -0800 Subject: [PATCH] RJIT: Always enable --rjit-dump-disasm --- configure.ac | 6 +++--- doc/rjit/rjit.md | 33 +++++++++++++++++++++------------ 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/configure.ac b/configure.ac index 3f007f8a40..d172c056a0 100644 --- a/configure.ac +++ b/configure.ac @@ -3867,11 +3867,11 @@ AC_ARG_ENABLE(rjit, AS_CASE(["$RJIT_SUPPORT"], [yes|dev], [ + # Link libcapstone for --rjit-dump-disasm + AC_CHECK_LIB([capstone], [cs_disasm]) + AS_CASE(["$RJIT_SUPPORT"], [dev], [ - # Link libcapstone for --rjit-dump-disasm - AC_CHECK_LIB([capstone], [cs_disasm]) - # Enable RJIT_STATS (vm_insns_count of --rjit-stats) AC_DEFINE(RUBY_DEBUG, 1) ]) diff --git a/doc/rjit/rjit.md b/doc/rjit/rjit.md index 273fdbeb9d..77be56bfb5 100644 --- a/doc/rjit/rjit.md +++ b/doc/rjit/rjit.md @@ -14,15 +14,7 @@ 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`. - +## configure ### --enable-rjit On supported platforms, `--enable-rjit` is set by default. You usually don't need to specify this. @@ -30,7 +22,24 @@ 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: +`--enable-rjit=dev` makes the interpreter slower, but enables `ruby --rjit-stats` to work. -* `--rjit-dump-disasm`: Dump all JIT code. -* `--rjit-stats`: Print RJIT stats. +## make +### 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`. + +## ruby +### --rjit-stats + +This prints RJIT stats at exit. Available with `--enable-rjit=dev` on configure. + +### --rjit-dump-disasm + +This dumps all JIT code. You need to install libcapstone before configure. + +* Ubuntu: `sudo apt-get install -y libcapstone-dev` +* macOS: `brew install capstone`