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_r2453804603dodecadaniel (Daniel Colson)
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)
[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)
`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)
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)
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)
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)
* `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)
* `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)
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)