RJIT: Ruby JIT

这份文档提供了一些在您处理 RJIT 时可能会有用的提示。

项目目的

此项目用于实验目的。对于生产部署,请考虑使用 YJIT。

支持的平台

以下平台假设可以正常工作。linux-x86_64 已在 CI 上测试。

配置

–enable-rjit

在支持的平台上,--enable-rjit 默认启用。通常您不需要指定它。您仍然可以手动传递 --enable-rjit 以尝试在不支持的平台上使用 RJIT。

–enable-rjit=dev

如果 libcapstone 可用,它将启用 --rjit-dump-disasm

制作

rjit-bindgen

如果您看到“RJIT bindgen”GitHub Actions 失败,请提交失败作业中显示的 git diff

要本地执行相同操作,请在安装 libclang 后运行 make rjit-bindgen。macOS 似乎默认包含 libclang。在 Ubuntu 上,您可以使用 apt install libclang1 安装它。

红宝石

–rjit-stats

这将在退出时打印 RJIT 统计信息。

–rjit-dump-disasm

这将转储所有 JIT 代码。您需要在配置之前安装 libcapstone,并在配置时使用 --enable-rjit=dev