ZJIT: Format negative offsets as small negative hex values (#16248)
Before:
Optimized HIR: fn block in <main>@benchmarks/setivar.rb:40: bb1(): EntryPoint interpreter v1:BasicObject = LoadSelf Jump bb3(v1) bb2(): EntryPoint JIT(0)...
[ruby/prism] Generate RBI from RBS
https://github.com/ruby/prism/commit/2c88ed893f
[ruby/prism] Don't document rbs inline magic comment
https://github.com/ruby/prism/commit/e371985c91
[ruby/prism] rbs-inline
https://github.com/ruby/prism/commit/1fdd4c5a49
[ruby/json] Remove unused load_uint8x16_4 function.
https://github.com/ruby/json/commit/93bc1b3838
ZJIT: Refine effects for CheckInterrupts to InterruptFlag|Control (#16240)
CheckInterrupts only reads ec->interrupt_flag and conditionally side-exits — it doesn't touch PatchPoint invariants or the allocator. Add an InterruptFlag leaf under Memory in the abstract heap DAG and...
Improve error message failing to copy proc
Previously, when passing an unshareable proc to a Ractor we would get the message:
'Ractor.new': allocator undefined for Proc (TypeError)
With this change we get:
'Ractor.new': can not copy unshareable object #<Proc:0x00007f1b31713600 test.rb:2> (Ractor::Error)...
ZJIT: Ratchet down Guard* effects (#16236)
Guards don't write to (e.g. PatchPoint) memory, just change if we side-exit into the interpreter or not, so lower their effects.
ZJIT: Refine effects for IsBitNotEqual and FixnumBitCheck to Empty (#16237)
Both instructions are pure computations with no side effects: IsBitNotEqual is a cmp+csel (identical to IsBitEqual, already Empty), and FixnumBitCheck is a test+csel on a tagged Fixnum bit. Neither...
ZJIT: Pull out GetEP from IsBlockParamModified (#16234)
We can hopefully de-duplicate this GetEP soon.
View all revisions | View revisions
Also available in: Atom