Skip to content

[pull] master from ruby:master#1190

Merged
pull[bot] merged 8 commits into
turkdevops:masterfrom
ruby:master
Jul 8, 2026
Merged

[pull] master from ruby:master#1190
pull[bot] merged 8 commits into
turkdevops:masterfrom
ruby:master

Conversation

@pull

@pull pull Bot commented Jul 8, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

nirvdrum and others added 8 commits July 7, 2026 12:57
The `num_returns` field is dead code leftover from when the inliner disqualified candidates for inlining based on the number of return paths it had.
When the inliner translates a callee with optional parameters, the callee body is preceded by a chain of JIT-entry blocks, one per opt-table entry. Entry index k is where execution begins when the call site fills k optionals: it runs the default-init code for the remaining optionals and falls through into the post-default body. Since each inlined callee is integrated into the caller and the call site argument count is fixed, we know exactly which JIT entry block we need. Previously, we translated all JIT entry blocks and the inliner picked which one entry it needed, allowing the others to be cleaned up as dead code. Handling just the one case we need avoids passing those known-dead blocks through the rest of the optimization pipeline and cleans up `AddIseqResult`, simplifying the handling of standalone vs inlined method compilation.
We have a reasonable default of `BasicObject` so don't bloat by another
8 bytes with `Option`.
Shrink `Insn` from 88 to 80 bytes.

<details>

```
print-type-size type: `hir::Insn`: 80 bytes, alignment: 8 bytes
print-type-size     variant `CondBranch`: 80 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.if_true`: 32 bytes, alignment: 8 bytes
print-type-size         field `.if_false`: 32 bytes
print-type-size         field `.val`: 8 bytes
print-type-size     variant `Send`: 80 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.block`: 16 bytes, alignment: 8 bytes
print-type-size         field `.args`: 24 bytes
print-type-size         field `.reason`: 8 bytes
print-type-size         field `.recv`: 8 bytes
print-type-size         field `.cd`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `PushInlineFrame`: 80 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.blockiseq`: 16 bytes, alignment: 8 bytes
print-type-size         field `.args`: 24 bytes
print-type-size         field `.iseq`: 8 bytes
print-type-size         field `.cme`: 8 bytes
print-type-size         field `.recv`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `CCall`: 73 bytes
print-type-size         field `.args`: 24 bytes
print-type-size         field `.cfunc`: 8 bytes
print-type-size         field `.recv`: 8 bytes
print-type-size         field `.name`: 8 bytes
print-type-size         field `.owner`: 8 bytes
print-type-size         field `.return_type`: 16 bytes
print-type-size         field `.elidable`: 1 bytes
print-type-size     variant `InvokeBuiltin`: 73 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.args`: 24 bytes, alignment: 8 bytes
print-type-size         field `.bf`: 8 bytes
print-type-size         field `.recv`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.return_type`: 16 bytes
print-type-size         field `.leaf`: 1 bytes
print-type-size     variant `SendForward`: 72 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.args`: 24 bytes, alignment: 8 bytes
print-type-size         field `.reason`: 8 bytes
print-type-size         field `.recv`: 8 bytes
print-type-size         field `.cd`: 8 bytes
print-type-size         field `.blockiseq`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `InvokeSuper`: 72 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.args`: 24 bytes, alignment: 8 bytes
print-type-size         field `.reason`: 8 bytes
print-type-size         field `.recv`: 8 bytes
print-type-size         field `.cd`: 8 bytes
print-type-size         field `.blockiseq`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `InvokeSuperForward`: 72 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.args`: 24 bytes, alignment: 8 bytes
print-type-size         field `.reason`: 8 bytes
print-type-size         field `.recv`: 8 bytes
print-type-size         field `.cd`: 8 bytes
print-type-size         field `.blockiseq`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `GuardAnyBitSet`: 65 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.mask_name`: 16 bytes, alignment: 8 bytes
print-type-size         field `.mask`: 16 bytes
print-type-size         field `.reason`: 8 bytes
print-type-size         field `.val`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.recompile`: 1 bytes
print-type-size     variant `ArrayPackBuffer`: 64 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.buffer`: 16 bytes, alignment: 8 bytes
print-type-size         field `.elements`: 24 bytes
print-type-size         field `.fmt`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `GuardNoBitsSet`: 64 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.mask_name`: 16 bytes, alignment: 8 bytes
print-type-size         field `.mask`: 16 bytes
print-type-size         field `.reason`: 8 bytes
print-type-size         field `.val`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `InvokeBlock`: 56 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.args`: 24 bytes, alignment: 8 bytes
print-type-size         field `.reason`: 8 bytes
print-type-size         field `.cd`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `InvokeBlockIfunc`: 56 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.args`: 24 bytes, alignment: 8 bytes
print-type-size         field `.cd`: 8 bytes
print-type-size         field `.block_handler`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `Defined`: 52 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.op_type`: 8 bytes, alignment: 8 bytes
print-type-size         field `.obj`: 8 bytes
print-type-size         field `.pushval`: 8 bytes
print-type-size         field `.v`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.lep_level`: 4 bytes
print-type-size     variant `LoadField`: 52 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.id`: 16 bytes, alignment: 8 bytes
print-type-size         field `.recv`: 8 bytes
print-type-size         field `.return_type`: 16 bytes
print-type-size         field `.offset`: 4 bytes
print-type-size     variant `InvokeProc`: 49 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.args`: 24 bytes, alignment: 8 bytes
print-type-size         field `.recv`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.kw_splat`: 1 bytes
print-type-size     variant `GuardBitEquals`: 49 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.expected`: 16 bytes, alignment: 8 bytes
print-type-size         field `.reason`: 8 bytes
print-type-size         field `.val`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.recompile`: 1 bytes
print-type-size     variant `ToRegexp`: 48 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.values`: 24 bytes, alignment: 8 bytes
print-type-size         field `.opt`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `ArrayInclude`: 48 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.elements`: 24 bytes, alignment: 8 bytes
print-type-size         field `.target`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `SetIvar`: 48 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.self_val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.id`: 8 bytes
print-type-size         field `.val`: 8 bytes
print-type-size         field `.ic`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `PatchPoint`: 48 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.invariant`: 32 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `LoadArg`: 44 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.id`: 16 bytes, alignment: 8 bytes
print-type-size         field `.val_type`: 16 bytes
print-type-size         field `.idx`: 4 bytes
print-type-size     variant `StoreField`: 44 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.id`: 16 bytes, alignment: 8 bytes
print-type-size         field `.recv`: 8 bytes
print-type-size         field `.val`: 8 bytes
print-type-size         field `.offset`: 4 bytes
print-type-size     variant `GuardType`: 41 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.guard_type`: 16 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.recompile`: 1 bytes
print-type-size     variant `StringConcat`: 40 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.strings`: 24 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `NewArray`: 40 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.elements`: 24 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `NewHash`: 40 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.elements`: 24 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `ArrayHash`: 40 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.elements`: 24 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `ArrayMax`: 40 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.elements`: 24 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `ArrayMin`: 40 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.elements`: 24 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `HashAset`: 40 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.hash`: 8 bytes, alignment: 8 bytes
print-type-size         field `.key`: 8 bytes
print-type-size         field `.val`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `IsMethodCfunc`: 40 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.cd`: 8 bytes
print-type-size         field `.cfunc`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `GetConstant`: 40 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.klass`: 8 bytes, alignment: 8 bytes
print-type-size         field `.id`: 8 bytes
print-type-size         field `.allow_nil`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `GetIvar`: 40 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.self_val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.id`: 8 bytes
print-type-size         field `.ic`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `DefinedIvar`: 40 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.self_val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.id`: 8 bytes
print-type-size         field `.pushval`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `SetClassVar`: 40 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.id`: 8 bytes, alignment: 8 bytes
print-type-size         field `.val`: 8 bytes
print-type-size         field `.ic`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `Jump`: 40 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.0`: 32 bytes, alignment: 8 bytes
print-type-size     variant `GuardGreaterEq`: 40 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.reason`: 8 bytes, alignment: 8 bytes
print-type-size         field `.left`: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `GuardLess`: 40 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.reason`: 8 bytes, alignment: 8 bytes
print-type-size         field `.left`: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `CheckMatch`: 36 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.target`: 8 bytes, alignment: 8 bytes
print-type-size         field `.pattern`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.flag`: 4 bytes
print-type-size     variant `NewRange`: 33 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.low`: 8 bytes, alignment: 8 bytes
print-type-size         field `.high`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.flag`: 1 bytes
print-type-size     variant `NewRangeFixnum`: 33 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.low`: 8 bytes, alignment: 8 bytes
print-type-size         field `.high`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.flag`: 1 bytes
print-type-size     variant `Comment`: 32 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.message`: 24 bytes, alignment: 8 bytes
print-type-size     variant `Entries`: 32 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.targets`: 24 bytes, alignment: 8 bytes
print-type-size     variant `StringSetbyteFixnum`: 32 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.string`: 8 bytes, alignment: 8 bytes
print-type-size         field `.index`: 8 bytes
print-type-size         field `.value`: 8 bytes
print-type-size     variant `StringAppend`: 32 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.recv`: 8 bytes, alignment: 8 bytes
print-type-size         field `.other`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `StringAppendCodepoint`: 32 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.recv`: 8 bytes, alignment: 8 bytes
print-type-size         field `.other`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `DupArrayInclude`: 32 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.ary`: 8 bytes, alignment: 8 bytes
print-type-size         field `.target`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `ArrayExtend`: 32 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `ArrayPush`: 32 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.array`: 8 bytes, alignment: 8 bytes
print-type-size         field `.val`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `ArrayAset`: 32 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.array`: 8 bytes, alignment: 8 bytes
print-type-size         field `.index`: 8 bytes
print-type-size         field `.val`: 8 bytes
print-type-size     variant `HashAref`: 32 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.hash`: 8 bytes, alignment: 8 bytes
print-type-size         field `.key`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `SetGlobal`: 32 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.id`: 8 bytes, alignment: 8 bytes
print-type-size         field `.val`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `GetClassVar`: 32 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.id`: 8 bytes, alignment: 8 bytes
print-type-size         field `.ic`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `PopInlineFrame`: 32 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.iseq`: 8 bytes, alignment: 8 bytes
print-type-size         field `.argc`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `FixnumAdd`: 32 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `FixnumSub`: 32 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `FixnumMult`: 32 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `FixnumDiv`: 32 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `FixnumMod`: 32 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `FixnumLShift`: 32 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `FloatAdd`: 32 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.recv`: 8 bytes, alignment: 8 bytes
print-type-size         field `.other`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `FloatSub`: 32 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.recv`: 8 bytes, alignment: 8 bytes
print-type-size         field `.other`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `FloatMul`: 32 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.recv`: 8 bytes, alignment: 8 bytes
print-type-size         field `.other`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `FloatDiv`: 32 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.recv`: 8 bytes, alignment: 8 bytes
print-type-size         field `.other`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `AnyToString`: 32 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.str`: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `RefineType`: 32 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.new_type`: 16 bytes, alignment: 8 bytes
print-type-size         field `.val`: 8 bytes
print-type-size     variant `HasType`: 32 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.expected`: 16 bytes, alignment: 8 bytes
print-type-size         field `.val`: 8 bytes
print-type-size     variant `Throw`: 28 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.throw_state`: 4 bytes
print-type-size     variant `StringCopy`: 25 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.chilled`: 1 bytes
print-type-size     variant `SideExit`: 25 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.reason`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size         field `.recompile`: 1 bytes
print-type-size     variant `Const`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.val`: 16 bytes, alignment: 8 bytes
print-type-size     variant `StringIntern`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `StringGetbyte`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.string`: 8 bytes, alignment: 8 bytes
print-type-size         field `.index`: 8 bytes
print-type-size     variant `StringEqual`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `ToArray`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `ToNewArray`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `ArrayDup`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `ArrayAref`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.array`: 8 bytes, alignment: 8 bytes
print-type-size         field `.index`: 8 bytes
print-type-size     variant `ArrayPop`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.array`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `AdjustBounds`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.index`: 8 bytes, alignment: 8 bytes
print-type-size         field `.length`: 8 bytes
print-type-size     variant `HashDup`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `ObjectAlloc`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `ObjectAllocClass`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.class`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `IsBitEqual`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `IsBitNotEqual`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `BoxFixnum`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `FixnumAref`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.recv`: 8 bytes, alignment: 8 bytes
print-type-size         field `.index`: 8 bytes
print-type-size     variant `GetConstantPath`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.ic`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `IsA`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.class`: 8 bytes
print-type-size     variant `GetGlobal`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.id`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `WriteBarrier`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.recv`: 8 bytes, alignment: 8 bytes
print-type-size         field `.val`: 8 bytes
print-type-size     variant `GetBlockParam`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size         field `.level`: 4 bytes
print-type-size         field `.ep_offset`: 4 bytes
print-type-size     variant `SetLocal`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.level`: 4 bytes
print-type-size         field `.ep_offset`: 4 bytes
print-type-size     variant `GetSpecialNumber`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.nth`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `EntryPoint`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.jit_entry_idx`: 16 bytes, alignment: 8 bytes
print-type-size     variant `FixnumEq`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FixnumNeq`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FixnumLt`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FixnumLe`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FixnumGt`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FixnumGe`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FixnumAnd`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FixnumOr`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FixnumXor`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `IntAnd`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `IntOr`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FixnumRShift`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.left`: 8 bytes, alignment: 8 bytes
print-type-size         field `.right`: 8 bytes
print-type-size     variant `FloatToInt`: 24 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.recv`: 8 bytes, alignment: 8 bytes
print-type-size         field `.state`: 8 bytes
print-type-size     variant `PutSpecialObject`: 17 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size         field `.value_type`: 1 bytes
print-type-size     variant `FixnumBitCheck`: 17 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size         field `.index`: 1 bytes
print-type-size     variant `GetSpecialSymbol`: 17 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size         field `.symbol_type`: 1 bytes
print-type-size     variant `ArrayLength`: 16 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.array`: 8 bytes, alignment: 8 bytes
print-type-size     variant `Test`: 16 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size     variant `BoxBool`: 16 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size     variant `UnboxFixnum`: 16 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size     variant `IsBlockGiven`: 16 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.lep`: 8 bytes, alignment: 8 bytes
print-type-size     variant `IsBlockParamModified`: 16 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.flags`: 8 bytes, alignment: 8 bytes
print-type-size     variant `Snapshot`: 16 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size     variant `CCallWithFrame`: 16 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.0`: 8 bytes, alignment: 8 bytes
print-type-size     variant `CCallVariadic`: 16 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.0`: 8 bytes, alignment: 8 bytes
print-type-size     variant `SendDirect`: 16 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.0`: 8 bytes, alignment: 8 bytes
print-type-size     variant `Return`: 16 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.val`: 8 bytes, alignment: 8 bytes
print-type-size     variant `IncrCounterPtr`: 16 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.counter_ptr`: 8 bytes, alignment: 8 bytes
print-type-size     variant `CheckInterrupts`: 16 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.state`: 8 bytes, alignment: 8 bytes
print-type-size     variant `GetEP`: 12 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.level`: 4 bytes, alignment: 4 bytes
print-type-size     variant `IncrCounter`: 10 bytes
print-type-size         padding: 8 bytes
print-type-size         field `.0`: 2 bytes, alignment: 2 bytes
print-type-size     variant `Param`: 0 bytes
print-type-size     variant `LoadPC`: 0 bytes
print-type-size     variant `LoadEC`: 0 bytes
print-type-size     variant `LoadSP`: 0 bytes
print-type-size     variant `LoadSelf`: 0 bytes
print-type-size     variant `BreakPoint`: 0 bytes
print-type-size     variant `Unreachable`: 0 bytes
```

</details>
@pull pull Bot locked and limited conversation to collaborators Jul 8, 2026
@pull pull Bot added the ⤵️ pull label Jul 8, 2026
@pull pull Bot merged commit e6bf652 into turkdevops:master Jul 8, 2026
1 of 3 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants