HEX
Server: Apache
System: Linux s198.coreserver.jp 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC 2025 x86_64
User: nagasaki (10062)
PHP: 7.1.33
Disabled: NONE
Upload Files
File: //usr/local/rvm/src/ruby-3.0.2/ractor.rbinc
// -*- c -*-
// DO NOT MODIFY THIS FILE DIRECTLY.
// auto-generated file
//   by ./tool/mk_builtin_loader.rb
//   with ractor.rb
#include "internal/compilers.h"     /* for MAYBE_UNUSED */
#include "internal/warnings.h"      /* for COMPILER_WARNING_PUSH */
#include "ruby/ruby.h"              /* for VALUE */
#include "builtin.h"                /* for RB_BUILTIN_FUNCTION */
struct rb_execution_context_struct; /* in vm_core.h */

static VALUE builtin_inline_class_274(struct rb_execution_context_struct *ec, const VALUE self)
{
#line 274 "ractor.rb"
return 
      rb_ractor_self(rb_ec_ractor_ptr(ec));;
#line 18 "ractor.rbinc"
}

static VALUE builtin_inline_class_288(struct rb_execution_context_struct *ec, const VALUE self)
{
#line 288 "ractor.rb"
return 
      ULONG2NUM(GET_VM()->ractor.cnt);;
#line 26 "ractor.rbinc"
}

static VALUE builtin_inline_class_345(struct rb_execution_context_struct *ec, const VALUE self)
{
MAYBE_UNUSED(const VALUE) yield_unspecified = rb_vm_lvar(ec, -3);
MAYBE_UNUSED(const VALUE) move = rb_vm_lvar(ec, -5);
MAYBE_UNUSED(const VALUE) yield_value = rb_vm_lvar(ec, -6);
MAYBE_UNUSED(const VALUE) ractors = rb_vm_lvar(ec, -7);
#line 345 "ractor.rb"

      const VALUE *rs = RARRAY_CONST_PTR_TRANSIENT(ractors);
      VALUE rv;
      VALUE v = ractor_select(ec, rs, RARRAY_LENINT(ractors),
                              yield_unspecified == Qtrue ? Qundef : yield_value,
                              (bool)RTEST(move) ? true : false, &rv);
      return rb_ary_new_from_args(2, rv, v);
#line 43 "ractor.rbinc"
}

static VALUE builtin_inline_class_416(struct rb_execution_context_struct *ec, const VALUE self)
{
#line 416 "ractor.rb"
return 
      ractor_receive(ec, rb_ec_ractor_ptr(ec));
#line 51 "ractor.rbinc"
}

static VALUE builtin_inline_class_427(struct rb_execution_context_struct *ec, const VALUE self)
{
#line 427 "ractor.rb"
return 
      ractor_receive(ec, rb_ec_ractor_ptr(ec));
#line 59 "ractor.rbinc"
}

static VALUE builtin_inline_class_583(struct rb_execution_context_struct *ec, const VALUE self)
{
MAYBE_UNUSED(const VALUE) move = rb_vm_lvar(ec, -4);
MAYBE_UNUSED(const VALUE) obj = rb_vm_lvar(ec, -5);
#line 583 "ractor.rb"
return 
      ractor_send(ec, RACTOR_PTR(self), obj, move);
#line 69 "ractor.rbinc"
}

static VALUE builtin_inline_class_627(struct rb_execution_context_struct *ec, const VALUE self)
{
MAYBE_UNUSED(const VALUE) move = rb_vm_lvar(ec, -4);
MAYBE_UNUSED(const VALUE) obj = rb_vm_lvar(ec, -5);
#line 627 "ractor.rb"
return 
      ractor_yield(ec, rb_ec_ractor_ptr(ec), obj, move);
#line 79 "ractor.rbinc"
}

static VALUE builtin_inline_class_694(struct rb_execution_context_struct *ec, const VALUE self)
{
#line 694 "ractor.rb"
return 
      ractor_take(ec, RACTOR_PTR(self));
#line 87 "ractor.rbinc"
}

static VALUE builtin_inline_class_700(struct rb_execution_context_struct *ec, const VALUE self)
{
MAYBE_UNUSED(const VALUE) status = rb_vm_lvar(ec, -3);
MAYBE_UNUSED(const VALUE) id = rb_vm_lvar(ec, -4);
MAYBE_UNUSED(const VALUE) name = rb_vm_lvar(ec, -5);
MAYBE_UNUSED(const VALUE) loc = rb_vm_lvar(ec, -6);
#line 700 "ractor.rb"
return  RACTOR_PTR(self)->loc;
#line 98 "ractor.rbinc"
}

static VALUE builtin_inline_class_701(struct rb_execution_context_struct *ec, const VALUE self)
{
MAYBE_UNUSED(const VALUE) status = rb_vm_lvar(ec, -3);
MAYBE_UNUSED(const VALUE) id = rb_vm_lvar(ec, -4);
MAYBE_UNUSED(const VALUE) name = rb_vm_lvar(ec, -5);
MAYBE_UNUSED(const VALUE) loc = rb_vm_lvar(ec, -6);
#line 701 "ractor.rb"
return  RACTOR_PTR(self)->name;
#line 109 "ractor.rbinc"
}

static VALUE builtin_inline_class_702(struct rb_execution_context_struct *ec, const VALUE self)
{
MAYBE_UNUSED(const VALUE) status = rb_vm_lvar(ec, -3);
MAYBE_UNUSED(const VALUE) id = rb_vm_lvar(ec, -4);
MAYBE_UNUSED(const VALUE) name = rb_vm_lvar(ec, -5);
MAYBE_UNUSED(const VALUE) loc = rb_vm_lvar(ec, -6);
#line 702 "ractor.rb"
return  INT2FIX(rb_ractor_id(RACTOR_PTR(self)));
#line 120 "ractor.rbinc"
}

static VALUE builtin_inline_class_703(struct rb_execution_context_struct *ec, const VALUE self)
{
MAYBE_UNUSED(const VALUE) status = rb_vm_lvar(ec, -3);
MAYBE_UNUSED(const VALUE) id = rb_vm_lvar(ec, -4);
MAYBE_UNUSED(const VALUE) name = rb_vm_lvar(ec, -5);
MAYBE_UNUSED(const VALUE) loc = rb_vm_lvar(ec, -6);
#line 703 "ractor.rb"
return 
      rb_str_new2(ractor_status_str(RACTOR_PTR(self)->status_));
#line 132 "ractor.rbinc"
}

static VALUE builtin_inline_class_713(struct rb_execution_context_struct *ec, const VALUE self)
{
#line 713 "ractor.rb"
return RACTOR_PTR(self)->name;
#line 139 "ractor.rbinc"
}

static VALUE builtin_inline_class_734(struct rb_execution_context_struct *ec, const VALUE self)
{
#line 734 "ractor.rb"
return 
      ractor_close_incoming(ec, RACTOR_PTR(self));;
#line 147 "ractor.rbinc"
}

static VALUE builtin_inline_class_753(struct rb_execution_context_struct *ec, const VALUE self)
{
#line 753 "ractor.rb"
return 
      ractor_close_outgoing(ec, RACTOR_PTR(self));;
#line 155 "ractor.rbinc"
}

static VALUE builtin_inline_class_770(struct rb_execution_context_struct *ec, const VALUE self)
{
MAYBE_UNUSED(const VALUE) obj = rb_vm_lvar(ec, -3);
#line 770 "ractor.rb"
return 
      rb_ractor_shareable_p(obj) ? Qtrue : Qfalse;;
#line 164 "ractor.rbinc"
}

static VALUE builtin_inline_class_812(struct rb_execution_context_struct *ec, const VALUE self)
{
MAYBE_UNUSED(const VALUE) copy = rb_vm_lvar(ec, -4);
MAYBE_UNUSED(const VALUE) obj = rb_vm_lvar(ec, -5);
#line 812 "ractor.rb"
return 
        rb_ractor_make_shareable_copy(obj);;
#line 174 "ractor.rbinc"
}

static VALUE builtin_inline_class_816(struct rb_execution_context_struct *ec, const VALUE self)
{
MAYBE_UNUSED(const VALUE) copy = rb_vm_lvar(ec, -4);
MAYBE_UNUSED(const VALUE) obj = rb_vm_lvar(ec, -5);
#line 816 "ractor.rb"
return 
        rb_ractor_make_shareable(obj);;
#line 184 "ractor.rbinc"
}

static VALUE builtin_inline_class_834(struct rb_execution_context_struct *ec, const VALUE self)
{
#line 834 "ractor.rb"
return 
      rb_ractor_self(GET_VM()->ractor.main_ractor);;
#line 192 "ractor.rbinc"
}

static void
mjit_compile_invokebuiltin_for_ractor_create(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
    fprintf(f, "    VALUE self = GET_SELF();\n");
    fprintf(f, "    typedef VALUE (*func)(rb_execution_context_t *, VALUE, VALUE, VALUE, VALUE, VALUE);\n");
    if (index == -1) {
        fprintf(f, "    const VALUE *argv = &stack[%d];\n", stack_size - 4);
    }
    else {
        fprintf(f, "    const unsigned int lnum = GET_ISEQ()->body->local_table_size;\n");
        fprintf(f, "    const VALUE *argv = GET_EP() - lnum - VM_ENV_DATA_SIZE + 1 + %ld;\n", index);
    }
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == ractor_create */\n", (intptr_t)ractor_create);
    fprintf(f, "    val = f(ec, self, argv[0], argv[1], argv[2], argv[3]);\n");
}

static void
mjit_compile_invokebuiltin_for__bi0(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
    fprintf(f, "    VALUE self = GET_SELF();\n");
    fprintf(f, "    typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
    if (inlinable_p) {
        fprintf(f, "%s", "    {\n");
        fprintf(f, "%s", "#line 274 \"ractor.rb\"\n");
        fprintf(f, "%s", "    return \n");
        fprintf(f, "%s", "          rb_ractor_self(rb_ec_ractor_ptr(ec));;\n");
        fprintf(f, "%s", "#line 199 \"ractor.rbinc\"\n");
        fprintf(f, "%s", "    }\n");
        fprintf(f, "%s", "    \n");
        return;
    }
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == builtin_inline_class_274 */\n", (intptr_t)builtin_inline_class_274);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for__bi1(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
    fprintf(f, "    VALUE self = GET_SELF();\n");
    fprintf(f, "    typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
    if (inlinable_p) {
        fprintf(f, "%s", "    {\n");
        fprintf(f, "%s", "#line 288 \"ractor.rb\"\n");
        fprintf(f, "%s", "    return \n");
        fprintf(f, "%s", "          ULONG2NUM(GET_VM()->ractor.cnt);;\n");
        fprintf(f, "%s", "#line 206 \"ractor.rbinc\"\n");
        fprintf(f, "%s", "    }\n");
        fprintf(f, "%s", "    \n");
        return;
    }
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == builtin_inline_class_288 */\n", (intptr_t)builtin_inline_class_288);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for__bi2(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
    fprintf(f, "    VALUE self = GET_SELF();\n");
    fprintf(f, "    typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
    if (inlinable_p) {
        fprintf(f, "%s", "    {\n");
        fprintf(f, "%s", "    MAYBE_UNUSED(const VALUE) yield_unspecified = rb_vm_lvar(ec, -3);\n");
        fprintf(f, "%s", "    MAYBE_UNUSED(const VALUE) move = rb_vm_lvar(ec, -5);\n");
        fprintf(f, "%s", "    MAYBE_UNUSED(const VALUE) yield_value = rb_vm_lvar(ec, -6);\n");
        fprintf(f, "%s", "    MAYBE_UNUSED(const VALUE) ractors = rb_vm_lvar(ec, -7);\n");
        fprintf(f, "%s", "#line 345 \"ractor.rb\"\n");
        fprintf(f, "%s", "    \n");
        fprintf(f, "%s", "          const VALUE *rs = RARRAY_CONST_PTR_TRANSIENT(ractors);\n");
        fprintf(f, "%s", "          VALUE rv;\n");
        fprintf(f, "%s", "          VALUE v = ractor_select(ec, rs, RARRAY_LENINT(ractors),\n");
        fprintf(f, "%s", "                                  yield_unspecified == Qtrue ? Qundef : yield_value,\n");
        fprintf(f, "%s", "                                  (bool)RTEST(move) ? true : false, &rv);\n");
        fprintf(f, "%s", "          return rb_ary_new_from_args(2, rv, v);\n");
        fprintf(f, "%s", "#line 222 \"ractor.rbinc\"\n");
        fprintf(f, "%s", "    }\n");
        fprintf(f, "%s", "    \n");
        return;
    }
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == builtin_inline_class_345 */\n", (intptr_t)builtin_inline_class_345);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for__bi3(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
    fprintf(f, "    VALUE self = GET_SELF();\n");
    fprintf(f, "    typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
    if (inlinable_p) {
        fprintf(f, "%s", "    {\n");
        fprintf(f, "%s", "#line 416 \"ractor.rb\"\n");
        fprintf(f, "%s", "    return \n");
        fprintf(f, "%s", "          ractor_receive(ec, rb_ec_ractor_ptr(ec));\n");
        fprintf(f, "%s", "#line 229 \"ractor.rbinc\"\n");
        fprintf(f, "%s", "    }\n");
        fprintf(f, "%s", "    \n");
        return;
    }
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == builtin_inline_class_416 */\n", (intptr_t)builtin_inline_class_416);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for__bi4(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
    fprintf(f, "    VALUE self = GET_SELF();\n");
    fprintf(f, "    typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
    if (inlinable_p) {
        fprintf(f, "%s", "    {\n");
        fprintf(f, "%s", "#line 427 \"ractor.rb\"\n");
        fprintf(f, "%s", "    return \n");
        fprintf(f, "%s", "          ractor_receive(ec, rb_ec_ractor_ptr(ec));\n");
        fprintf(f, "%s", "#line 236 \"ractor.rbinc\"\n");
        fprintf(f, "%s", "    }\n");
        fprintf(f, "%s", "    \n");
        return;
    }
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == builtin_inline_class_427 */\n", (intptr_t)builtin_inline_class_427);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for_ractor_receive_if(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
    fprintf(f, "    VALUE self = GET_SELF();\n");
    fprintf(f, "    typedef VALUE (*func)(rb_execution_context_t *, VALUE, VALUE);\n");
    if (index == -1) {
        fprintf(f, "    const VALUE *argv = &stack[%d];\n", stack_size - 1);
    }
    else {
        fprintf(f, "    const unsigned int lnum = GET_ISEQ()->body->local_table_size;\n");
        fprintf(f, "    const VALUE *argv = GET_EP() - lnum - VM_ENV_DATA_SIZE + 1 + %ld;\n", index);
    }
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == ractor_receive_if */\n", (intptr_t)ractor_receive_if);
    fprintf(f, "    val = f(ec, self, argv[0]);\n");
}

static void
mjit_compile_invokebuiltin_for__bi5(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
    fprintf(f, "    VALUE self = GET_SELF();\n");
    fprintf(f, "    typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
    if (inlinable_p) {
        fprintf(f, "%s", "    {\n");
        fprintf(f, "%s", "    MAYBE_UNUSED(const VALUE) move = rb_vm_lvar(ec, -4);\n");
        fprintf(f, "%s", "    MAYBE_UNUSED(const VALUE) obj = rb_vm_lvar(ec, -5);\n");
        fprintf(f, "%s", "#line 583 \"ractor.rb\"\n");
        fprintf(f, "%s", "    return \n");
        fprintf(f, "%s", "          ractor_send(ec, RACTOR_PTR(self), obj, move);\n");
        fprintf(f, "%s", "#line 245 \"ractor.rbinc\"\n");
        fprintf(f, "%s", "    }\n");
        fprintf(f, "%s", "    \n");
        return;
    }
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == builtin_inline_class_583 */\n", (intptr_t)builtin_inline_class_583);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for__bi6(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
    fprintf(f, "    VALUE self = GET_SELF();\n");
    fprintf(f, "    typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
    if (inlinable_p) {
        fprintf(f, "%s", "    {\n");
        fprintf(f, "%s", "    MAYBE_UNUSED(const VALUE) move = rb_vm_lvar(ec, -4);\n");
        fprintf(f, "%s", "    MAYBE_UNUSED(const VALUE) obj = rb_vm_lvar(ec, -5);\n");
        fprintf(f, "%s", "#line 627 \"ractor.rb\"\n");
        fprintf(f, "%s", "    return \n");
        fprintf(f, "%s", "          ractor_yield(ec, rb_ec_ractor_ptr(ec), obj, move);\n");
        fprintf(f, "%s", "#line 254 \"ractor.rbinc\"\n");
        fprintf(f, "%s", "    }\n");
        fprintf(f, "%s", "    \n");
        return;
    }
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == builtin_inline_class_627 */\n", (intptr_t)builtin_inline_class_627);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for__bi7(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
    fprintf(f, "    VALUE self = GET_SELF();\n");
    fprintf(f, "    typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
    if (inlinable_p) {
        fprintf(f, "%s", "    {\n");
        fprintf(f, "%s", "#line 694 \"ractor.rb\"\n");
        fprintf(f, "%s", "    return \n");
        fprintf(f, "%s", "          ractor_take(ec, RACTOR_PTR(self));\n");
        fprintf(f, "%s", "#line 261 \"ractor.rbinc\"\n");
        fprintf(f, "%s", "    }\n");
        fprintf(f, "%s", "    \n");
        return;
    }
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == builtin_inline_class_694 */\n", (intptr_t)builtin_inline_class_694);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for__bi8(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
    fprintf(f, "    VALUE self = GET_SELF();\n");
    fprintf(f, "    typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
    if (inlinable_p) {
        fprintf(f, "%s", "    {\n");
        fprintf(f, "%s", "    MAYBE_UNUSED(const VALUE) status = rb_vm_lvar(ec, -3);\n");
        fprintf(f, "%s", "    MAYBE_UNUSED(const VALUE) id = rb_vm_lvar(ec, -4);\n");
        fprintf(f, "%s", "    MAYBE_UNUSED(const VALUE) name = rb_vm_lvar(ec, -5);\n");
        fprintf(f, "%s", "    MAYBE_UNUSED(const VALUE) loc = rb_vm_lvar(ec, -6);\n");
        fprintf(f, "%s", "#line 700 \"ractor.rb\"\n");
        fprintf(f, "%s", "    return  RACTOR_PTR(self)->loc;\n");
        fprintf(f, "%s", "#line 271 \"ractor.rbinc\"\n");
        fprintf(f, "%s", "    }\n");
        fprintf(f, "%s", "    \n");
        return;
    }
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == builtin_inline_class_700 */\n", (intptr_t)builtin_inline_class_700);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for__bi9(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
    fprintf(f, "    VALUE self = GET_SELF();\n");
    fprintf(f, "    typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
    if (inlinable_p) {
        fprintf(f, "%s", "    {\n");
        fprintf(f, "%s", "    MAYBE_UNUSED(const VALUE) status = rb_vm_lvar(ec, -3);\n");
        fprintf(f, "%s", "    MAYBE_UNUSED(const VALUE) id = rb_vm_lvar(ec, -4);\n");
        fprintf(f, "%s", "    MAYBE_UNUSED(const VALUE) name = rb_vm_lvar(ec, -5);\n");
        fprintf(f, "%s", "    MAYBE_UNUSED(const VALUE) loc = rb_vm_lvar(ec, -6);\n");
        fprintf(f, "%s", "#line 701 \"ractor.rb\"\n");
        fprintf(f, "%s", "    return  RACTOR_PTR(self)->name;\n");
        fprintf(f, "%s", "#line 281 \"ractor.rbinc\"\n");
        fprintf(f, "%s", "    }\n");
        fprintf(f, "%s", "    \n");
        return;
    }
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == builtin_inline_class_701 */\n", (intptr_t)builtin_inline_class_701);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for__bi10(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
    fprintf(f, "    VALUE self = GET_SELF();\n");
    fprintf(f, "    typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
    if (inlinable_p) {
        fprintf(f, "%s", "    {\n");
        fprintf(f, "%s", "    MAYBE_UNUSED(const VALUE) status = rb_vm_lvar(ec, -3);\n");
        fprintf(f, "%s", "    MAYBE_UNUSED(const VALUE) id = rb_vm_lvar(ec, -4);\n");
        fprintf(f, "%s", "    MAYBE_UNUSED(const VALUE) name = rb_vm_lvar(ec, -5);\n");
        fprintf(f, "%s", "    MAYBE_UNUSED(const VALUE) loc = rb_vm_lvar(ec, -6);\n");
        fprintf(f, "%s", "#line 702 \"ractor.rb\"\n");
        fprintf(f, "%s", "    return  INT2FIX(rb_ractor_id(RACTOR_PTR(self)));\n");
        fprintf(f, "%s", "#line 291 \"ractor.rbinc\"\n");
        fprintf(f, "%s", "    }\n");
        fprintf(f, "%s", "    \n");
        return;
    }
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == builtin_inline_class_702 */\n", (intptr_t)builtin_inline_class_702);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for__bi11(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
    fprintf(f, "    VALUE self = GET_SELF();\n");
    fprintf(f, "    typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
    if (inlinable_p) {
        fprintf(f, "%s", "    {\n");
        fprintf(f, "%s", "    MAYBE_UNUSED(const VALUE) status = rb_vm_lvar(ec, -3);\n");
        fprintf(f, "%s", "    MAYBE_UNUSED(const VALUE) id = rb_vm_lvar(ec, -4);\n");
        fprintf(f, "%s", "    MAYBE_UNUSED(const VALUE) name = rb_vm_lvar(ec, -5);\n");
        fprintf(f, "%s", "    MAYBE_UNUSED(const VALUE) loc = rb_vm_lvar(ec, -6);\n");
        fprintf(f, "%s", "#line 703 \"ractor.rb\"\n");
        fprintf(f, "%s", "    return \n");
        fprintf(f, "%s", "          rb_str_new2(ractor_status_str(RACTOR_PTR(self)->status_));\n");
        fprintf(f, "%s", "#line 302 \"ractor.rbinc\"\n");
        fprintf(f, "%s", "    }\n");
        fprintf(f, "%s", "    \n");
        return;
    }
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == builtin_inline_class_703 */\n", (intptr_t)builtin_inline_class_703);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for__bi12(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
    fprintf(f, "    VALUE self = GET_SELF();\n");
    fprintf(f, "    typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
    if (inlinable_p) {
        fprintf(f, "%s", "    {\n");
        fprintf(f, "%s", "#line 713 \"ractor.rb\"\n");
        fprintf(f, "%s", "    return RACTOR_PTR(self)->name;\n");
        fprintf(f, "%s", "#line 308 \"ractor.rbinc\"\n");
        fprintf(f, "%s", "    }\n");
        fprintf(f, "%s", "    \n");
        return;
    }
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == builtin_inline_class_713 */\n", (intptr_t)builtin_inline_class_713);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for__bi13(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
    fprintf(f, "    VALUE self = GET_SELF();\n");
    fprintf(f, "    typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
    if (inlinable_p) {
        fprintf(f, "%s", "    {\n");
        fprintf(f, "%s", "#line 734 \"ractor.rb\"\n");
        fprintf(f, "%s", "    return \n");
        fprintf(f, "%s", "          ractor_close_incoming(ec, RACTOR_PTR(self));;\n");
        fprintf(f, "%s", "#line 315 \"ractor.rbinc\"\n");
        fprintf(f, "%s", "    }\n");
        fprintf(f, "%s", "    \n");
        return;
    }
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == builtin_inline_class_734 */\n", (intptr_t)builtin_inline_class_734);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for__bi14(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
    fprintf(f, "    VALUE self = GET_SELF();\n");
    fprintf(f, "    typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
    if (inlinable_p) {
        fprintf(f, "%s", "    {\n");
        fprintf(f, "%s", "#line 753 \"ractor.rb\"\n");
        fprintf(f, "%s", "    return \n");
        fprintf(f, "%s", "          ractor_close_outgoing(ec, RACTOR_PTR(self));;\n");
        fprintf(f, "%s", "#line 322 \"ractor.rbinc\"\n");
        fprintf(f, "%s", "    }\n");
        fprintf(f, "%s", "    \n");
        return;
    }
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == builtin_inline_class_753 */\n", (intptr_t)builtin_inline_class_753);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for__bi15(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
    fprintf(f, "    VALUE self = GET_SELF();\n");
    fprintf(f, "    typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
    if (inlinable_p) {
        fprintf(f, "%s", "    {\n");
        fprintf(f, "%s", "    MAYBE_UNUSED(const VALUE) obj = rb_vm_lvar(ec, -3);\n");
        fprintf(f, "%s", "#line 770 \"ractor.rb\"\n");
        fprintf(f, "%s", "    return \n");
        fprintf(f, "%s", "          rb_ractor_shareable_p(obj) ? Qtrue : Qfalse;;\n");
        fprintf(f, "%s", "#line 330 \"ractor.rbinc\"\n");
        fprintf(f, "%s", "    }\n");
        fprintf(f, "%s", "    \n");
        return;
    }
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == builtin_inline_class_770 */\n", (intptr_t)builtin_inline_class_770);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for__bi16(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
    fprintf(f, "    VALUE self = GET_SELF();\n");
    fprintf(f, "    typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
    if (inlinable_p) {
        fprintf(f, "%s", "    {\n");
        fprintf(f, "%s", "    MAYBE_UNUSED(const VALUE) copy = rb_vm_lvar(ec, -4);\n");
        fprintf(f, "%s", "    MAYBE_UNUSED(const VALUE) obj = rb_vm_lvar(ec, -5);\n");
        fprintf(f, "%s", "#line 812 \"ractor.rb\"\n");
        fprintf(f, "%s", "    return \n");
        fprintf(f, "%s", "            rb_ractor_make_shareable_copy(obj);;\n");
        fprintf(f, "%s", "#line 339 \"ractor.rbinc\"\n");
        fprintf(f, "%s", "    }\n");
        fprintf(f, "%s", "    \n");
        return;
    }
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == builtin_inline_class_812 */\n", (intptr_t)builtin_inline_class_812);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for__bi17(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
    fprintf(f, "    VALUE self = GET_SELF();\n");
    fprintf(f, "    typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
    if (inlinable_p) {
        fprintf(f, "%s", "    {\n");
        fprintf(f, "%s", "    MAYBE_UNUSED(const VALUE) copy = rb_vm_lvar(ec, -4);\n");
        fprintf(f, "%s", "    MAYBE_UNUSED(const VALUE) obj = rb_vm_lvar(ec, -5);\n");
        fprintf(f, "%s", "#line 816 \"ractor.rb\"\n");
        fprintf(f, "%s", "    return \n");
        fprintf(f, "%s", "            rb_ractor_make_shareable(obj);;\n");
        fprintf(f, "%s", "#line 348 \"ractor.rbinc\"\n");
        fprintf(f, "%s", "    }\n");
        fprintf(f, "%s", "    \n");
        return;
    }
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == builtin_inline_class_816 */\n", (intptr_t)builtin_inline_class_816);
    fprintf(f, "    val = f(ec, self);\n");
}

static void
mjit_compile_invokebuiltin_for_ractor_local_value(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
    fprintf(f, "    VALUE self = GET_SELF();\n");
    fprintf(f, "    typedef VALUE (*func)(rb_execution_context_t *, VALUE, VALUE);\n");
    if (index == -1) {
        fprintf(f, "    const VALUE *argv = &stack[%d];\n", stack_size - 1);
    }
    else {
        fprintf(f, "    const unsigned int lnum = GET_ISEQ()->body->local_table_size;\n");
        fprintf(f, "    const VALUE *argv = GET_EP() - lnum - VM_ENV_DATA_SIZE + 1 + %ld;\n", index);
    }
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == ractor_local_value */\n", (intptr_t)ractor_local_value);
    fprintf(f, "    val = f(ec, self, argv[0]);\n");
}

static void
mjit_compile_invokebuiltin_for_ractor_local_value_set(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
    fprintf(f, "    VALUE self = GET_SELF();\n");
    fprintf(f, "    typedef VALUE (*func)(rb_execution_context_t *, VALUE, VALUE, VALUE);\n");
    if (index == -1) {
        fprintf(f, "    const VALUE *argv = &stack[%d];\n", stack_size - 2);
    }
    else {
        fprintf(f, "    const unsigned int lnum = GET_ISEQ()->body->local_table_size;\n");
        fprintf(f, "    const VALUE *argv = GET_EP() - lnum - VM_ENV_DATA_SIZE + 1 + %ld;\n", index);
    }
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == ractor_local_value_set */\n", (intptr_t)ractor_local_value_set);
    fprintf(f, "    val = f(ec, self, argv[0], argv[1]);\n");
}

static void
mjit_compile_invokebuiltin_for__bi18(FILE *f, long index, unsigned stack_size, bool inlinable_p)
{
    fprintf(f, "    VALUE self = GET_SELF();\n");
    fprintf(f, "    typedef VALUE (*func)(rb_execution_context_t *, VALUE);\n");
    if (inlinable_p) {
        fprintf(f, "%s", "    {\n");
        fprintf(f, "%s", "#line 834 \"ractor.rb\"\n");
        fprintf(f, "%s", "    return \n");
        fprintf(f, "%s", "          rb_ractor_self(GET_VM()->ractor.main_ractor);;\n");
        fprintf(f, "%s", "#line 355 \"ractor.rbinc\"\n");
        fprintf(f, "%s", "    }\n");
        fprintf(f, "%s", "    \n");
        return;
    }
    fprintf(f, "    func f = (func)%"PRIdPTR"; /* == builtin_inline_class_834 */\n", (intptr_t)builtin_inline_class_834);
    fprintf(f, "    val = f(ec, self);\n");
}

void Init_builtin_ractor(void)
{
  // table definition
  static const struct rb_builtin_function ractor_table[] = {
    RB_BUILTIN_FUNCTION(0, ractor_create, ractor_create, 4, mjit_compile_invokebuiltin_for_ractor_create),
    RB_BUILTIN_FUNCTION(1, _bi0, builtin_inline_class_274, 0, mjit_compile_invokebuiltin_for__bi0),
    RB_BUILTIN_FUNCTION(2, _bi1, builtin_inline_class_288, 0, mjit_compile_invokebuiltin_for__bi1),
    RB_BUILTIN_FUNCTION(3, _bi2, builtin_inline_class_345, 0, mjit_compile_invokebuiltin_for__bi2),
    RB_BUILTIN_FUNCTION(4, _bi3, builtin_inline_class_416, 0, mjit_compile_invokebuiltin_for__bi3),
    RB_BUILTIN_FUNCTION(5, _bi4, builtin_inline_class_427, 0, mjit_compile_invokebuiltin_for__bi4),
    RB_BUILTIN_FUNCTION(6, ractor_receive_if, ractor_receive_if, 1, mjit_compile_invokebuiltin_for_ractor_receive_if),
    RB_BUILTIN_FUNCTION(7, _bi5, builtin_inline_class_583, 0, mjit_compile_invokebuiltin_for__bi5),
    RB_BUILTIN_FUNCTION(8, _bi6, builtin_inline_class_627, 0, mjit_compile_invokebuiltin_for__bi6),
    RB_BUILTIN_FUNCTION(9, _bi7, builtin_inline_class_694, 0, mjit_compile_invokebuiltin_for__bi7),
    RB_BUILTIN_FUNCTION(10, _bi8, builtin_inline_class_700, 0, mjit_compile_invokebuiltin_for__bi8),
    RB_BUILTIN_FUNCTION(11, _bi9, builtin_inline_class_701, 0, mjit_compile_invokebuiltin_for__bi9),
    RB_BUILTIN_FUNCTION(12, _bi10, builtin_inline_class_702, 0, mjit_compile_invokebuiltin_for__bi10),
    RB_BUILTIN_FUNCTION(13, _bi11, builtin_inline_class_703, 0, mjit_compile_invokebuiltin_for__bi11),
    RB_BUILTIN_FUNCTION(14, _bi12, builtin_inline_class_713, 0, mjit_compile_invokebuiltin_for__bi12),
    RB_BUILTIN_FUNCTION(15, _bi13, builtin_inline_class_734, 0, mjit_compile_invokebuiltin_for__bi13),
    RB_BUILTIN_FUNCTION(16, _bi14, builtin_inline_class_753, 0, mjit_compile_invokebuiltin_for__bi14),
    RB_BUILTIN_FUNCTION(17, _bi15, builtin_inline_class_770, 0, mjit_compile_invokebuiltin_for__bi15),
    RB_BUILTIN_FUNCTION(18, _bi16, builtin_inline_class_812, 0, mjit_compile_invokebuiltin_for__bi16),
    RB_BUILTIN_FUNCTION(19, _bi17, builtin_inline_class_816, 0, mjit_compile_invokebuiltin_for__bi17),
    RB_BUILTIN_FUNCTION(20, ractor_local_value, ractor_local_value, 1, mjit_compile_invokebuiltin_for_ractor_local_value),
    RB_BUILTIN_FUNCTION(21, ractor_local_value_set, ractor_local_value_set, 2, mjit_compile_invokebuiltin_for_ractor_local_value_set),
    RB_BUILTIN_FUNCTION(22, _bi18, builtin_inline_class_834, 0, mjit_compile_invokebuiltin_for__bi18),
    RB_BUILTIN_FUNCTION(-1, NULL, NULL, 0, 0),
  };

  // arity_check
COMPILER_WARNING_PUSH
#if GCC_VERSION_SINCE(5, 1, 0) || __clang__
COMPILER_WARNING_ERROR(-Wincompatible-pointer-types)
#endif
  if (0) rb_builtin_function_check_arity4(ractor_create);
  if (0) rb_builtin_function_check_arity0(builtin_inline_class_274);
  if (0) rb_builtin_function_check_arity0(builtin_inline_class_288);
  if (0) rb_builtin_function_check_arity0(builtin_inline_class_345);
  if (0) rb_builtin_function_check_arity0(builtin_inline_class_416);
  if (0) rb_builtin_function_check_arity0(builtin_inline_class_427);
  if (0) rb_builtin_function_check_arity1(ractor_receive_if);
  if (0) rb_builtin_function_check_arity0(builtin_inline_class_583);
  if (0) rb_builtin_function_check_arity0(builtin_inline_class_627);
  if (0) rb_builtin_function_check_arity0(builtin_inline_class_694);
  if (0) rb_builtin_function_check_arity0(builtin_inline_class_700);
  if (0) rb_builtin_function_check_arity0(builtin_inline_class_701);
  if (0) rb_builtin_function_check_arity0(builtin_inline_class_702);
  if (0) rb_builtin_function_check_arity0(builtin_inline_class_703);
  if (0) rb_builtin_function_check_arity0(builtin_inline_class_713);
  if (0) rb_builtin_function_check_arity0(builtin_inline_class_734);
  if (0) rb_builtin_function_check_arity0(builtin_inline_class_753);
  if (0) rb_builtin_function_check_arity0(builtin_inline_class_770);
  if (0) rb_builtin_function_check_arity0(builtin_inline_class_812);
  if (0) rb_builtin_function_check_arity0(builtin_inline_class_816);
  if (0) rb_builtin_function_check_arity1(ractor_local_value);
  if (0) rb_builtin_function_check_arity2(ractor_local_value_set);
  if (0) rb_builtin_function_check_arity0(builtin_inline_class_834);
COMPILER_WARNING_POP

  // load
  rb_load_with_builtin_functions("ractor", ractor_table);
}