General

Profile

tenderlovemaking (Aaron Patterson)

Issues

open closed Total
Assigned issues 29 275 304
Reported issues 31 133 164

Projects

Project Roles Registered on
Ruby Committer 11/13/2009

Activity

07/09/2026

09:19 PM Ruby Feature #22130: Add a new YARV instruction for a `String.new` fast path
Adding an instruction that supports allocation of a particular size means we can delete the implementation of `new` on `String` and `Array` (though I am aware this comes at the cost of interpreter complexity). I think we can detect and ... tenderlovemaking (Aaron Patterson)
08:38 PM Ruby Feature #22130: Add a new YARV instruction for a `String.new` fast path
> So, rather than adding instructions specialized for such a limited code pattern, I think we should aim for more general optimization approaches.
From what I can tell, the general problem is that we want to request a particular amoun...
tenderlovemaking (Aaron Patterson)

07/07/2026

05:11 PM Ruby Feature #20163: Introduce #bit_count method on Integer
I found a few more examples "in the wild":
* [MOBI parser/generator](https://github.com/slonopotamus/dyck/blob/b031a8b396e55067d78c6ff85ff4f0f3bb8bc46c/lib/dyck/util.rb#L13-L17)
* [TON blockchain SDK](https://github.com/nerzh/ton-sdk...
tenderlovemaking (Aaron Patterson)

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)

Also available in: Atom