Ruby  2.5.0dev(2017-10-22revision60238)
Macros | Functions | Variables
vm.c File Reference
#include "internal.h"
#include "ruby/vm.h"
#include "ruby/st.h"
#include "gc.h"
#include "vm_core.h"
#include "iseq.h"
#include "eval_intern.h"
#include "probes.h"
#include "probes_helper.h"
#include "vm_insnhelper.h"
#include "vm_exec.h"
#include "vm_insnhelper.c"
#include "vm_exec.c"
#include "vm_method.c"
#include "vm_eval.c"
#include "vm_call_iseq_optimized.inc"

Go to the source code of this file.

Macros

#define PROCDEBUG   0
 
#define ruby_vm_redefined_flag   GET_VM()->redefined_flag
 
#define S(s)   sym_##s = ID2SYM(rb_intern_const(#s))
 
#define SET(name, attr)
 
#define OP(mid_, bop_)   (mid = id##mid_, bop = BOP_##bop_, ruby_vm_redefined_flag[bop] = 0)
 
#define C(k)   add_opt_method(rb_c##k, mid, bop)
 
#define SET(name)   rb_hash_aset(result, ID2SYM(rb_intern(#name)), SIZET2NUM(vm->default_params.name));
 
#define USE_THREAD_DATA_RECYCLE   1
 
#define RECYCLE_MAX   64
 
#define thread_data_type   ruby_threadptr_data_type
 
#define REWIND_CFP(expr)
 

Functions

VALUE rb_str_concat_literals (size_t, const VALUE *)
 
 PUREFUNC (static inline const VALUE *VM_EP_LEP(const VALUE *))
 
const VALUErb_vm_ep_local_ep (const VALUE *ep)
 
 PUREFUNC (static inline const VALUE *VM_CF_LEP(const rb_control_frame_t *const cfp))
 
 PUREFUNC (static inline VALUE VM_CF_BLOCK_HANDLER(const rb_control_frame_t *const cfp))
 
VALUE rb_vm_frame_block_handler (const rb_control_frame_t *cfp)
 
rb_cref_trb_vm_cref_new_toplevel (void)
 
void rb_vm_block_ep_update (VALUE obj, const struct rb_block *dst, const VALUE *ep)
 
rb_serial_t rb_next_class_serial (void)
 
void rb_vm_inc_const_missing_count (void)
 
VALUE rb_class_path_no_cache (VALUE _klass)
 
int ruby_th_dtrace_setup (rb_thread_t *th, VALUE klass, ID id, struct ruby_dtrace_method_hook_args *args)
 
rb_control_frame_trb_vm_get_binding_creatable_next_cfp (const rb_thread_t *th, const rb_control_frame_t *cfp)
 
rb_control_frame_trb_vm_get_ruby_level_next_cfp (const rb_thread_t *th, const rb_control_frame_t *cfp)
 
void rb_vm_pop_cfunc_frame (void)
 
void rb_vm_rewind_cfp (rb_thread_t *th, rb_control_frame_t *cfp)
 
void ruby_vm_at_exit (void(*func)(rb_vm_t *))
 
void rb_vm_stack_to_heap (rb_thread_t *th)
 
const rb_env_trb_vm_env_prev_env (const rb_env_t *env)
 
VALUE rb_vm_env_local_variables (const rb_env_t *env)
 
VALUE rb_iseq_local_variables (const rb_iseq_t *iseq)
 
VALUE rb_proc_create_from_captured (VALUE klass, const struct rb_captured_block *captured, enum rb_block_type block_type, int8_t safe_level, int8_t is_from_method, int8_t is_lambda)
 
void rb_vm_block_copy (VALUE obj, const struct rb_block *dst, const struct rb_block *src)
 
VALUE rb_proc_create (VALUE klass, const struct rb_block *block, int8_t safe_level, int8_t is_from_method, int8_t is_lambda)
 
VALUE rb_vm_make_proc (rb_thread_t *th, const struct rb_captured_block *captured, VALUE klass)
 
VALUE rb_vm_make_proc_lambda (rb_thread_t *th, const struct rb_captured_block *captured, VALUE klass, int8_t is_lambda)
 
VALUE rb_vm_make_binding (rb_thread_t *th, const rb_control_frame_t *src_cfp)
 
const VALUErb_binding_add_dynavars (VALUE bindval, rb_binding_t *bind, int dyncount, const ID *dynvars)
 
VALUE rb_vm_invoke_proc (rb_thread_t *th, rb_proc_t *proc, int argc, const VALUE *argv, VALUE passed_block_handler)
 
VALUE rb_backref_get (void)
 
void rb_backref_set (VALUE val)
 
VALUE rb_lastline_get (void)
 
void rb_lastline_set (VALUE val)
 
VALUE rb_sourcefilename (void)
 
const char * rb_sourcefile (void)
 
int rb_sourceline (void)
 
VALUE rb_source_location (int *pline)
 
const char * rb_source_loc (int *pline)
 
rb_cref_trb_vm_cref (void)
 
rb_cref_trb_vm_cref_replace_with_duplicated_cref (void)
 
const rb_cref_trb_vm_cref_in_context (VALUE self, VALUE cbase)
 
VALUE rb_vm_cbase (void)
 
void rb_vm_localjump_error (const char *mesg, VALUE value, int reason)
 
VALUE rb_vm_make_jump_tag_but_local_jump (int state, VALUE val)
 
 NORETURN (static void vm_iter_break(rb_thread_t *th, VALUE val))
 
void rb_iter_break (void)
 
void rb_iter_break_value (VALUE val)
 
void rb_vm_check_redefinition_by_prepend (VALUE klass)
 
VALUE rb_iseq_eval (const rb_iseq_t *iseq)
 
VALUE rb_iseq_eval_main (const rb_iseq_t *iseq)
 
int rb_vm_control_frame_id_and_class (const rb_control_frame_t *cfp, ID *idp, ID *called_idp, VALUE *klassp)
 
int rb_thread_method_id_and_class (rb_thread_t *th, ID *idp, ID *called_idp, VALUE *klassp)
 
int rb_frame_method_id_and_class (ID *idp, VALUE *klassp)
 
VALUE rb_thread_current_status (const rb_thread_t *th)
 
VALUE rb_vm_call_cfunc (VALUE recv, VALUE(*func)(VALUE), VALUE arg, VALUE block_handler, VALUE filename)
 
void rb_vm_trace_mark_event_hooks (rb_hook_list_t *hooks)
 
void rb_vm_mark (void *ptr)
 
void rb_vm_register_special_exception_str (enum ruby_special_exceptions sp, VALUE cls, VALUE mesg)
 
int rb_vm_add_root_module (ID id, VALUE module)
 
int ruby_vm_destruct (rb_vm_t *vm)
 
void rb_thread_recycle_stack_release (VALUE *stack)
 
void rb_fiber_mark_self (rb_fiber_t *fib)
 
void rb_execution_context_mark (const rb_execution_context_t *ec)
 
void rb_thread_mark (void *ptr)
 
VALUE rb_obj_is_thread (VALUE obj)
 
VALUE rb_thread_alloc (VALUE klass)
 
void Init_VM (void)
 
void rb_vm_set_progname (VALUE filename)
 
void Init_BareVM (void)
 
void Init_vm_objects (void)
 
VALUE rb_vm_top_self (void)
 
void Init_top_self (void)
 
VALUErb_ruby_verbose_ptr (void)
 
VALUErb_ruby_debug_ptr (void)
 
VALUE rb_insn_operand_intern (const rb_iseq_t *iseq, VALUE insn, int op_no, VALUE op, int len, size_t pos, VALUE *pnop, VALUE child)
 
st_tablerb_vm_fstring_table (void)
 

Variables

VALUE rb_cRubyVM
 
VALUE rb_cThread
 
VALUE rb_mRubyVMFrozenCore
 
VALUE ruby_vm_const_missing_count = 0
 
rb_thread_truby_current_thread = 0
 
rb_vm_truby_current_vm = 0
 
rb_event_flag_t ruby_vm_event_flags
 
rb_serial_t ruby_vm_global_method_state = 1
 
rb_serial_t ruby_vm_global_constant_state = 1
 
rb_serial_t ruby_vm_class_serial = 1
 
const rb_data_type_t ruby_threadptr_data_type
 
VALUErb_gc_stack_start
 
size_t rb_gc_stack_maxsize
 
const struct st_hash_type rb_fstring_hash_type
 
void(* ruby_vm_collect_usage_func_insn )(int insn) = NULL
 
void(* ruby_vm_collect_usage_func_operand )(int insn, int n, VALUE op) = NULL
 
void(* ruby_vm_collect_usage_func_register )(int reg, int isset) = NULL
 

Macro Definition Documentation

◆ C

#define C (   k)    add_opt_method(rb_c##k, mid, bop)

◆ OP

#define OP (   mid_,
  bop_ 
)    (mid = id##mid_, bop = BOP_##bop_, ruby_vm_redefined_flag[bop] = 0)

◆ PROCDEBUG

#define PROCDEBUG   0

Definition at line 306 of file vm.c.

◆ RECYCLE_MAX

#define RECYCLE_MAX   64

Definition at line 2334 of file vm.c.

Referenced by rb_thread_recycle_stack_release().

◆ REWIND_CFP

#define REWIND_CFP (   expr)
Value:
do { \
rb_thread_t *th__ = GET_THREAD(); \
VALUE *const curr_sp = (th__->ec.cfp++)->sp; \
VALUE *const saved_sp = th__->ec.cfp->sp; \
th__->ec.cfp->sp = curr_sp; \
expr; \
(th__->ec.cfp--)->sp = saved_sp; \
} while (0)
#define GET_THREAD()
Definition: vm_core.h:1583

Definition at line 2617 of file vm.c.

◆ ruby_vm_redefined_flag

#define ruby_vm_redefined_flag   GET_VM()->redefined_flag

Definition at line 318 of file vm.c.

◆ S

#define S (   s)    sym_##s = ID2SYM(rb_intern_const(#s))

◆ SET [1/2]

#define SET (   name,
  attr 
)
Value:
if (key == sym_##name) \
return SERIALT2NUM(attr); \
else if (hash != Qnil) \
rb_hash_aset(hash, sym_##name, SERIALT2NUM(attr));
#define SERIALT2NUM
Definition: internal.h:752
#define Qnil
Definition: ruby.h:438
const char * name
Definition: nkf.c:208

◆ SET [2/2]

#define SET (   name)    rb_hash_aset(result, ID2SYM(rb_intern(#name)), SIZET2NUM(vm->default_params.name));

◆ thread_data_type

#define thread_data_type   ruby_threadptr_data_type

Definition at line 2494 of file vm.c.

Referenced by rb_obj_is_thread().

◆ USE_THREAD_DATA_RECYCLE

#define USE_THREAD_DATA_RECYCLE   1

Definition at line 2331 of file vm.c.

Function Documentation

◆ Init_BareVM()

void Init_BareVM ( void  )

Definition at line 3122 of file vm.c.

References EXIT_FAILURE, MEMZERO, rb_thread_set_current_raw, and ruby_mimmalloc().

Referenced by ruby_setup().

◆ Init_top_self()

void Init_top_self ( void  )

◆ Init_VM()

void Init_VM ( void  )

◆ Init_vm_objects()

void Init_vm_objects ( void  )

◆ NORETURN()

NORETURN ( static void   vm_iter_breakrb_thread_t *th, VALUE val)

◆ PUREFUNC() [1/3]

PUREFUNC ( static inline const VALUE VM_EP_LEPconst VALUE *)

◆ PUREFUNC() [2/3]

PUREFUNC ( static inline const VALUE VM_CF_LEPconst rb_control_frame_t *const cfp)

◆ PUREFUNC() [3/3]

PUREFUNC ( static inline VALUE   VM_CF_BLOCK_HANDLERconst rb_control_frame_t *const cfp)

◆ rb_backref_get()

VALUE rb_backref_get ( void  )

Definition at line 1229 of file vm.c.

Referenced by rb_f_global_variables().

◆ rb_backref_set()

void rb_backref_set ( VALUE  val)

Definition at line 1235 of file vm.c.

Referenced by rb_reg_match2().

◆ rb_binding_add_dynavars()

const VALUE* rb_binding_add_dynavars ( VALUE  bindval,
rb_binding_t bind,
int  dyncount,
const ID dynvars 
)

Definition at line 926 of file vm.c.

References rb_binding_t::pathobj.

◆ rb_class_path_no_cache()

VALUE rb_class_path_no_cache ( VALUE  _klass)

Definition at line 310 of file variable.c.

References fc_result::path.

Referenced by rb_vm_inc_const_missing_count(), and ruby_th_dtrace_setup().

◆ rb_execution_context_mark()

void rb_execution_context_mark ( const rb_execution_context_t ec)

◆ rb_fiber_mark_self()

void rb_fiber_mark_self ( rb_fiber_t fib)

◆ rb_frame_method_id_and_class()

int rb_frame_method_id_and_class ( ID idp,
VALUE klassp 
)

Definition at line 2070 of file vm.c.

References GET_THREAD, and rb_thread_method_id_and_class().

◆ rb_insn_operand_intern()

VALUE rb_insn_operand_intern ( const rb_iseq_t iseq,
VALUE  insn,
int  op_no,
VALUE  op,
int  len,
size_t  pos,
VALUE pnop,
VALUE  child 
)

◆ rb_iseq_eval()

VALUE rb_iseq_eval ( const rb_iseq_t iseq)

Definition at line 2027 of file vm.c.

References GET_THREAD, and rb_captured_block::val.

◆ rb_iseq_eval_main()

VALUE rb_iseq_eval_main ( const rb_iseq_t iseq)

Definition at line 2037 of file vm.c.

References GET_THREAD, and rb_captured_block::val.

◆ rb_iseq_local_variables()

VALUE rb_iseq_local_variables ( const rb_iseq_t iseq)

Definition at line 794 of file vm.c.

Referenced by rb_iseqw_local_variables().

◆ rb_iter_break()

void rb_iter_break ( void  )

Definition at line 1491 of file vm.c.

◆ rb_iter_break_value()

void rb_iter_break_value ( VALUE  val)

Definition at line 1497 of file vm.c.

◆ rb_lastline_get()

VALUE rb_lastline_get ( void  )

Definition at line 1241 of file vm.c.

Referenced by rb_io_print(), and rb_reg_match2().

◆ rb_lastline_set()

void rb_lastline_set ( VALUE  val)

Definition at line 1247 of file vm.c.

◆ rb_next_class_serial()

rb_serial_t rb_next_class_serial ( void  )

Definition at line 309 of file vm.c.

References NEXT_CLASS_SERIAL.

◆ rb_obj_is_thread()

VALUE rb_obj_is_thread ( VALUE  obj)

Definition at line 2506 of file vm.c.

References Qfalse, Qtrue, rb_typeddata_is_kind_of(), and thread_data_type.

◆ rb_proc_create()

VALUE rb_proc_create ( VALUE  klass,
const struct rb_block block,
int8_t  safe_level,
int8_t  is_from_method,
int8_t  is_lambda 
)

Definition at line 851 of file vm.c.

References GET_THREAD, rb_proc_alloc(), RTYPEDDATA_DATA, and VM_ASSERT.

Referenced by rb_obj_is_proc().

◆ rb_proc_create_from_captured()

VALUE rb_proc_create_from_captured ( VALUE  klass,
const struct rb_captured_block captured,
enum rb_block_type  block_type,
int8_t  safe_level,
int8_t  is_from_method,
int8_t  is_lambda 
)

◆ rb_ruby_debug_ptr()

VALUE* rb_ruby_debug_ptr ( void  )

Definition at line 3200 of file vm.c.

◆ rb_ruby_verbose_ptr()

VALUE* rb_ruby_verbose_ptr ( void  )

Definition at line 3194 of file vm.c.

◆ rb_source_loc()

const char* rb_source_loc ( int *  pline)

Definition at line 1313 of file vm.c.

References rb_source_location(), and RSTRING_PTR.

Referenced by rb_bug(), and rb_bug_context().

◆ rb_source_location()

VALUE rb_source_location ( int *  pline)

◆ rb_sourcefile()

const char* rb_sourcefile ( void  )

◆ rb_sourcefilename()

VALUE rb_sourcefilename ( void  )

◆ rb_sourceline()

int rb_sourceline ( void  )

◆ rb_str_concat_literals()

VALUE rb_str_concat_literals ( size_t  ,
const VALUE  
)

◆ rb_thread_alloc()

VALUE rb_thread_alloc ( VALUE  klass)

Definition at line 2582 of file vm.c.

◆ rb_thread_current_status()

VALUE rb_thread_current_status ( const rb_thread_t th)

◆ rb_thread_mark()

void rb_thread_mark ( void *  ptr)

◆ rb_thread_method_id_and_class()

int rb_thread_method_id_and_class ( rb_thread_t th,
ID idp,
ID called_idp,
VALUE klassp 
)

◆ rb_thread_recycle_stack_release()

void rb_thread_recycle_stack_release ( VALUE stack)

Definition at line 2355 of file vm.c.

References NULL, rb_fiber_mark_self(), RECYCLE_MAX, ruby_xfree(), and VM_ASSERT.

◆ rb_vm_add_root_module()

int rb_vm_add_root_module ( ID  id,
VALUE  module 
)

Definition at line 2172 of file vm.c.

References rb_vm_struct::defined_module_hash, GET_VM, ID2SYM, rb_hash_aset(), and TRUE.

Referenced by rb_define_class(), and rb_define_module().

◆ rb_vm_block_copy()

void rb_vm_block_copy ( VALUE  obj,
const struct rb_block dst,
const struct rb_block src 
)

Definition at line 831 of file vm.c.

◆ rb_vm_block_ep_update()

void rb_vm_block_ep_update ( VALUE  obj,
const struct rb_block dst,
const VALUE ep 
)

Definition at line 271 of file vm.c.

References rb_block::as, rb_block::captured, rb_captured_block::ep, Qundef, and RB_OBJ_WRITTEN.

Referenced by rb_proc_create_from_captured().

◆ rb_vm_call_cfunc()

VALUE rb_vm_call_cfunc ( VALUE  recv,
VALUE(*)(VALUE func,
VALUE  arg,
VALUE  block_handler,
VALUE  filename 
)

◆ rb_vm_cbase()

VALUE rb_vm_cbase ( void  )

◆ rb_vm_check_redefinition_by_prepend()

void rb_vm_check_redefinition_by_prepend ( VALUE  klass)

Definition at line 1552 of file vm.c.

◆ rb_vm_control_frame_id_and_class()

int rb_vm_control_frame_id_and_class ( const rb_control_frame_t cfp,
ID idp,
ID called_idp,
VALUE klassp 
)

◆ rb_vm_cref()

rb_cref_t* rb_vm_cref ( void  )

◆ rb_vm_cref_in_context()

const rb_cref_t* rb_vm_cref_in_context ( VALUE  self,
VALUE  cbase 
)

◆ rb_vm_cref_new_toplevel()

rb_cref_t* rb_vm_cref_new_toplevel ( void  )

Definition at line 254 of file vm.c.

◆ rb_vm_cref_replace_with_duplicated_cref()

rb_cref_t* rb_vm_cref_replace_with_duplicated_cref ( void  )

◆ rb_vm_env_local_variables()

VALUE rb_vm_env_local_variables ( const rb_env_t env)

Definition at line 785 of file vm.c.

◆ rb_vm_env_prev_env()

const rb_env_t* rb_vm_env_prev_env ( const rb_env_t env)

Definition at line 741 of file vm.c.

References rb_env_t::ep.

Referenced by rb_vmdebug_env_dump_raw().

◆ rb_vm_ep_local_ep()

const VALUE* rb_vm_ep_local_ep ( const VALUE ep)

Definition at line 55 of file vm.c.

◆ rb_vm_frame_block_handler()

VALUE rb_vm_frame_block_handler ( const rb_control_frame_t cfp)

Definition at line 82 of file vm.c.

Referenced by rb_block_given_p(), and rb_block_min_max_arity().

◆ rb_vm_fstring_table()

st_table* rb_vm_fstring_table ( void  )

Definition at line 3211 of file vm.c.

References GET_VM.

Referenced by Init_String(), and rb_str_free().

◆ rb_vm_get_binding_creatable_next_cfp()

rb_control_frame_t* rb_vm_get_binding_creatable_next_cfp ( const rb_thread_t th,
const rb_control_frame_t cfp 
)

◆ rb_vm_get_ruby_level_next_cfp()

rb_control_frame_t* rb_vm_get_ruby_level_next_cfp ( const rb_thread_t th,
const rb_control_frame_t cfp 
)

◆ rb_vm_inc_const_missing_count()

void rb_vm_inc_const_missing_count ( void  )

Definition at line 330 of file vm.c.

References rb_class_path_no_cache().

Referenced by rb_const_missing().

◆ rb_vm_invoke_proc()

VALUE rb_vm_invoke_proc ( rb_thread_t th,
rb_proc_t proc,
int  argc,
const VALUE argv,
VALUE  passed_block_handler 
)

Definition at line 1172 of file vm.c.

Referenced by rb_fiber_start(), rb_proc_call(), and rb_proc_call_with_block().

◆ rb_vm_localjump_error()

void rb_vm_localjump_error ( const char *  mesg,
VALUE  value,
int  reason 
)

Definition at line 1414 of file vm.c.

Referenced by rb_need_block().

◆ rb_vm_make_binding()

VALUE rb_vm_make_binding ( rb_thread_t th,
const rb_control_frame_t src_cfp 
)

◆ rb_vm_make_jump_tag_but_local_jump()

VALUE rb_vm_make_jump_tag_but_local_jump ( int  state,
VALUE  val 
)

Definition at line 1421 of file vm.c.

References GET_THREAD, Qnil, Qundef, TAG_BREAK, TAG_NEXT, TAG_REDO, TAG_RETRY, and TAG_RETURN.

Referenced by rb_fiber_start().

◆ rb_vm_make_proc()

VALUE rb_vm_make_proc ( rb_thread_t th,
const struct rb_captured_block captured,
VALUE  klass 
)

Definition at line 868 of file vm.c.

References FALSE, and rb_vm_make_proc_lambda().

◆ rb_vm_make_proc_lambda()

VALUE rb_vm_make_proc_lambda ( rb_thread_t th,
const struct rb_captured_block captured,
VALUE  klass,
int8_t  is_lambda 
)

Definition at line 874 of file vm.c.

Referenced by rb_vm_make_proc().

◆ rb_vm_mark()

void rb_vm_mark ( void *  ptr)

◆ rb_vm_pop_cfunc_frame()

void rb_vm_pop_cfunc_frame ( void  )

◆ rb_vm_register_special_exception_str()

void rb_vm_register_special_exception_str ( enum ruby_special_exceptions  sp,
VALUE  cls,
VALUE  mesg 
)

◆ rb_vm_rewind_cfp()

void rb_vm_rewind_cfp ( rb_thread_t th,
rb_control_frame_t cfp 
)

Definition at line 544 of file vm.c.

References rb_execution_context_struct::cfp, and rb_thread_struct::ec.

◆ rb_vm_set_progname()

void rb_vm_set_progname ( VALUE  filename)

◆ rb_vm_stack_to_heap()

void rb_vm_stack_to_heap ( rb_thread_t th)

◆ rb_vm_top_self()

VALUE rb_vm_top_self ( void  )

Definition at line 3166 of file vm.c.

References GET_VM.

Referenced by Init_top_self(), and rb_eval_string_wrap().

◆ rb_vm_trace_mark_event_hooks()

void rb_vm_trace_mark_event_hooks ( rb_hook_list_t hooks)

◆ ruby_th_dtrace_setup()

int ruby_th_dtrace_setup ( rb_thread_t th,
VALUE  klass,
ID  id,
struct ruby_dtrace_method_hook_args args 
)

◆ ruby_vm_at_exit()

void ruby_vm_at_exit ( void(*)(rb_vm_t *)  func)

Definition at line 563 of file vm.c.

References ALLOC, rb_vm_struct::at_exit, rb_at_exit_list::func, GET_VM, and rb_at_exit_list::next.

◆ ruby_vm_destruct()

int ruby_vm_destruct ( rb_vm_t vm)

Variable Documentation

◆ rb_cRubyVM

VALUE rb_cRubyVM

Definition at line 314 of file vm.c.

Referenced by Init_ISeq().

◆ rb_cThread

VALUE rb_cThread

Definition at line 315 of file vm.c.

◆ rb_fstring_hash_type

const struct st_hash_type rb_fstring_hash_type

Definition at line 254 of file string.c.

◆ rb_gc_stack_maxsize

size_t rb_gc_stack_maxsize

◆ rb_gc_stack_start

VALUE* rb_gc_stack_start

◆ rb_mRubyVMFrozenCore

VALUE rb_mRubyVMFrozenCore

Definition at line 316 of file vm.c.

◆ ruby_current_thread

rb_thread_t* ruby_current_thread = 0

Definition at line 320 of file vm.c.

◆ ruby_current_vm

rb_vm_t* ruby_current_vm = 0

Definition at line 321 of file vm.c.

◆ ruby_threadptr_data_type

const rb_data_type_t ruby_threadptr_data_type
Initial value:
= {
"VM/thread",
{
thread_free,
thread_memsize,
},
}
#define RUBY_TYPED_FREE_IMMEDIATELY
Definition: ruby.h:1138
void rb_thread_mark(void *ptr)
Definition: vm.c:2413

Definition at line 2495 of file vm.c.

◆ ruby_vm_class_serial

rb_serial_t ruby_vm_class_serial = 1

Definition at line 325 of file vm.c.

◆ ruby_vm_collect_usage_func_insn

void(* ruby_vm_collect_usage_func_insn) (int insn) = NULL

Definition at line 3381 of file vm.c.

◆ ruby_vm_collect_usage_func_operand

void(* ruby_vm_collect_usage_func_operand) (int insn, int n, VALUE op) = NULL

Definition at line 3382 of file vm.c.

◆ ruby_vm_collect_usage_func_register

void(* ruby_vm_collect_usage_func_register) (int reg, int isset) = NULL

Definition at line 3383 of file vm.c.

◆ ruby_vm_const_missing_count

VALUE ruby_vm_const_missing_count = 0

Definition at line 319 of file vm.c.

◆ ruby_vm_event_flags

rb_event_flag_t ruby_vm_event_flags

Definition at line 322 of file vm.c.

◆ ruby_vm_global_constant_state

rb_serial_t ruby_vm_global_constant_state = 1

Definition at line 324 of file vm.c.

◆ ruby_vm_global_method_state

rb_serial_t ruby_vm_global_method_state = 1

Definition at line 323 of file vm.c.