<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/zjit.h, branch v4.0.2</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>ZJIT: Use a shared trampoline across all ISEQs (#15042)</title>
<updated>2025-11-05T00:09:13+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashi.kokubun@shopify.com</email>
</author>
<published>2025-11-05T00:09:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=bd3b44cb0a341878abe0edf65d01b1a48c93f088'/>
<id>bd3b44cb0a341878abe0edf65d01b1a48c93f088</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ZJIT: Add `NoSingletonClass` patch point (#14680)</title>
<updated>2025-10-02T16:03:25+00:00</updated>
<author>
<name>Stan Lo</name>
<email>stan.lo@shopify.com</email>
</author>
<published>2025-10-02T16:03:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=2ed5a02fcca4da4acf4c8c3d7ee4c392fc18d948'/>
<id>2ed5a02fcca4da4acf4c8c3d7ee4c392fc18d948</id>
<content type='text'>
* ZJIT: Add NoSingletonClass patch point

This patch point makes sure that when the object has a singleton class,
the JIT code is invalidated. As of now, this is only needed for C call
optimization.

In YJIT, the singleton class guard only applies to Array, Hash, and String.
But in ZJIT, we may optimize C calls from gems (e.g. `sqlite3`). So the
patch point needs to be applied to a broader range of classes.

* ZJIT: Only generate NoSingletonClass guard when the type can have singleton class

* ZJIT: Update or forget NoSingletonClass patch point when needed</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* ZJIT: Add NoSingletonClass patch point

This patch point makes sure that when the object has a singleton class,
the JIT code is invalidated. As of now, this is only needed for C call
optimization.

In YJIT, the singleton class guard only applies to Array, Hash, and String.
But in ZJIT, we may optimize C calls from gems (e.g. `sqlite3`). So the
patch point needs to be applied to a broader range of classes.

* ZJIT: Only generate NoSingletonClass guard when the type can have singleton class

* ZJIT: Update or forget NoSingletonClass patch point when needed</pre>
</div>
</content>
</entry>
<entry>
<title>ZJIT: Remove dead CMEs from `Invariants`</title>
<updated>2025-09-25T22:36:58+00:00</updated>
<author>
<name>Alan Wu</name>
<email>XrXr@users.noreply.github.com</email>
</author>
<published>2025-09-25T21:34:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=328d2037a6bf24e26a7d144e80ab8c1a9c9fd868'/>
<id>328d2037a6bf24e26a7d144e80ab8c1a9c9fd868</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ZJIT: Forget about dead ISEQs in `Invariants`</title>
<updated>2025-09-25T22:36:58+00:00</updated>
<author>
<name>Alan Wu</name>
<email>XrXr@users.noreply.github.com</email>
</author>
<published>2025-09-25T21:12:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=adfa784eaa03a215f2d57ce7e219cc7504ecc68b'/>
<id>adfa784eaa03a215f2d57ce7e219cc7504ecc68b</id>
<content type='text'>
Without this, we crash during reference update.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Without this, we crash during reference update.
</pre>
</div>
</content>
</entry>
<entry>
<title>ZJIT: Invalidate local variables on EP escape (#14448)</title>
<updated>2025-09-05T18:26:01+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashikkbn@gmail.com</email>
</author>
<published>2025-09-05T18:26:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=4f030951f28aad7080d8b60a28148ec0b3636d58'/>
<id>4f030951f28aad7080d8b60a28148ec0b3636d58</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ZJIT: Count exits coming from jit_exception (#14428)</title>
<updated>2025-09-03T20:14:28+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashikkbn@gmail.com</email>
</author>
<published>2025-09-03T20:14:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=809a9a9f2972127ea4b8bba027102197661c7196'/>
<id>809a9a9f2972127ea4b8bba027102197661c7196</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ZJIT: Clear jit entry from iseqs after TracePoint activation (#14407)</title>
<updated>2025-09-02T19:20:08+00:00</updated>
<author>
<name>Stan Lo</name>
<email>stan.lo@shopify.com</email>
</author>
<published>2025-09-02T19:20:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=77a421fb057c16cd82adbe6e07efe0db01bf93a5'/>
<id>77a421fb057c16cd82adbe6e07efe0db01bf93a5</id>
<content type='text'>
ZJIT: Remove JITed code after TracePoint is enabled</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ZJIT: Remove JITed code after TracePoint is enabled</pre>
</div>
</content>
</entry>
<entry>
<title>ZJIT: Implement SingleRactorMode invalidation (#14121)</title>
<updated>2025-08-06T20:51:41+00:00</updated>
<author>
<name>Stan Lo</name>
<email>stan.lo@shopify.com</email>
</author>
<published>2025-08-06T20:51:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=4a70f946a7131da871ca2aef8256a8b94299eba6'/>
<id>4a70f946a7131da871ca2aef8256a8b94299eba6</id>
<content type='text'>
* ZJIT: Implement SingleRactorMode invalidation

* ZJIT: Add macro for compiling jumps

* ZJIT: Fix typo in comment

* YJIT: Fix typo in comment

* ZJIT: Avoid using unexported types in zjit.h

`enum ruby_vminsn_type` is declared in `insns.inc` and is not exported.
Using it in `zjit.h` would cause build errors when the file including it
doesn't include `insns.inc`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* ZJIT: Implement SingleRactorMode invalidation

* ZJIT: Add macro for compiling jumps

* ZJIT: Fix typo in comment

* YJIT: Fix typo in comment

* ZJIT: Avoid using unexported types in zjit.h

`enum ruby_vminsn_type` is declared in `insns.inc` and is not exported.
Using it in `zjit.h` would cause build errors when the file including it
doesn't include `insns.inc`.</pre>
</div>
</content>
</entry>
<entry>
<title>ZJIT: Add --zjit-stats (#14034)</title>
<updated>2025-07-29T17:00:15+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashikkbn@gmail.com</email>
</author>
<published>2025-07-29T17:00:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=b22eb0e468a88d2da77cecf2355623fe7eff1ba6'/>
<id>b22eb0e468a88d2da77cecf2355623fe7eff1ba6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ZJIT: Support invalidating constant patch points (#13998)</title>
<updated>2025-07-28T21:48:41+00:00</updated>
<author>
<name>Stan Lo</name>
<email>stan.lo@shopify.com</email>
</author>
<published>2025-07-28T21:48:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=a0d0b84bade7c8b07d8be601136a70bb8b9ae866'/>
<id>a0d0b84bade7c8b07d8be601136a70bb8b9ae866</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
