General

Profile

tekknolagi (Maxwell Bernstein)

Issues

open closed Total
Assigned issues 4 35 39
Reported issues 0 2 2

Projects

Project Roles Registered on
Ruby Committer 06/06/2025

Activity

11/14/2025

07:49 PM Ruby Revision 8e01768a (git): ZJIT: Break out CFunc send fallback stats (#15193)
lobsters before:
```
Top-14 instructions with uncategorized fallback reason (100.0% of total 5,583,226):
invokesuper: 3,039,693 (54.4%)
invokeblock: 1,181,433 (21.2%)
sendforward: 572,612 (10.3%)...
tekknolagi (Maxwell Bernstein)
03:02 AM Ruby Revision c92a44ee (git): ZJIT: Use Mem.num_bits in Mem split (#15177)
Fix the
```
write(2, "ruby: ZJIT has panicked. More info to follow...\n", 48) = 48
write(2, "\nthread '<unnamed>' panicked at zjit/src/backend/lir.rs:160:17:\nassertion failed: num_bits <= out_num_bits\n", 107) = 107
```
based on
```
...
tekknolagi (Maxwell Bernstein)

11/10/2025

03:51 PM Ruby Revision fb5f10e0 (git): ZJIT: Snapshot once per YARV insn (#15082)
This is roughly net-neutral for the number of instructions created but
at least cenetralizes where the Snapshot is made.
Previously, we might have multiple Snapshot per YARV instruction
depending on if it had event flags, if the body of...
tekknolagi (Maxwell Bernstein)

11/06/2025

08:07 PM Ruby Revision 38d31dc4 (git): ZJIT: Untag block handler (#15085)
Storing the tagged block handler in profiles is not GC-safe (nice catch,
Kokubun). Store the untagged block handler instead.
Fix bug in https://github.com/ruby/ruby/pull/15051
tekknolagi (Maxwell Bernstein)
05:40 PM Ruby Revision 1cca3efa (git): ZJIT: Use interpreter inline cache in setinstancevariable (#14925)
We have both `SetIvar` and `SetInstanceVariable`. The former is a purely
dynamic fallback that we can inline `attr_accessor`/`attr_writer` into,
whereas the latter comes straight from the interpreter's
`setinstancevariable` opcode.
tekknolagi (Maxwell Bernstein)

11/05/2025

08:01 PM Ruby Revision 02267417 (git): ZJIT: Profile specific objects for invokeblock (#15051)
I made a special kind of `ProfiledType` that looks at specific objects, not just their classes/shapes (https://github.com/ruby/ruby/pull/15051). Then I profiled some of our benchmarks.
For lobsters:
```
Top-6 invokeblock handler (100.0...
tekknolagi (Maxwell Bernstein)

10/31/2025

07:48 PM Ruby Revision 7688b050 (git): ZJIT: Optimize VM_METHOD_TYPE_ALIAS (#15018)
Just loop until you find a non-alias. tekknolagi (Maxwell Bernstein)
05:54 PM Ruby Revision 2c88500c (git): ZJIT: Simplify some profiling APIs (#15017)
tekknolagi (Maxwell Bernstein)

10/30/2025

07:15 PM Ruby Revision 6707945f (git): ZJIT: Split out optimized method types in stats (#15002)
We can see send/block call/struct aref/... e.g. on lobsters:
```
Top-9 not optimized method types for send_without_block (100.0% of total 3,133,812):
iseq: 2,004,557 (64.0%)
optimized_struct_aref: 496,232 (15.8%)
...
tekknolagi (Maxwell Bernstein)
05:30 PM Ruby Revision 57f76f62 (git): ZJIT: Fix incorrect self.class.respond_to? folding (#15001)
Right now we have a subtle type system bug around `types::Class`. Until
that is resolved, stop marking `Kernel#class` as returning
`types::Class`, which fixes Rubocop.
Re: https://github.com/Shopify/ruby/issues/850
tekknolagi (Maxwell Bernstein)

Also available in: Atom