<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/zjit/Cargo.toml, branch v4.0.4</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>JITs: Drop cargo and use just rustc for release combo build</title>
<updated>2025-12-10T21:35:00+00:00</updated>
<author>
<name>Alan Wu</name>
<email>XrXr@users.noreply.github.com</email>
</author>
<published>2025-12-09T03:25:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=029a48176cf9fd367d52d8c9f87cb9f77d425a43'/>
<id>029a48176cf9fd367d52d8c9f87cb9f77d425a43</id>
<content type='text'>
So we don't expose builders to network flakiness which cannot be worked
around using cargo's --offline flag.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
So we don't expose builders to network flakiness which cannot be worked
around using cargo's --offline flag.
</pre>
</div>
</content>
</entry>
<entry>
<title>ZJIT: Add support for stats_allocator</title>
<updated>2025-09-12T04:51:47+00:00</updated>
<author>
<name>Aiden Fox Ivey</name>
<email>aiden.foxivey@shopify.com</email>
</author>
<published>2025-09-12T03:33:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=cd85fe5a87f3f7cac92b132f9f195a3d39685a37'/>
<id>cd85fe5a87f3f7cac92b132f9f195a3d39685a37</id>
<content type='text'>
* Using the shared jit crate, support for a single global_allocator can
function
* Solves --zjit-mem-size
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Using the shared jit crate, support for a single global_allocator can
function
* Solves --zjit-mem-size
</pre>
</div>
</content>
</entry>
<entry>
<title>ZJIT: Move jit.rs to ruby.rs and create a shared crate `jit`</title>
<updated>2025-09-12T04:51:47+00:00</updated>
<author>
<name>Aiden Fox Ivey</name>
<email>aiden.foxivey@shopify.com</email>
</author>
<published>2025-09-12T03:32:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f75e1cb362f57aa9e18c42026adec39b86d4e5c6'/>
<id>f75e1cb362f57aa9e18c42026adec39b86d4e5c6</id>
<content type='text'>
* ruby.rs should hold the main entrypoint to YJIT and ZJIT
* The crate jit will hold code shared between them
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* ruby.rs should hold the main entrypoint to YJIT and ZJIT
* The crate jit will hold code shared between them
</pre>
</div>
</content>
</entry>
<entry>
<title>ZJIT: Migrate to insta</title>
<updated>2025-08-25T20:16:34+00:00</updated>
<author>
<name>Max Bernstein</name>
<email>tekknolagi@gmail.com</email>
</author>
<published>2025-08-25T20:16:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=e49c29ed7543996612c323a5f0738126ffc7685b'/>
<id>e49c29ed7543996612c323a5f0738126ffc7685b</id>
<content type='text'>
Migrate from expect-test to insta snapshot testing library. While expect-test
is very small and has a limited surface, it does not handle nextest well; it
while doing inline snapshot updates, it races other test processes to update
the file, leading to frequent "Failed to process macro invocation" errors.

insta handles this by doing batches; it writes to temporary files which can
then be committed in a batch using `cargo insta review` or
`INSTA_UPDATE=always`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Migrate from expect-test to insta snapshot testing library. While expect-test
is very small and has a limited surface, it does not handle nextest well; it
while doing inline snapshot updates, it races other test processes to update
the file, leading to frequent "Failed to process macro invocation" errors.

insta handles this by doing batches; it writes to temporary files which can
then be committed in a batch using `cargo insta review` or
`INSTA_UPDATE=always`.</pre>
</div>
</content>
</entry>
<entry>
<title>ZJIT: Have `make zjit-test` use the same Cargo features as miniruby</title>
<updated>2025-07-16T18:10:22+00:00</updated>
<author>
<name>Alan Wu</name>
<email>XrXr@users.noreply.github.com</email>
</author>
<published>2025-07-15T21:16:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=5ee3937a9c8f75d07f4919f64decd0b850abefe0'/>
<id>5ee3937a9c8f75d07f4919f64decd0b850abefe0</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>YJIT: ZJIT: Allow both JITs in the same build</title>
<updated>2025-05-14T15:39:03+00:00</updated>
<author>
<name>Alan Wu</name>
<email>XrXr@users.noreply.github.com</email>
</author>
<published>2025-05-06T15:19:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=92b218fbc379fe85792eb060b71520e271971335'/>
<id>92b218fbc379fe85792eb060b71520e271971335</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Use expect-test for HIR tests</title>
<updated>2025-04-18T12:53:01+00:00</updated>
<author>
<name>Max Bernstein</name>
<email>max.bernstein@shopify.com</email>
</author>
<published>2025-03-25T16:26:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=556fda08640d69bf18f704f8983cf9bfe2bd9f7c'/>
<id>556fda08640d69bf18f704f8983cf9bfe2bd9f7c</id>
<content type='text'>
This makes it easier to update cascading test failures while still
making output reviewable in the PR.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This makes it easier to update cascading test failures while still
making output reviewable in the PR.
</pre>
</div>
</content>
</entry>
<entry>
<title>Bump to Rust 1.85.0, 2024 edition</title>
<updated>2025-04-18T12:52:59+00:00</updated>
<author>
<name>Alan Wu</name>
<email>XrXr@users.noreply.github.com</email>
</author>
<published>2025-02-20T23:01:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=e5d4769bc5266fa6f3e50fc629aa0a3e99df856a'/>
<id>e5d4769bc5266fa6f3e50fc629aa0a3e99df856a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Rename ir.rs to hir.rs to avoid namespace ambiguity with backend</title>
<updated>2025-04-18T12:52:58+00:00</updated>
<author>
<name>Maxime Chevalier-Boisvert</name>
<email>maxime.chevalierboisvert@shopify.com</email>
</author>
<published>2025-02-14T19:16:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=ce9c9e0a6a9651a23d1274b73ad9a7e26bf9396d'/>
<id>ce9c9e0a6a9651a23d1274b73ad9a7e26bf9396d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>add `make zjit-test`</title>
<updated>2025-04-18T12:52:57+00:00</updated>
<author>
<name>Alan Wu</name>
<email>XrXr@users.noreply.github.com</email>
</author>
<published>2025-02-11T23:47:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=20ec3c8033de23602ecc62d989cc885390ce8fce'/>
<id>20ec3c8033de23602ecc62d989cc885390ce8fce</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
