General

Profile

dodecadaniel (Daniel Colson)

  • Login: dodecadaniel
  • Registered on: 04/23/2019
  • Last sign in: 06/19/2025

Issues

open closed Total
Assigned issues 0 0 0
Reported issues 0 2 2

Activity

10/23/2025

09:47 PM Ruby Revision f33cd128 (git): ZJIT: Add tests for non-leaf classvar get and set (#14924)
This commit adds tests that raise on `getclassvariable` and
`setclassvariable` to exercise the non-leaf cases as suggested in
https://github.com/ruby/ruby/pull/14918#discussion_r2453804603
dodecadaniel (Daniel Colson)
03:01 AM Ruby Revision 271be0a2 (git): ZJIT: Implement classvar get and set (#14918)
https://github.com/Shopify/ruby/issues/649
Class vars are a bit more involved than ivars, since we need to get the
class from the cref, so this calls out to `rb_vm_getclassvariable` and
`rb_vm_setclassvariable` like YJIT.
dodecadaniel (Daniel Colson)

09/09/2025

03:55 PM Ruby Revision fe362beb (git): ZJIT: Avoid mutating string in zjit stats (#14485)
[ZJIT] Avoid mutating string in zjit stats
GitHub runs with a Symbol patch that causes a frozen string error when
running `--zjit-stats`
```rb
Class Symbol
alias_method :to_s, :name
end
```
I remember hearing that Shopify runs a sim...
dodecadaniel (Daniel Colson)

08/19/2025

02:02 PM Ruby Revision fc5ee247 (git): ZJIT: Compile toregexp (#14200)
`toregexp` is fairly similar to `concatstrings`, so this commit extracts
a helper for pushing and popping operands on the native stack.
There's probably opportunity to move some of this into lir (e.g. Alan
suggested a push_many that cou...
dodecadaniel (Daniel Colson)

07/07/2025

06:26 PM Ruby Revision 1f024cfd (git): ZJIT: Add opnds macro for Vec<InsnId> to Vec<Opnd> (#13805)
Along the same lines as the `opnd` macro we already have, but for a
`Vec<InsnId>` instead of a single `InsnId`.
This gets a few for loops and `jit.get_opnd` calls out of the `gen_`
functions.
dodecadaniel (Daniel Colson)
06:12 AM Ruby Revision 002d7464 (git): ZJIT: Avoid double negative in Mem debug
Prior to this commit the debug output for negative offsets would look
like:
```
Mem64[Reg(3) - -8
```
That makes it look like we're adding instead of subtracting. After this
commit we'll print:
```
Mem64[Reg(3) - 8
```
dodecadaniel (Daniel Colson)

06/19/2025

06:21 PM Ruby Bug #21445: [BUG] push_mark_stack() called for broken object raised since cd9f447be247478d2eb3da985295735cce20cb23
GitHub is also seeing a test failure that we bisected to cd9f447be247478d2eb3da985295735cce20cb23. We're still working on narrowing it down (it's only failing in CI), so not sure yet how related it is to this crash. dodecadaniel (Daniel Colson)

06/18/2025

10:58 PM Ruby Revision 3290d3d7 (git): ZJIT: Support invokebuiltin opcodes (#13632)
* `invokebuiltin`
* `invokebuiltin_delegate`
* `invokebuiltin_delegate_leave`
These instructions all call out to a C function, passing EC, self, and
some number of arguments. `invokebuiltin` gets the arguments from the
stack, whereas th...
dodecadaniel (Daniel Colson)

06/17/2025

11:35 AM Ruby Revision 01ff17fa (git): ZJIT: Parse opt freeze insns to HIR
* `opt_hash_freeze`
* `opt_ary_freeze`
* `opt_str_freeze`
* `opt_str_uminus`
Similar to `opt_neq`, but there are no args for `freeze`
Co-authored-by: ywenc <ywenc@github.com>
Co-authored-by: Max Bernstein <max@bernsteinbear.com>
dodecadaniel (Daniel Colson)

06/16/2025

11:20 PM Ruby Revision b1410c1c (git): ZJIT: Add codegen for StringCopy
Prior to this commit we compiled `putstring` and `putchilledstring` to
`StringCopy`, but then failed to compile past HIR.
This commit adds codegen for `StringCopy` to call `rb_ec_str_ressurrect`
as the VM does for these instructions.
dodecadaniel (Daniel Colson)

Also available in: Atom