General

Profile

tenderlovemaking (Aaron Patterson)

Issues

open closed Total
Assigned issues 28 271 299
Reported issues 30 133 163

Projects

Project Roles Registered on
Ruby Committer 11/13/2009

Activity

06/12/2026

07:47 PM Ruby Revision f022064b (git): ZJIT: ivar code cleanup (#17269)
* ZJIT: ivar code cleanup
I just wanted to clean up some of the IV handling code in ZJIT.
If classes, modules, or TDATA have instance variables, and they aren't
"too complex", the instance variables will always be in an external
buffer....
tenderlovemaking (Aaron Patterson)

06/09/2026

09:59 PM Ruby Revision 1c004aa9 (git): ZJIT: Use shape id as cache key for object layout (#17187)
* ZJIT: Use shape id as cache key for object layout
Since #17158, we can use the shape id as our cache key for determining
object layout. This patch changes ZJIT to use shape id instead of
testing all bits.
Given this program:
```rub...
tenderlovemaking (Aaron Patterson)

06/05/2026

07:37 PM Ruby Revision e90a7ce8 (git): ZJIT: Fix cases where we need to super to C functions with >6 params (#17186)
* ZJIT: Fix cases where we need to super to C functions with >6 params
Previously ZJIT was crashing in cases where we need to `super` in to a
cfunc. The issue is that we didn't handle C functions with more than the
calling convention pa...
tenderlovemaking (Aaron Patterson)

06/01/2026

07:30 PM Ruby Revision c4d09f41 (git): Reapply "Reserve 2 bits for expressing object layout (#17139)" (#17158)
This reverts commit ddb5055d961d970aded287cfebd07b78efee3ca7. tenderlovemaking (Aaron Patterson)

05/29/2026

11:41 PM Ruby Revision ddb5055d (git): Revert "Reserve 2 bits for expressing object layout (#17139)"
This reverts commit 63d9f090b5d9461cf0b9446e0039d9c56156b826. tenderlovemaking (Aaron Patterson)
10:09 PM Ruby Revision 63d9f090 (git): Reserve 2 bits for expressing object layout (#17139)
* Reserve 2 bits for expressing object layout
We would like to make instance variable reads in the JIT compiler faster
(as well as simplify the JIT implementation). Currently, in order to
read an instance variable, we have to:
1. Test...
tenderlovemaking (Aaron Patterson)

05/21/2026

09:02 PM Ruby Revision 3b5d4944 (git): ZJIT: Fix exit tracing so that recompiles still happen (#17061)
* ZJIT: Fix exit tracing so that recompiles still happen
Before this commit, exit tracing would not allow recompiles to happen.
Exit tracing works by installing custom exit handlers in order to trace
exit locations. Recompilation also ...
tenderlovemaking (Aaron Patterson)

05/12/2026

11:16 PM Ruby Revision be557259 (git): ZJIT: Convert ZJIT HIR Extended basic blocks to traditional basic blocks (#16888)
* Swap conditionals so HIR -> LIR is easier
We're going to give HIR regular BBs which means each block can end with
up to two jump instructions. IfTrue/IfFalse will always be followed by
a Jump, so when we lower to LIR this change will...
tenderlovemaking (Aaron Patterson)

05/08/2026

09:23 PM Ruby Revision e9e4647e (git): ZJIT: add an unreachable instruction (#16901)
Unreachable instructions terminate blocks. We'll use this mostly for
testing as a terminator instruction (since traditional BB's will require
all blocks to end with a terminator)
tenderlovemaking (Aaron Patterson)

03/23/2026

11:48 PM Ruby Revision 216c5eb3 (git): ZJIT: Support nil block parameters (#16492)
* ZJIT: Support nil block parameters
zjit-stats for the ActiveRecord benchmark used to look like this:
```
Top-8 popular complex argument-parameter features not optimized (100.0% of total 2,351,376):
param_block: 2,157,030 (91....
tenderlovemaking (Aaron Patterson)

Also available in: Atom