General

Profile

tenderlovemaking (Aaron Patterson)

Issues

open closed Total
Assigned issues 31 272 303
Reported issues 31 133 164

Projects

Project Roles Registered on
Ruby Committer 11/13/2009

Activity

06/30/2026

03:55 PM Ruby Revision 2c07a192 (git): [ruby/rubygems] Make install_location private and hoist fn expansion
`install_location` is a hot path during gem installation. I want to
make the method private so that we can freely refactor it. This commit
makes it private and ports the tests to use integration tests instead of
directly calling the met...
tenderlovemaking (Aaron Patterson)

06/26/2026

06:36 PM Ruby Feature #22130: Add a new YARV instruction for a `String.new` fast path
headius (Charles Nutter) wrote in #note-4:
> Is your benchmark published somewhere?
Ya, we're working with them [here](https://github.com/Shopify/lz4-flex-rb/pull/71)
tenderlovemaking (Aaron Patterson)
06:11 PM Ruby Feature #22130: Add a new YARV instruction for a `String.new` fast path
BTW, this proposal also fixes a possible regression (though I don't think anyone cares about this case).
Given this code:
```ruby
class String
def initialize foo:
p "hi"
super()
end
end
String.new(foo: 123)
``...
tenderlovemaking (Aaron Patterson)
05:00 PM Ruby Feature #22130: Add a new YARV instruction for a `String.new` fast path
ko1 (Koichi Sasada) wrote in #note-1:
> Does it affect app performance?
I don't think it slows down any applications since all cases of `String.new` are faster. But I also think it's rare for any application to call `String.new` so I...
tenderlovemaking (Aaron Patterson)

06/25/2026

08:32 PM Ruby Feature #22130 (Open): Add a new YARV instruction for a `String.new` fast path
I would like to introduce a new YARV instruction, `opt_string_new`. It's similar to `opt_new`, but it is specialized for strings.
Today, we [define the `new` method on `String`](https://github.com/ruby/ruby/blob/5d1a0239de4934cb38b0f...
tenderlovemaking (Aaron Patterson)

06/23/2026

10:17 PM Ruby Revision 85348bf1 (git): ZJIT: Split the getivar not_monomorphic fallback counter by cause (#17455)
Before this commit we were lumping all getivar fallback reasons in to
one counter. This made it very hard to find the most popular reasons for
why we're doing slowpath IV reads. This commit just adds more counters
and splits up the fall...
tenderlovemaking (Aaron Patterson)

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)

Also available in: Atom