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)
> 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)
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)
`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)
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)
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)
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)
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)
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)
* 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)