Commit graph

5 commits

Author SHA1 Message Date
Takashi Kokubun
571a8d2753
YJIT: Side-exit on String#dup when it's not leaf (#13921)
* YJIT: Side-exit on String#dup when it's not leaf

* Use an enum instead of a macro for bindgen
2025-07-16 22:59:32 +00:00
Alan Wu
ccbbe06a02 YJIT: Disable the runtime_checks feature temporarily
The stack canary gets killed in test_yjit.rb:224 for some reason. Needs
investigation. Example CI failure:
4605755806
2025-07-16 14:10:22 -04:00
Alan Wu
5ee3937a9c ZJIT: Have make zjit-test use the same Cargo features as miniruby
This is so that e.g. building with `--enable-zjit=dev` will test with the
disassembly feature. It makes more sense, saves on build time and
reveals that
`backend::arm64::tests::sp_movements_are_single_instruction` was in
fact failing with the `disasm` feature.
2025-07-16 14:10:22 -04:00
Takashi Kokubun
a7ef9a44a6
ZJIT: Propagate disasm feature to ZJIT and YJIT (#13372)
Co-authored-by: Alan Wu <alansi.xingwu@shopify.com>
2025-05-19 10:34:29 -07:00
Alan Wu
92b218fbc3 YJIT: ZJIT: Allow both JITs in the same build
This commit allows building YJIT and ZJIT simultaneously, a "combo
build". Previously, `./configure --enable-yjit --enable-zjit` failed. At
runtime, though, only one of the two can be enabled at a time.

Add a root Cargo workspace that contains both the yjit and zjit crate.
The common Rust build integration mechanisms are factored out into
defs/jit.mk.

Combo YJIT+ZJIT dev builds are supported; if either JIT uses
`--enable-*=dev`, both of them are built in dev mode.

The combo build requires Cargo, but building one JIT at a time with only
rustc in release build remains supported.
2025-05-15 00:39:03 +09:00