Ruby
2.4.2p198(2017-09-14revision59899)
|
#include "ruby_assert.h"
#include "ruby/ruby.h"
#include "ruby/st.h"
#include "node.h"
#include "vm_debug.h"
#include "vm_opts.h"
#include "id.h"
#include "method.h"
#include "ruby_atomic.h"
#include "ccan/list/list.h"
#include "ruby/thread_native.h"
#include <setjmp.h>
#include <signal.h>
#include <varargs.h>
Go to the source code of this file.
Data Structures | |
struct | iseq_inline_cache_entry |
union | iseq_inline_storage_entry |
struct | rb_call_info |
struct | rb_call_info_kw_arg |
struct | rb_call_info_with_kwarg |
struct | rb_calling_info |
struct | rb_call_cache |
struct | rb_iseq_location_struct |
struct | rb_iseq_constant_body |
struct | rb_iseq_struct |
struct | rb_at_exit_list |
struct | rb_hook_list_struct |
struct | rb_vm_struct |
struct | rb_captured_block |
struct | rb_block |
struct | rb_control_frame_struct |
struct | rb_vm_tag |
struct | rb_vm_protect_tag |
struct | rb_unblock_callback |
struct | rb_thread_list_struct |
struct | rb_ensure_entry |
struct | rb_ensure_list |
struct | rb_thread_struct |
struct | rb_proc_t |
struct | rb_env_t |
struct | rb_binding_t |
struct | rb_trace_arg_struct |
Macros | |
#define | VM_CHECK_MODE 0 |
#define | VMDEBUG 0 |
VM Debug Level. More... | |
#define | VM_ASSERT(expr) ((void)0) |
#define | VM_UNREACHABLE(func) ((void)0) |
#define | RUBY_VM_THREAD_MODEL 2 |
#define | ENABLE_VM_OBJSPACE 1 |
#define | NSIG (_SIGMAX + 1) /* For QNX */ |
#define | RUBY_NSIG NSIG |
#define | va_init_list(a, b) va_start((a)) |
#define | TAG_RETURN RUBY_TAG_RETURN |
#define | TAG_BREAK RUBY_TAG_BREAK |
#define | TAG_NEXT RUBY_TAG_NEXT |
#define | TAG_RETRY RUBY_TAG_RETRY |
#define | TAG_REDO RUBY_TAG_REDO |
#define | TAG_RAISE RUBY_TAG_RAISE |
#define | TAG_THROW RUBY_TAG_THROW |
#define | TAG_FATAL RUBY_TAG_FATAL |
#define | TAG_MASK RUBY_TAG_MASK |
#define | CoreDataFromValue(obj, type) (type*)DATA_PTR(obj) |
#define | GetCoreDataFromValue(obj, type, ptr) ((ptr) = CoreDataFromValue((obj), type)) |
#define | USE_LAZY_LOAD 0 |
#define | GetVMPtr(obj, ptr) GetCoreDataFromValue((obj), rb_vm_t, (ptr)) |
#define | RUBY_VM_SIZE_ALIGN 4096 |
#define | RUBY_VM_THREAD_VM_STACK_SIZE ( 128 * 1024 * sizeof(VALUE)) /* 512 KB or 1024 KB */ |
#define | RUBY_VM_THREAD_VM_STACK_SIZE_MIN ( 2 * 1024 * sizeof(VALUE)) /* 8 KB or 16 KB */ |
#define | RUBY_VM_THREAD_MACHINE_STACK_SIZE ( 128 * 1024 * sizeof(VALUE)) /* 512 KB or 1024 KB */ |
#define | RUBY_VM_THREAD_MACHINE_STACK_SIZE_MIN ( 16 * 1024 * sizeof(VALUE)) /* 64 KB or 128 KB */ |
#define | RUBY_VM_FIBER_VM_STACK_SIZE ( 16 * 1024 * sizeof(VALUE)) /* 64 KB or 128 KB */ |
#define | RUBY_VM_FIBER_VM_STACK_SIZE_MIN ( 2 * 1024 * sizeof(VALUE)) /* 8 KB or 16 KB */ |
#define | RUBY_VM_FIBER_MACHINE_STACK_SIZE ( 64 * 1024 * sizeof(VALUE)) /* 256 KB or 512 KB */ |
#define | RUBY_VM_FIBER_MACHINE_STACK_SIZE_MIN ( 16 * 1024 * sizeof(VALUE)) /* 64 KB or 128 KB */ |
#define | INTEGER_REDEFINED_OP_FLAG (1 << 0) |
#define | FLOAT_REDEFINED_OP_FLAG (1 << 1) |
#define | STRING_REDEFINED_OP_FLAG (1 << 2) |
#define | ARRAY_REDEFINED_OP_FLAG (1 << 3) |
#define | HASH_REDEFINED_OP_FLAG (1 << 4) |
#define | SYMBOL_REDEFINED_OP_FLAG (1 << 6) |
#define | TIME_REDEFINED_OP_FLAG (1 << 7) |
#define | REGEXP_REDEFINED_OP_FLAG (1 << 8) |
#define | NIL_REDEFINED_OP_FLAG (1 << 9) |
#define | TRUE_REDEFINED_OP_FLAG (1 << 10) |
#define | FALSE_REDEFINED_OP_FLAG (1 << 11) |
#define | BASIC_OP_UNREDEFINED_P(op, klass) (LIKELY((GET_VM()->redefined_flag[(op)]&(klass)) == 0)) |
#define | VM_DEBUG_BP_CHECK 0 |
#define | VM_DEBUG_VERIFY_METHOD_CACHE (VM_DEBUG_MODE != 0) |
#define | GetThreadPtr(obj, ptr) TypedData_Get_Struct((obj), rb_thread_t, &ruby_threadptr_data_type, (ptr)) |
#define | VM_DEFINECLASS_TYPE(x) ((rb_vm_defineclass_type_t)(x) & VM_DEFINECLASS_TYPE_MASK) |
#define | VM_DEFINECLASS_FLAG_SCOPED 0x08 |
#define | VM_DEFINECLASS_FLAG_HAS_SUPERCLASS 0x10 |
#define | VM_DEFINECLASS_SCOPED_P(x) ((x) & VM_DEFINECLASS_FLAG_SCOPED) |
#define | VM_DEFINECLASS_HAS_SUPERCLASS_P(x) ((x) & VM_DEFINECLASS_FLAG_HAS_SUPERCLASS) |
#define | GetProcPtr(obj, ptr) GetCoreDataFromValue((obj), rb_proc_t, (ptr)) |
#define | GetBindingPtr(obj, ptr) GetCoreDataFromValue((obj), rb_binding_t, (ptr)) |
#define | VM_CHECKMATCH_TYPE_MASK 0x03 |
#define | VM_CHECKMATCH_ARRAY 0x04 |
#define | VM_CALL_ARGS_SPLAT (0x01 << 0) /* m(*args) */ |
#define | VM_CALL_ARGS_BLOCKARG (0x01 << 1) /* m(&block) */ |
#define | VM_CALL_FCALL (0x01 << 2) /* m(...) */ |
#define | VM_CALL_VCALL (0x01 << 3) /* m */ |
#define | VM_CALL_ARGS_SIMPLE (0x01 << 4) /* (ci->flag & (SPLAT|BLOCKARG)) && blockiseq == NULL && ci->kw_arg == NULL */ |
#define | VM_CALL_BLOCKISEQ (0x01 << 5) /* has blockiseq */ |
#define | VM_CALL_KWARG (0x01 << 6) /* has kwarg */ |
#define | VM_CALL_TAILCALL (0x01 << 7) /* located at tail position */ |
#define | VM_CALL_SUPER (0x01 << 8) /* super */ |
#define | VM_CALL_OPT_SEND (0x01 << 9) /* internal flag */ |
#define | FUNC_FASTCALL(x) x |
#define | VM_TAGGED_PTR_SET(p, tag) ((VALUE)(p) | (tag)) |
#define | VM_TAGGED_PTR_REF(v, mask) ((void *)((v) & ~mask)) |
#define | GC_GUARDED_PTR(p) VM_TAGGED_PTR_SET((p), 0x01) |
#define | GC_GUARDED_PTR_REF(p) VM_TAGGED_PTR_REF((p), 0x03) |
#define | GC_GUARDED_PTR_P(p) (((VALUE)(p)) & 0x01) |
#define | VM_ENV_DATA_SIZE ( 3) |
#define | VM_ENV_DATA_INDEX_ME_CREF (-2) /* ep[-2] */ |
#define | VM_ENV_DATA_INDEX_SPECVAL (-1) /* ep[-1] */ |
#define | VM_ENV_DATA_INDEX_FLAGS ( 0) /* ep[ 0] */ |
#define | VM_ENV_DATA_INDEX_ENV ( 1) /* ep[ 1] */ |
#define | VM_ENV_DATA_INDEX_ENV_PROC ( 2) /* ep[ 2] */ |
#define | VM_ENV_INDEX_LAST_LVAR (-VM_ENV_DATA_SIZE) |
#define | RUBYVM_CFUNC_FRAME_P(cfp) (VM_FRAME_TYPE(cfp) == VM_FRAME_MAGIC_CFUNC) |
#define | VM_GUARDED_PREV_EP(ep) GC_GUARDED_PTR(ep) |
#define | VM_BLOCK_HANDLER_NONE 0 |
#define | RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp) ((cfp)+1) |
#define | RUBY_VM_NEXT_CONTROL_FRAME(cfp) ((cfp)-1) |
#define | RUBY_VM_END_CONTROL_FRAME(th) ((rb_control_frame_t *)((th)->stack + (th)->stack_size)) |
#define | RUBY_VM_VALID_CONTROL_FRAME_P(cfp, ecfp) ((void *)(ecfp) > (void *)(cfp)) |
#define | RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P(th, cfp) (!RUBY_VM_VALID_CONTROL_FRAME_P((cfp), RUBY_VM_END_CONTROL_FRAME(th))) |
#define | SDR() rb_vmdebug_stack_dump_raw(GET_THREAD(), GET_THREAD()->cfp) |
#define | SDR2(cfp) rb_vmdebug_stack_dump_raw(GET_THREAD(), (cfp)) |
#define | sysstack_error GET_VM()->special_exceptions[ruby_error_sysstack] |
#define | RUBY_CONST_ASSERT(expr) (1/!!(expr)) /* expr must be a compile-time constant */ |
#define | VM_STACK_OVERFLOWED_P(cfp, sp, margin) |
#define | WHEN_VM_STACK_OVERFLOWED(cfp, sp, margin) if (LIKELY(!VM_STACK_OVERFLOWED_P(cfp, sp, margin))) {(void)0;} else /* overflowed */ |
#define | CHECK_VM_STACK_OVERFLOW0(cfp, sp, margin) WHEN_VM_STACK_OVERFLOWED(cfp, sp, margin) vm_stackoverflow() |
#define | CHECK_VM_STACK_OVERFLOW(cfp, margin) WHEN_VM_STACK_OVERFLOWED(cfp, (cfp)->sp, margin) vm_stackoverflow() |
#define | GET_VM() ruby_current_vm |
#define | OPT_CALL_CFUNC_WITHOUT_FRAME 0 |
#define | GET_THREAD() vm_thread_with_frame(ruby_current_thread) |
#define | vm_thread_with_frame(th) (th) |
#define | rb_thread_set_current_raw(th) (void)(ruby_current_thread = (th)) |
#define | rb_thread_set_current(th) |
#define | RUBY_VM_SET_TIMER_INTERRUPT(th) ATOMIC_OR((th)->interrupt_flag, TIMER_INTERRUPT_MASK) |
#define | RUBY_VM_SET_INTERRUPT(th) ATOMIC_OR((th)->interrupt_flag, PENDING_INTERRUPT_MASK) |
#define | RUBY_VM_SET_POSTPONED_JOB_INTERRUPT(th) ATOMIC_OR((th)->interrupt_flag, POSTPONED_JOB_INTERRUPT_MASK) |
#define | RUBY_VM_SET_TRAP_INTERRUPT(th) ATOMIC_OR((th)->interrupt_flag, TRAP_INTERRUPT_MASK) |
#define | RUBY_VM_INTERRUPTED(th) ((th)->interrupt_flag & ~(th)->interrupt_mask & (PENDING_INTERRUPT_MASK|TRAP_INTERRUPT_MASK)) |
#define | RUBY_VM_INTERRUPTED_ANY(th) ((th)->interrupt_flag & ~(th)->interrupt_mask) |
#define | RUBY_VM_CHECK_INTS(th) ruby_vm_check_ints(th) |
#define | EXEC_EVENT_HOOK_ORIG(th_, flag_, self_, id_, called_id_, klass_, data_, pop_p_) |
#define | EXEC_EVENT_HOOK(th_, flag_, self_, id_, called_id_, klass_, data_) EXEC_EVENT_HOOK_ORIG(th_, flag_, self_, id_, called_id_, klass_, data_, 0) |
#define | EXEC_EVENT_HOOK_AND_POP_FRAME(th_, flag_, self_, id_, called_id_, klass_, data_) EXEC_EVENT_HOOK_ORIG(th_, flag_, self_, id_, called_id_, klass_, data_, 1) |
#define ARRAY_REDEFINED_OP_FLAG (1 << 3) |
Definition at line 578 of file vm_core.h.
Referenced by vm_redefinition_check_flag().
#define BASIC_OP_UNREDEFINED_P | ( | op, | |
klass | |||
) | (LIKELY((GET_VM()->redefined_flag[(op)]&(klass)) == 0)) |
Definition at line 588 of file vm_core.h.
Referenced by opt_eq_func().
#define CHECK_VM_STACK_OVERFLOW | ( | cfp, | |
margin | |||
) | WHEN_VM_STACK_OVERFLOWED(cfp, (cfp)->sp, margin) vm_stackoverflow() |
Definition at line 1497 of file vm_core.h.
Referenced by setup_parameters_complex(), vm_call0_body(), vm_call_method_missing(), vm_callee_setup_block_arg(), vm_callee_setup_block_arg_arg0_splat(), and vm_caller_setup_arg_splat().
#define CHECK_VM_STACK_OVERFLOW0 | ( | cfp, | |
sp, | |||
margin | |||
) | WHEN_VM_STACK_OVERFLOWED(cfp, sp, margin) vm_stackoverflow() |
Definition at line 1495 of file vm_core.h.
Referenced by vm_push_frame().
#define CoreDataFromValue | ( | obj, | |
type | |||
) | (type*)DATA_PTR(obj) |
#define EXEC_EVENT_HOOK | ( | th_, | |
flag_, | |||
self_, | |||
id_, | |||
called_id_, | |||
klass_, | |||
data_ | |||
) | EXEC_EVENT_HOOK_ORIG(th_, flag_, self_, id_, called_id_, klass_, data_, 0) |
Definition at line 1628 of file vm_core.h.
Referenced by fiber_switch(), gc_event_hook_body(), hook_before_rewind(), invoke_bmethod(), rb_fiber_start(), rb_get_backtrace(), rb_raise_jump(), rb_threadptr_execute_interrupts(), rb_vm_pop_cfunc_frame(), setup_exception(), thread_do_start(), vm_call0(), vm_call0_cfunc_with_frame(), vm_call_cfunc_with_frame(), and vm_exec().
#define EXEC_EVENT_HOOK_AND_POP_FRAME | ( | th_, | |
flag_, | |||
self_, | |||
id_, | |||
called_id_, | |||
klass_, | |||
data_ | |||
) | EXEC_EVENT_HOOK_ORIG(th_, flag_, self_, id_, called_id_, klass_, data_, 1) |
Definition at line 1631 of file vm_core.h.
Referenced by hook_before_rewind().
#define EXEC_EVENT_HOOK_ORIG | ( | th_, | |
flag_, | |||
self_, | |||
id_, | |||
called_id_, | |||
klass_, | |||
data_, | |||
pop_p_ | |||
) |
#define FALSE_REDEFINED_OP_FLAG (1 << 11) |
Definition at line 586 of file vm_core.h.
Referenced by vm_redefinition_check_flag().
#define FLOAT_REDEFINED_OP_FLAG (1 << 1) |
Definition at line 576 of file vm_core.h.
Referenced by opt_eq_func(), and vm_redefinition_check_flag().
#define FUNC_FASTCALL | ( | x | ) | x |
Definition at line 938 of file vm_core.h.
Referenced by define_aref_method(), and define_aset_method().
#define GC_GUARDED_PTR | ( | p | ) | VM_TAGGED_PTR_SET((p), 0x01) |
Definition at line 947 of file vm_core.h.
Referenced by collect_caller_bindings_cfunc(), and collect_caller_bindings_iseq().
#define GC_GUARDED_PTR_REF | ( | p | ) | VM_TAGGED_PTR_REF((p), 0x03) |
Definition at line 948 of file vm_core.h.
Referenced by collect_caller_bindings(), rb_vmdebug_stack_dump_raw(), and VM_ENV_PREV_EP().
#define GET_THREAD | ( | ) | vm_thread_with_frame(ruby_current_thread) |
Definition at line 1513 of file vm_core.h.
Referenced by args_setup_kw_parameters(), call_trace_func(), call_without_gvl(), caller_location(), check_match(), cont_capture(), cont_free(), cont_new(), cont_restore_thread(), debug_deadlock_check(), do_select(), errinfo_getter(), error_handle(), eval_string_with_cref(), eval_under(), fiber_current(), fiber_init(), fiber_switch(), fiber_t_alloc(), gc_mark_roots(), gc_page_sweep(), get_errinfo(), get_trace_arg(), Init_Cont(), Init_heap(), Init_signal(), Init_Thread(), Init_VM(), iseqw_s_compile_file(), location_to_str(), m_core_define_method(), m_core_define_singleton_method(), method_definition_set(), method_missing(), mod_using(), name_err_initialize(), obj_respond_to(), oldbt_init(), prev_frame_callee(), prev_frame_func(), proc_new(), rb_backtrace_print_as_bugreport(), rb_backtrace_print_to(), rb_binding_add_dynavars(), rb_binding_new(), rb_block_arity(), rb_block_given_p(), rb_block_min_max_arity(), rb_bug(), rb_bug_context(), rb_call(), rb_call0(), rb_call_super(), rb_catch_obj(), rb_catch_protect(), rb_check_deadlock(), rb_check_funcall_default(), rb_check_funcall_with_hook(), rb_cont_call(), rb_current_realfilepath(), rb_current_receiver(), rb_debug_inspector_open(), rb_ensure(), rb_errinfo(), rb_eval_cmd(), rb_eval_string_wrap(), rb_exec_end_proc(), rb_exit(), rb_f_abort(), rb_f_block_given_p(), rb_f_caller(), rb_f_caller_locations(), rb_f_kill(), rb_f_local_variables(), rb_fiber_start(), rb_frame_callee(), rb_frame_last_func(), rb_frame_method_id_and_class(), rb_frame_this_func(), rb_funcall_with_block(), rb_gc_register_mark_object(), rb_get_backtrace(), rb_iseq_compile_with_option(), rb_iseq_eval(), rb_iseq_eval_main(), rb_iter_break(), rb_iter_break_value(), rb_iterate(), rb_lambda_call(), rb_last_status_clear(), rb_last_status_get(), rb_last_status_set(), rb_load_internal(), rb_load_protect(), rb_longjmp(), rb_make_backtrace(), rb_memerror(), rb_method_call_with_block(), rb_method_missing(), rb_mod_define_method(), rb_mod_refine(), rb_mutex_lock(), rb_mutex_owned_p(), rb_mutex_trylock(), rb_mutex_unlock(), rb_mutex_wait_for(), rb_notify_fd_close(), rb_obj_respond_to(), rb_postponed_job_flush(), rb_postponed_job_register(), rb_postponed_job_register_one(), rb_proc_call(), rb_proc_call_with_block(), rb_proc_create(), rb_proc_create_from_captured(), rb_profile_frames(), rb_protect(), rb_raise_jump(), rb_require_internal(), rb_rescue2(), rb_safe_level(), rb_scope_module_func_check(), rb_scope_visibility_get(), rb_set_end_proc(), rb_set_errinfo(), rb_set_safe_level(), rb_set_safe_level_force(), rb_source_location(), rb_sourcefile(), rb_sourcefilename(), rb_sourceline(), rb_suppress_tracing(), rb_thread_check_ints(), rb_thread_current(), rb_thread_exit(), rb_thread_fd_select(), rb_thread_io_blocking_region(), rb_thread_kill(), rb_thread_list(), rb_thread_main(), rb_thread_mark(), rb_thread_s_abort_exc(), rb_thread_s_abort_exc_set(), rb_thread_s_handle_interrupt(), rb_thread_s_pending_interrupt_p(), rb_thread_s_report_exc(), rb_thread_s_report_exc_set(), rb_thread_schedule(), rb_thread_schedule_limits(), rb_thread_shield_wait(), rb_thread_sleep_deadly(), rb_thread_sleep_deadly_allow_spurious_wakeup(), rb_thread_sleep_forever(), rb_thread_start_timer_thread(), rb_thread_terminate_all(), rb_thread_wait_for(), rb_threadptr_raise(), rb_throw_obj(), rb_uninterruptible(), rb_vm_backtrace_object(), rb_vm_call_cfunc(), rb_vm_cbase(), rb_vm_cref(), rb_vm_cref_in_context(), rb_vm_cref_new_toplevel(), rb_vm_cref_replace_with_duplicated_cref(), rb_vm_frame_block_handler(), rb_vm_fstring_table(), rb_vm_make_jump_tag_but_local_jump(), rb_vm_pop_cfunc_frame(), rb_vmdebug_stack_dump_raw_current(), rb_waitpid(), rb_yield_0(), rb_yield_block(), rb_yield_lambda(), rb_yield_refine_block(), recursive_list_access(), refine_sym_proc_call(), return_fiber(), ruby_cleanup(), ruby_error_print(), ruby_exec_internal(), ruby_finalize_1(), ruby_init(), ruby_kill(), ruby_options(), ruby_stack_length(), ruby_th_dtrace_setup(), ruby_thread_init(), run_finalizer(), safe_setter(), send_internal(), signal_exec(), stack_check(), thgroup_list(), thread_create_core(), thread_join(), thread_raise_m(), top_define_method(), top_include(), top_using(), tracepoint_inspect(), update_coverage(), vm_backtrace_print(), vm_base_ptr(), VM_CAPTURED_BLOCK_TO_CFP(), VM_CFP_TO_CAPTURED_BLOCK(), vm_make_proc_with_iseq(), vm_svar_get(), vm_svar_set(), and yield_under().
#define GET_VM | ( | ) | ruby_current_vm |
Definition at line 1507 of file vm_core.h.
Referenced by get_loaded_features(), get_loaded_features_index(), get_loaded_features_index_raw(), get_loading_table(), Init_load(), Init_postponed_job(), Init_top_self(), Init_vm_objects(), lookup_rollback_func(), process_options(), push_include(), rb_add_event_hook(), rb_add_event_hook2(), rb_clear_trace_func(), rb_construct_expanded_load_path(), rb_f_kill(), rb_get_coverages(), rb_get_expanded_load_path(), rb_get_load_path(), rb_iseq_defined_string(), rb_remove_event_hook(), rb_remove_event_hook_with_data(), rb_reset_coverages(), rb_ruby_debug_ptr(), rb_ruby_verbose_ptr(), rb_set_coverages(), rb_signal_exec(), rb_thread_alone(), rb_thread_io_blocking_region(), rb_trap_exit(), rb_vm_add_root_module(), rb_vm_bugreport(), rb_vm_fstring_table(), rb_vm_register_special_exception(), rb_vm_set_progname(), rb_vm_top_self(), reset_loaded_features_snapshot(), ruby_cleanup(), ruby_init_loadpath_safe(), ruby_register_rollback_func_for_ensure(), ruby_setup(), ruby_vm_at_exit(), thread_join(), thread_s_new(), timer_thread_function(), tracepoint_stat_s(), trap(), and vm_default_params().
#define GetBindingPtr | ( | obj, | |
ptr | |||
) | GetCoreDataFromValue((obj), rb_binding_t, (ptr)) |
Definition at line 883 of file vm_core.h.
Referenced by bind_local_variable_defined_p(), bind_local_variable_get(), bind_local_variable_set(), bind_local_variables(), bind_receiver(), binding_dup(), proc_binding(), process_options(), rb_vm_make_binding(), and vm_set_main_stack().
#define GetCoreDataFromValue | ( | obj, | |
type, | |||
ptr | |||
) | ((ptr) = CoreDataFromValue((obj), type)) |
Definition at line 262 of file vm_core.h.
Referenced by backtrace_load_data(), backtrace_to_location_ary(), backtrace_to_str_ary(), bt_init(), location_ptr(), rb_backtrace_to_location_ary(), rb_backtrace_to_str_ary(), and vm_backtrace_to_ary().
#define GetProcPtr | ( | obj, | |
ptr | |||
) | GetCoreDataFromValue((obj), rb_proc_t, (ptr)) |
Definition at line 863 of file vm_core.h.
Referenced by block_proc_is_lambda(), make_curry_proc(), method_to_proc(), proc_binding(), proc_dup(), proc_to_s(), rb_block_arity(), rb_fiber_start(), rb_hash_proc(), rb_mod_define_method(), rb_proc_arity(), rb_proc_call(), rb_proc_call_with_block(), rb_proc_get_iseq(), rb_proc_lambda_p(), rb_proc_min_max_arity(), sym_proc_new(), thread_do_start(), trap_handler(), vm_call0_body(), vm_call_bmethod_body(), and vm_call_opt_call().
#define GetThreadPtr | ( | obj, | |
ptr | |||
) | TypedData_Get_Struct((obj), rb_thread_t, &ruby_threadptr_data_type, (ptr)) |
Definition at line 646 of file vm_core.h.
Referenced by cont_mark(), rb_fiber_reset_root_local_storage(), rb_thread_abort_exc(), rb_thread_abort_exc_set(), rb_thread_alive_p(), rb_thread_execute_interrupts(), rb_thread_getname(), rb_thread_group(), rb_thread_inspect(), rb_thread_interrupted(), rb_thread_key_p(), rb_thread_keys(), rb_thread_kill(), rb_thread_local_aref(), rb_thread_local_aset(), rb_thread_pending_interrupt_p(), rb_thread_priority(), rb_thread_priority_set(), rb_thread_report_exc(), rb_thread_report_exc_set(), rb_thread_safe_level(), rb_thread_setname(), rb_thread_status(), rb_thread_stop_p(), rb_thread_to_be_killed(), rb_thread_wakeup_alive(), rb_tracepoint_new(), rb_vmdebug_stack_dump_th(), rb_vmdebug_thread_dump_regs(), rb_vmdebug_thread_dump_state(), ruby_thread_init(), thgroup_add(), thread_add_trace_func_m(), thread_backtrace_to_ary(), thread_create_core(), thread_initialize(), thread_join_m(), thread_raise_m(), thread_s_new(), thread_set_trace_func_m(), thread_value(), and thval2thread_t().
#define GetVMPtr | ( | obj, | |
ptr | |||
) | GetCoreDataFromValue((obj), rb_vm_t, (ptr)) |
#define HASH_REDEFINED_OP_FLAG (1 << 4) |
Definition at line 579 of file vm_core.h.
Referenced by vm_redefinition_check_flag().
#define INTEGER_REDEFINED_OP_FLAG (1 << 0) |
Definition at line 575 of file vm_core.h.
Referenced by opt_eq_func(), and vm_redefinition_check_flag().
#define NIL_REDEFINED_OP_FLAG (1 << 9) |
Definition at line 584 of file vm_core.h.
Referenced by vm_redefinition_check_flag().
#define NSIG (_SIGMAX + 1) /* For QNX */ |
Definition at line 95 of file vm_core.h.
Referenced by esignal_init(), rb_exec_async_signal_safe(), and trap_signm().
#define rb_thread_set_current | ( | th | ) |
Definition at line 1529 of file vm_core.h.
Referenced by blocking_region_end(), Init_VM(), rb_thread_schedule_limits(), and thread_start_func_2().
#define rb_thread_set_current_raw | ( | th | ) | (void)(ruby_current_thread = (th)) |
Definition at line 1528 of file vm_core.h.
Referenced by Init_BareVM().
#define REGEXP_REDEFINED_OP_FLAG (1 << 8) |
Definition at line 583 of file vm_core.h.
Referenced by vm_redefinition_check_flag().
#define RUBY_CONST_ASSERT | ( | expr | ) | (1/!!(expr)) /* expr must be a compile-time constant */ |
#define RUBY_NSIG NSIG |
Definition at line 98 of file vm_core.h.
Referenced by rb_get_next_signal(), and rb_vm_mark().
#define RUBY_VM_CHECK_INTS | ( | th | ) | ruby_vm_check_ints(th) |
Definition at line 1569 of file vm_core.h.
Referenced by fiber_switch(), rb_thread_s_handle_interrupt(), rb_thread_schedule(), rb_waitpid(), ruby_cleanup(), set_unblock_function(), thread_raise_m(), vm_call0_body(), and vm_call_iseq_setup_tailcall().
#define RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P | ( | th, | |
cfp | |||
) | (!RUBY_VM_VALID_CONTROL_FRAME_P((cfp), RUBY_VM_END_CONTROL_FRAME(th))) |
Definition at line 1178 of file vm_core.h.
Referenced by current_method_entry(), current_vm_stack_arg(), rb_frame_last_func(), rb_vm_get_binding_creatable_next_cfp(), rb_vm_get_ruby_level_next_cfp(), vm_get_ruby_level_caller_cfp(), and vm_normal_frame().
#define RUBY_VM_END_CONTROL_FRAME | ( | th | ) | ((rb_control_frame_t *)((th)->stack + (th)->stack_size)) |
Definition at line 1174 of file vm_core.h.
Referenced by backtrace_each(), errinfo_place(), rb_profile_frames(), rb_vm_search_cf_from_ep(), and vm_throw_start().
#define RUBY_VM_FIBER_MACHINE_STACK_SIZE ( 64 * 1024 * sizeof(VALUE)) /* 256 KB or 512 KB */ |
Definition at line 571 of file vm_core.h.
Referenced by vm_default_params_setup().
#define RUBY_VM_FIBER_MACHINE_STACK_SIZE_MIN ( 16 * 1024 * sizeof(VALUE)) /* 64 KB or 128 KB */ |
Definition at line 572 of file vm_core.h.
Referenced by vm_default_params_setup().
#define RUBY_VM_FIBER_VM_STACK_SIZE ( 16 * 1024 * sizeof(VALUE)) /* 64 KB or 128 KB */ |
Definition at line 569 of file vm_core.h.
Referenced by vm_default_params_setup().
#define RUBY_VM_FIBER_VM_STACK_SIZE_MIN ( 2 * 1024 * sizeof(VALUE)) /* 8 KB or 16 KB */ |
Definition at line 570 of file vm_core.h.
Referenced by vm_default_params_setup().
#define RUBY_VM_INTERRUPTED | ( | th | ) | ((th)->interrupt_flag & ~(th)->interrupt_mask & (PENDING_INTERRUPT_MASK|TRAP_INTERRUPT_MASK)) |
Definition at line 1552 of file vm_core.h.
Referenced by lock_func(), rb_check_deadlock(), and rb_thread_interrupted().
#define RUBY_VM_INTERRUPTED_ANY | ( | th | ) | ((th)->interrupt_flag & ~(th)->interrupt_mask) |
Definition at line 1553 of file vm_core.h.
Referenced by ruby_vm_check_ints(), set_unblock_function(), and vm_check_ints_blocking().
#define RUBY_VM_NEXT_CONTROL_FRAME | ( | cfp | ) | ((cfp)-1) |
Definition at line 1173 of file vm_core.h.
Referenced by backtrace_each().
#define RUBY_VM_PREVIOUS_CONTROL_FRAME | ( | cfp | ) | ((cfp)+1) |
Definition at line 1172 of file vm_core.h.
Referenced by current_method_entry(), current_vm_stack_arg(), errinfo_place(), name_err_initialize(), next_not_local_frame(), previous_frame(), proc_new(), rb_current_realfilepath(), rb_f_block_given_p(), rb_f_local_variables(), rb_frame_last_func(), rb_profile_frames(), rb_thread_mark(), rb_vm_get_binding_creatable_next_cfp(), rb_vm_get_ruby_level_next_cfp(), rb_vm_make_binding(), rb_vm_search_cf_from_ep(), rb_vm_stack_to_heap(), rb_vmdebug_stack_dump_th(), send_internal(), vm_base_ptr(), vm_call_cfunc_with_frame(), vm_call_iseq_setup_tailcall(), vm_get_ruby_level_caller_cfp(), vm_make_env_each(), vm_normal_frame(), vm_pop_frame(), and vm_throw_start().
#define RUBY_VM_SET_INTERRUPT | ( | th | ) | ATOMIC_OR((th)->interrupt_flag, PENDING_INTERRUPT_MASK) |
Definition at line 1549 of file vm_core.h.
Referenced by rb_fiber_start(), rb_thread_s_handle_interrupt(), rb_threadptr_interrupt_common(), and vm_check_ints_blocking().
#define RUBY_VM_SET_POSTPONED_JOB_INTERRUPT | ( | th | ) | ATOMIC_OR((th)->interrupt_flag, POSTPONED_JOB_INTERRUPT_MASK) |
Definition at line 1550 of file vm_core.h.
Referenced by postponed_job_register(), and rb_postponed_job_register_one().
#define RUBY_VM_SET_TIMER_INTERRUPT | ( | th | ) | ATOMIC_OR((th)->interrupt_flag, TIMER_INTERRUPT_MASK) |
Definition at line 1548 of file vm_core.h.
Referenced by timer_thread_function().
#define RUBY_VM_SET_TRAP_INTERRUPT | ( | th | ) | ATOMIC_OR((th)->interrupt_flag, TRAP_INTERRUPT_MASK) |
Definition at line 1551 of file vm_core.h.
Referenced by rb_threadptr_interrupt_common().
#define RUBY_VM_SIZE_ALIGN 4096 |
Definition at line 562 of file vm_core.h.
Referenced by get_param().
#define RUBY_VM_THREAD_MACHINE_STACK_SIZE ( 128 * 1024 * sizeof(VALUE)) /* 512 KB or 1024 KB */ |
Definition at line 566 of file vm_core.h.
Referenced by vm_default_params_setup().
#define RUBY_VM_THREAD_MACHINE_STACK_SIZE_MIN ( 16 * 1024 * sizeof(VALUE)) /* 64 KB or 128 KB */ |
Definition at line 567 of file vm_core.h.
Referenced by vm_default_params_setup().
#define RUBY_VM_THREAD_VM_STACK_SIZE ( 128 * 1024 * sizeof(VALUE)) /* 512 KB or 1024 KB */ |
Definition at line 564 of file vm_core.h.
Referenced by vm_default_params_setup().
#define RUBY_VM_THREAD_VM_STACK_SIZE_MIN ( 2 * 1024 * sizeof(VALUE)) /* 8 KB or 16 KB */ |
Definition at line 565 of file vm_core.h.
Referenced by vm_default_params_setup().
#define RUBY_VM_VALID_CONTROL_FRAME_P | ( | cfp, | |
ecfp | |||
) | ((void *)(ecfp) > (void *)(cfp)) |
Definition at line 1176 of file vm_core.h.
Referenced by errinfo_place().
#define RUBYVM_CFUNC_FRAME_P | ( | cfp | ) | (VM_FRAME_TYPE(cfp) == VM_FRAME_MAGIC_CFUNC) |
Definition at line 1066 of file vm_core.h.
Referenced by backtrace_each().
#define SDR | ( | ) | rb_vmdebug_stack_dump_raw(GET_THREAD(), GET_THREAD()->cfp) |
Definition at line 1414 of file vm_core.h.
Referenced by rb_iterate0(), rb_vm_bugreport(), vm_pop_frame(), and vm_push_frame().
#define SDR2 | ( | cfp | ) | rb_vmdebug_stack_dump_raw(GET_THREAD(), (cfp)) |
Definition at line 1415 of file vm_core.h.
Referenced by rb_vmdebug_debug_print_post().
#define STRING_REDEFINED_OP_FLAG (1 << 2) |
Definition at line 577 of file vm_core.h.
Referenced by opt_eq_func(), and vm_redefinition_check_flag().
#define SYMBOL_REDEFINED_OP_FLAG (1 << 6) |
Definition at line 581 of file vm_core.h.
Referenced by vm_redefinition_check_flag().
#define sysstack_error GET_VM()->special_exceptions[ruby_error_sysstack] |
Definition at line 1486 of file vm_core.h.
Referenced by ruby_thread_stack_overflow(), stack_check(), sysstack_error_p(), and vm_stackoverflow().
#define TAG_BREAK RUBY_TAG_BREAK |
Definition at line 164 of file vm_core.h.
Referenced by error_handle(), frame_return_value(), iseq_compile_each(), make_localjump_error(), rb_iterate0(), rb_vm_make_jump_tag_but_local_jump(), THROW_DATA_CONSUMED_SET(), vm_exec(), vm_iter_break(), and vm_throw_start().
#define TAG_FATAL RUBY_TAG_FATAL |
Definition at line 170 of file vm_core.h.
Referenced by error_handle(), rb_exc_fatal(), rb_fiber_start(), rb_jump_tag(), rb_threadptr_execute_interrupts(), rb_threadptr_to_kill(), setup_exception(), thread_join(), and thread_start_func_2().
#define TAG_MASK RUBY_TAG_MASK |
Definition at line 171 of file vm_core.h.
Referenced by error_handle().
#define TAG_NEXT RUBY_TAG_NEXT |
Definition at line 165 of file vm_core.h.
Referenced by error_handle(), iseq_compile_each(), make_localjump_error(), rb_vm_make_jump_tag_but_local_jump(), and vm_exec().
#define TAG_RAISE RUBY_TAG_RAISE |
Definition at line 168 of file vm_core.h.
Referenced by error_handle(), eval_string_with_cref(), hook_before_rewind(), rb_exc_raise(), rb_fiber_start(), rb_load_internal(), rb_load_internal0(), rb_memerror(), rb_raise_jump(), rb_require_safe(), rb_rescue2(), ruby_thread_stack_overflow(), vm_exec(), and vm_throw_continue().
#define TAG_REDO RUBY_TAG_REDO |
Definition at line 167 of file vm_core.h.
Referenced by error_handle(), iseq_compile_each(), make_localjump_error(), rb_vm_make_jump_tag_but_local_jump(), and vm_exec().
#define TAG_RETRY RUBY_TAG_RETRY |
Definition at line 166 of file vm_core.h.
Referenced by error_handle(), iseq_compile_each(), make_localjump_error(), rb_iterate0(), rb_rescue2(), rb_vm_make_jump_tag_but_local_jump(), vm_exec(), and vm_throw_start().
#define TAG_RETURN RUBY_TAG_RETURN |
Definition at line 163 of file vm_core.h.
Referenced by error_handle(), iseq_compile_each(), make_localjump_error(), rb_require_internal(), rb_require_safe(), rb_vm_make_jump_tag_but_local_jump(), ruby_require_internal(), vm_exec(), and vm_throw_start().
#define TAG_THROW RUBY_TAG_THROW |
Definition at line 169 of file vm_core.h.
Referenced by error_handle(), rb_throw_obj(), vm_catch_protect(), and vm_throw_continue().
#define TIME_REDEFINED_OP_FLAG (1 << 7) |
Definition at line 582 of file vm_core.h.
Referenced by vm_redefinition_check_flag().
#define TRUE_REDEFINED_OP_FLAG (1 << 10) |
Definition at line 585 of file vm_core.h.
Referenced by vm_redefinition_check_flag().
#define VM_ASSERT | ( | expr | ) | ((void)0) |
Definition at line 54 of file vm_core.h.
Referenced by aliased_callable_method_entry(), args_extend(), args_pop_keyword_hash(), args_reduce(), check_block_handler(), cont_restore_thread(), core_hash_merge(), env_clone(), gc_mark_imemo(), get_local_variable_ptr(), lep_svar(), lep_svar_write(), method_definition_set(), METHOD_ENTRY_BASIC_SET(), METHOD_ENTRY_FLAGS_SET(), METHOD_ENTRY_VISI_SET(), obj_free(), pass_passed_block_handler(), prepare_callable_method_entry(), rb_method_definition_release(), rb_method_entry_complement_defined_class(), rb_method_entry_make(), rb_proc_create(), rb_proc_create_from_captured(), rb_thread_mark(), rb_thread_recycle_stack_release(), rb_vm_frame_block_handler(), rb_vm_invoke_proc(), rb_vm_make_proc_lambda(), refined_method_callable_without_refinement(), setup_parameters_complex(), THROW_DATA_CONSUMED_P(), VM_BH_FROM_IFUNC_BLOCK(), VM_BH_FROM_ISEQ_BLOCK(), VM_BH_FROM_PROC(), VM_BH_FROM_SYMBOL(), VM_BH_IFUNC_P(), VM_BH_ISEQ_BLOCK_P(), VM_BH_TO_CAPT_BLOCK(), VM_BH_TO_IFUNC_BLOCK(), VM_BH_TO_ISEQ_BLOCK(), VM_BH_TO_PROC(), VM_BH_TO_SYMBOL(), vm_block_handler_type(), vm_block_handler_verify(), vm_block_type(), vm_call_method(), vm_call_method_each_type(), VM_CAPTURED_BLOCK_TO_CFP(), VM_CFP_TO_CAPTURED_BLOCK(), VM_ENV_BLOCK_HANDLER(), VM_ENV_ENVVAL(), VM_ENV_ESCAPED_P(), VM_ENV_FLAGS(), VM_ENV_FLAGS_SET(), VM_ENV_FLAGS_UNSET(), VM_ENV_PREV_EP(), VM_ENV_PROCVAL(), VM_FORCE_WRITE_SPECIAL_CONST(), VM_FRAME_CFRAME_P(), vm_make_env_each(), vm_passed_block_handler_set(), vm_proc_block(), vm_proc_iseq(), vm_push_frame(), vm_search_method(), VM_STACK_ENV_WRITE(), vm_stackoverflow(), and vm_throw_start().
#define VM_BLOCK_HANDLER_NONE 0 |
Definition at line 1070 of file vm_core.h.
Referenced by args_setup_block_parameter(), cfunc_proc_new(), check_block_handler(), fiber_init(), proc_new(), proc_to_block_handler(), raise_argument_error(), rb_block_arity(), rb_block_given_p(), rb_block_min_max_arity(), rb_f_block_given_p(), rb_fiber_start(), rb_mod_define_method(), rb_mod_refine(), rb_proc_call(), rb_raise_method_missing(), rb_require_internal(), rb_yield_block(), th_init(), thread_do_start(), vm_block_handler_to_proc(), vm_block_handler_verify(), vm_caller_setup_arg_block(), vm_defined(), VM_ENV_PROCVAL(), vm_invoke_block(), vm_invoke_ifunc_block(), vm_invoke_symbol_block(), vm_make_env_each(), vm_passed_block_handler(), vm_set_top_stack(), vm_yield(), vm_yield_lambda_splattable(), vm_yield_with_cref(), and yield_under().
#define VM_CALL_ARGS_BLOCKARG (0x01 << 1) /* m(&block) */ |
Definition at line 904 of file vm_core.h.
Referenced by iseq_compile_each(), iseq_specialized_instruction(), new_callinfo(), rb_insn_operand_intern(), setup_args(), and vm_caller_setup_arg_block().
#define VM_CALL_ARGS_SIMPLE (0x01 << 4) /* (ci->flag & (SPLAT|BLOCKARG)) && blockiseq == NULL && ci->kw_arg == NULL */ |
Definition at line 907 of file vm_core.h.
Referenced by iseq_build_callinfo_from_hash(), iseq_specialized_instruction(), new_callinfo(), and rb_insn_operand_intern().
#define VM_CALL_ARGS_SPLAT (0x01 << 0) /* m(*args) */ |
Definition at line 903 of file vm_core.h.
Referenced by compile_massign_lhs(), iseq_compile_each(), new_callinfo(), rb_insn_operand_intern(), setup_args(), setup_parameters_complex(), vm_call_cfunc_with_frame(), and vm_call_method_each_type().
#define VM_CALL_FCALL (0x01 << 2) /* m(...) */ |
Definition at line 905 of file vm_core.h.
Referenced by ci_missing_reason(), iseq_compile_each(), rb_insn_operand_intern(), vm_call_method(), vm_call_method_missing(), and vm_call_opt_send().
#define VM_CALL_KWARG (0x01 << 6) /* has kwarg */ |
Definition at line 909 of file vm_core.h.
Referenced by ibf_dump_callinfo(), iseq_data_to_ary(), iseq_set_sequence(), new_callinfo(), rb_insn_operand_intern(), remove_unreachable_chunk(), setup_parameters_complex(), vm_call_method_each_type(), and vm_call_opt_send().
#define VM_CALL_OPT_SEND (0x01 << 9) /* internal flag */ |
Definition at line 912 of file vm_core.h.
Referenced by rb_insn_operand_intern(), vm_call_method(), vm_call_method_missing(), and vm_call_opt_send().
#define VM_CALL_SUPER (0x01 << 8) /* super */ |
Definition at line 911 of file vm_core.h.
Referenced by ci_missing_reason(), iseq_compile_each(), and rb_insn_operand_intern().
#define VM_CALL_TAILCALL (0x01 << 7) /* located at tail position */ |
Definition at line 910 of file vm_core.h.
Referenced by iseq_peephole_optimize(), rb_insn_operand_intern(), and vm_call_iseq_setup_2().
#define VM_CALL_VCALL (0x01 << 3) /* m */ |
Definition at line 906 of file vm_core.h.
Referenced by ci_missing_reason(), iseq_compile_each(), rb_insn_operand_intern(), vm_call_method(), and vm_call_opt_send().
#define VM_CHECK_MODE 0 |
Definition at line 20 of file vm_core.h.
Referenced by vm_pop_frame().
#define VM_CHECKMATCH_ARRAY 0x04 |
Definition at line 901 of file vm_core.h.
Referenced by iseq_compile_each().
#define VM_DEBUG_BP_CHECK 0 |
Definition at line 591 of file vm_core.h.
Referenced by VM_CAPTURED_BLOCK_TO_CFP().
#define VM_DEFINECLASS_FLAG_HAS_SUPERCLASS 0x10 |
Definition at line 832 of file vm_core.h.
Referenced by iseq_compile_each().
#define VM_DEFINECLASS_FLAG_SCOPED 0x08 |
Definition at line 831 of file vm_core.h.
Referenced by iseq_compile_each().
#define VM_DEFINECLASS_HAS_SUPERCLASS_P | ( | x | ) | ((x) & VM_DEFINECLASS_FLAG_HAS_SUPERCLASS) |
#define VM_DEFINECLASS_SCOPED_P | ( | x | ) | ((x) & VM_DEFINECLASS_FLAG_SCOPED) |
#define VM_DEFINECLASS_TYPE | ( | x | ) | ((rb_vm_defineclass_type_t)(x) & VM_DEFINECLASS_TYPE_MASK) |
#define VM_ENV_DATA_INDEX_ENV ( 1) /* ep[ 1] */ |
Definition at line 993 of file vm_core.h.
Referenced by block_mark(), cfunc_proc_new(), rb_vm_frame_block_handler(), VM_ENV_ENVVAL(), and vm_env_new().
#define VM_ENV_DATA_INDEX_ENV_PROC ( 2) /* ep[ 2] */ |
Definition at line 994 of file vm_core.h.
Referenced by VM_ENV_PROCVAL().
#define VM_ENV_DATA_INDEX_FLAGS ( 0) /* ep[ 0] */ |
Definition at line 992 of file vm_core.h.
Referenced by cfunc_proc_new(), VM_ENV_FLAGS(), VM_ENV_FLAGS_SET(), VM_ENV_FLAGS_UNSET(), vm_env_write(), vm_pop_frame(), and vm_push_frame().
#define VM_ENV_DATA_INDEX_ME_CREF (-2) /* ep[-2] */ |
Definition at line 990 of file vm_core.h.
Referenced by cfunc_proc_new(), env_clone(), Init_VM(), lep_svar(), lep_svar_write(), rb_vm_frame_method_entry(), vm_cref_replace_with_duplicated_cref(), vm_env_cref(), vm_env_cref_by_cref(), and vm_push_frame().
#define VM_ENV_DATA_INDEX_SPECVAL (-1) /* ep[-1] */ |
Definition at line 991 of file vm_core.h.
Referenced by cfunc_proc_new(), rb_yield_refine_block(), VM_ENV_BLOCK_HANDLER(), VM_ENV_PREV_EP(), vm_make_env_each(), vm_push_frame(), and yield_under().
#define VM_ENV_DATA_SIZE ( 3) |
Definition at line 988 of file vm_core.h.
Referenced by cfunc_proc_new(), iseq_compile_each(), rb_insn_operand_intern(), rb_vmdebug_stack_dump_th(), vm_base_ptr(), and vm_make_env_each().
#define VM_ENV_INDEX_LAST_LVAR (-VM_ENV_DATA_SIZE) |
Definition at line 996 of file vm_core.h.
Referenced by errinfo_place().
#define VM_GUARDED_PREV_EP | ( | ep | ) | GC_GUARDED_PTR(ep) |
Definition at line 1069 of file vm_core.h.
Referenced by invoke_block(), invoke_bmethod(), vm_exec(), vm_invoke_iseq_block(), vm_make_env_each(), vm_set_eval_stack(), and vm_yield_with_cfunc().
#define VM_STACK_OVERFLOWED_P | ( | cfp, | |
sp, | |||
margin | |||
) |
#define VM_TAGGED_PTR_REF | ( | v, | |
mask | |||
) | ((void *)((v) & ~mask)) |
Definition at line 945 of file vm_core.h.
Referenced by VM_BH_FROM_CFP_P(), VM_BH_ISEQ_BLOCK_P(), VM_BH_TO_CAPT_BLOCK(), VM_BH_TO_IFUNC_BLOCK(), and VM_BH_TO_ISEQ_BLOCK().
#define VM_TAGGED_PTR_SET | ( | p, | |
tag | |||
) | ((VALUE)(p) | (tag)) |
Definition at line 944 of file vm_core.h.
Referenced by VM_BH_FROM_IFUNC_BLOCK(), and VM_BH_FROM_ISEQ_BLOCK().
#define VM_UNREACHABLE | ( | func | ) | ((void)0) |
Definition at line 55 of file vm_core.h.
Referenced by gc_mark_imemo(), invoke_block_from_c_splattable(), invoke_block_from_c_unsplattable(), proc_new(), rb_proc_get_iseq(), vm_block_ep(), vm_block_handler_escape(), vm_block_iseq(), vm_block_self(), vm_invoke_block(), and vm_proc_to_block_handler().
#define VMDEBUG 0 |
VM Debug Level.
debug level: 0: no debug output 1: show instruction name 2: show stack frame when control stack frame is changed 3: show stack status 4: show register 5: 10: gc check
Definition at line 37 of file vm_core.h.
Referenced by vm_pop_frame(), and vm_push_frame().
#define WHEN_VM_STACK_OVERFLOWED | ( | cfp, | |
sp, | |||
margin | |||
) | if (LIKELY(!VM_STACK_OVERFLOWED_P(cfp, sp, margin))) {(void)0;} else /* overflowed */ |
typedef struct rb_call_cache* CALL_CACHE |
typedef struct rb_call_info* CALL_INFO |
typedef struct iseq_inline_cache_entry* IC |
typedef struct rb_at_exit_list rb_at_exit_list |
typedef struct rb_compile_option_struct rb_compile_option_t |
typedef struct rb_control_frame_struct rb_control_frame_t |
typedef struct rb_ensure_entry rb_ensure_entry_t |
typedef struct rb_ensure_list rb_ensure_list_t |
typedef struct rb_fiber_struct rb_fiber_t |
typedef struct rb_hook_list_struct rb_hook_list_t |
typedef rb_control_frame_t* FUNC_FASTCALL rb_insn_func_t(rb_thread_t *, rb_control_frame_t *) |
typedef struct rb_iseq_location_struct rb_iseq_location_t |
typedef RUBY_JMP_BUF rb_jmpbuf_t |
typedef char rb_thread_id_string_t[sizeof(rb_nativethread_id_t) *2+3] |
typedef struct rb_thread_list_struct rb_thread_list_t |
typedef struct rb_thread_struct rb_thread_t |
typedef void rb_vm_at_exit_func(struct rb_vm_struct *) |
typedef struct rb_vm_struct rb_vm_t |
typedef VALUE(* vm_call_handler) (struct rb_thread_struct *th, struct rb_control_frame_struct *cfp, struct rb_calling_info *calling, const struct rb_call_info *ci, struct rb_call_cache *cc) |
anonymous enum |
anonymous enum |
enum rb_block_type |
enum rb_thread_status |
enum ruby_basic_operators |
enum ruby_tag_type |
enum ruby_vm_throw_flags |
enum vm_check_match_type |
enum vm_svar_index |
NORETURN | ( | void | rb_bug_contextconst void *, const char *fmt,... | ) |
Definition at line 2062 of file variable.c.
References autoload_data(), check_autoload_data, Qundef, rb_thread_current(), autoload_data_i::state, autoload_state::thread, and autoload_data_i::value.
Referenced by autoload_defined_p(), rb_const_defined_0(), rb_const_search(), and vm_get_ev_const().
const VALUE* rb_binding_add_dynavars | ( | rb_binding_t * | bind, |
int | dyncount, | ||
const ID * | dynvars | ||
) |
Definition at line 920 of file vm.c.
References ALLOCV_END, ALLOCV_N, rb_binding_t::block, rb_iseq_struct::body, rb_thread_struct::cfp, env, rb_env_t::env, GET_THREAD, rb_captured_block::iseq, rb_iseq_location_struct::label, rb_iseq_constant_body::location, MEMCPY, NEW_NODE, NODE_SCOPE, NULL, numberof, rb_binding_t::path, rb_fstring_cstr(), rb_iseq_new(), rb_iseq_new_top(), rb_vm_pop_frame(), RNode::tbl, RNode::u1, vm_bind_update_env(), vm_block_iseq(), vm_make_env_object(), and vm_set_eval_stack().
Referenced by bind_local_variable_set().
Definition at line 308 of file proc.c.
References TypedData_Make_Struct.
Referenced by binding_dup(), proc_binding(), rb_vm_make_binding(), and VM_BH_FROM_PROC().
Definition at line 1044 of file error.c.
References exc_set_backtrace().
Referenced by raise_argument_error(), and set_backtrace().
void rb_gc_mark_machine_stack | ( | rb_thread_t * | th | ) |
Definition at line 4201 of file gc.c.
References GET_STACK_BOUNDS, mark_stack_locations(), rb_objspace_of, and rb_thread_struct::vm.
Referenced by rb_thread_mark().
VALUE rb_get_coverages | ( | void | ) |
Definition at line 5004 of file thread.c.
References GET_VM.
Referenced by rb_reset_coverages(), and rb_thread_start_timer_thread().
Definition at line 416 of file vm_core.h.
References rb_iseq_struct::body, and NULL.
Referenced by def_iseq_ptr(), ibf_dump_iseq(), invoke_iseq_block_from_c(), iseq_data_to_ary(), iseq_location(), method_def_iseq(), proc_binding(), proc_to_s_(), rb_insn_operand_intern(), rb_iseq_disasm(), rb_method_entry_min_max_arity(), rb_proc_get_iseq(), and vm_exec().
Definition at line 658 of file iseq.c.
References Qnil, and rb_iseq_compile_with_option().
rb_iseq_t* rb_iseq_compile_on_base | ( | VALUE | src, |
VALUE | file, | ||
VALUE | line, | ||
const struct rb_block * | base_block | ||
) |
Definition at line 664 of file iseq.c.
References Qnil, and rb_iseq_compile_with_option().
rb_iseq_t* rb_iseq_compile_with_option | ( | VALUE | src, |
VALUE | file, | ||
VALUE | absolute_path, | ||
VALUE | line, | ||
const struct rb_block * | base_block, | ||
VALUE | opt | ||
) |
Definition at line 610 of file iseq.c.
References rb_iseq_struct::body, rb_thread_struct::errinfo, FALSE, GET_THREAD, INITIALIZED, rb_iseq_location_struct::label, rb_iseq_constant_body::location, make_compile_option(), NULL, NUM2INT, iseq_compile_data::option, parse(), rb_exc_raise(), rb_fstring_cstr(), rb_iseq_new_with_opt(), rb_parser_compile_file_path(), rb_parser_compile_string_path(), rb_parser_new(), rb_parser_set_context(), RB_TYPE_P, StringValue, StringValueCStr, T_FILE, and vm_block_iseq().
Referenced by eval_string_with_cref(), iseqw_s_compile(), rb_iseq_compile(), and rb_iseq_compile_on_base().
Definition at line 1487 of file iseq.c.
References argc, rb_iseq_constant_body::block_start, rb_iseq_struct::body, rb_iseq_constant_body::catch_table, catch_type(), iseq_catch_table_entry::cont, iseq_catch_table_entry::end, rb_iseq_constant_body::flags, id_to_name(), iseq_catch_table_entry::iseq, iseq_inspect(), rb_iseq_constant_body::iseq_size, rb_iseq_constant_body::keyword, rb_iseq_constant_body::lead_num, rb_iseq_constant_body::local_table, rb_iseq_constant_body::local_table_size, name, rb_iseq_constant_body::opt_num, rb_iseq_constant_body::opt_table, rb_iseq_constant_body::param, rb_iseq_constant_body::post_num, rb_iseq_constant_body::post_start, PRIdVALUE, RARRAY_LEN, rb_ary_entry(), rb_ary_tmp_new(), rb_iseq_check(), rb_iseq_disasm(), rb_iseq_disasm_insn(), rb_iseq_original_iseq(), rb_secure(), rb_str_append(), rb_str_cat2(), rb_str_catf(), rb_str_concat(), rb_str_new(), rb_str_resize(), rb_iseq_constant_body::rest_start, RSTRING_LEN, RSTRING_PTR, size, snprintf, iseq_catch_table_entry::sp, iseq_catch_table_entry::start, and iseq_catch_table_entry::type.
Referenced by eval_string_with_cref(), iseq_setup(), iseqw_disasm(), iseqw_s_disasm(), process_options(), and rb_iseq_disasm().
int rb_iseq_disasm_insn | ( | VALUE | str, |
const VALUE * | iseqval, | ||
size_t | pos, | ||
const rb_iseq_t * | iseq, | ||
VALUE | child | ||
) |
Disassemble a instruction Iseq -> Iseq inspect object.
Definition at line 1402 of file iseq.c.
References find_line_no(), len, PRIuSIZE, rb_insn_operand_intern(), rb_str_cat2(), rb_str_catf(), rb_str_concat(), rb_str_new(), RSTRING_LEN, and RSTRING_PTR.
Referenced by rb_iseq_disasm(), and rb_vmdebug_debug_print_pre().
RUBY_SYMBOL_EXPORT_BEGIN VALUE rb_iseq_eval | ( | const rb_iseq_t * | iseq | ) |
Definition at line 2004 of file vm.c.
References GET_THREAD, rb_captured_block::val, vm_exec(), and vm_set_top_stack().
Referenced by iseqw_eval(), and rb_load_internal0().
Definition at line 2014 of file vm.c.
References GET_THREAD, rb_captured_block::val, vm_exec(), and vm_set_main_stack().
Referenced by ruby_exec_internal().
RUBY_SYMBOL_EXPORT_BEGIN rb_iseq_t* rb_iseq_new | ( | NODE * | , |
VALUE | , | ||
VALUE | , | ||
VALUE | , | ||
const rb_iseq_t * | parent, | ||
enum | iseq_type | ||
) |
Definition at line 436 of file iseq.c.
References INT2FIX, and rb_iseq_new_with_opt().
Referenced by Init_VM(), proc_binding(), rb_binding_add_dynavars(), and rb_vm_call_cfunc().
rb_iseq_t* rb_iseq_new_main | ( | NODE * | node, |
VALUE | path, | ||
VALUE | absolute_path, | ||
const rb_iseq_t * | parent | ||
) |
Definition at line 451 of file iseq.c.
References INT2FIX, rb_fstring_cstr(), and rb_iseq_new_with_opt().
Referenced by process_options().
rb_iseq_t* rb_iseq_new_top | ( | NODE * | node, |
VALUE | name, | ||
VALUE | path, | ||
VALUE | absolute_path, | ||
const rb_iseq_t * | parent | ||
) |
Definition at line 444 of file iseq.c.
References INT2FIX, and rb_iseq_new_with_opt().
Referenced by rb_binding_add_dynavars(), and rb_load_internal0().
rb_iseq_t* rb_iseq_new_with_bopt | ( | NODE * | , |
VALUE | , | ||
VALUE | , | ||
VALUE | , | ||
VALUE | , | ||
VALUE | , | ||
enum | iseq_type, | ||
VALUE | |||
) |
rb_iseq_t* rb_iseq_new_with_opt | ( | NODE * | , |
VALUE | , | ||
VALUE | , | ||
VALUE | , | ||
VALUE | , | ||
const rb_iseq_t * | parent, | ||
enum | iseq_type, | ||
const rb_compile_option_t * | |||
) |
Definition at line 473 of file iseq.c.
References cleanup_iseq_build(), COMPILE_OPTION_DEFAULT, iseq_alloc(), iseq_translate(), prepare_iseq_build(), and rb_iseq_compile_node().
Referenced by iseqw_s_compile_file(), method_for_self(), new_child_iseq(), rb_iseq_compile_with_option(), rb_iseq_new(), rb_iseq_new_main(), and rb_iseq_new_top().
Definition at line 1354 of file error.c.
References ALLOC_N, NAME_ERR_MESG__MESG, NAME_ERR_MESG__NAME, NAME_ERR_MESG__RECV, NAME_ERR_MESG_COUNT, result, RTYPEDDATA_DATA, and TypedData_Wrap_Struct.
Referenced by make_no_method_exception(), and rb_name_err_new().
|
inlinestatic |
Definition at line 1043 of file vm_core.h.
References imemo_iseq, RB_TYPE_P, and T_IMEMO.
Referenced by get_local_variable_ptr(), and iseqw_s_of().
struct rb_objspace* rb_objspace_alloc | ( | void | ) |
Definition at line 1305 of file gc.c.
References calloc, free_stack_chunks(), heap_page_free(), malloc_limit, ruby_gc_params_t::malloc_limit_min, and rb_objspace.
Referenced by Init_BareVM().
void rb_objspace_free | ( | struct rb_objspace * | ) |
Definition at line 1321 of file gc.c.
References rb_objspace::eden_heap, free(), free_stack_chunks(), global_list, heap_allocated_pages, heap_eden, heap_page_free(), heap_pages_himem, heap_pages_lomem, heap_pages_sorted, heap_pages_sorted_length, is_lazy_sweeping, list, rb_objspace::mark_stack, gc_list::next, NULL, rb_heap_struct::pages, rb_objspace::profile, rb_bug(), rb_objspace::records, rb_heap_struct::total_pages, rb_heap_struct::total_slots, and xfree().
Referenced by ruby_vm_destruct().
void rb_postponed_job_flush | ( | rb_vm_t * | vm | ) |
Definition at line 1606 of file vm_trace.c.
References ATOMIC_CAS, rb_postponed_job_struct::data, rb_thread_struct::errinfo, EXEC_TAG, rb_postponed_job_struct::func, GET_THREAD, rb_thread_struct::interrupt_mask, rb_vm_struct::postponed_job_buffer, rb_vm_struct::postponed_job_index, POSTPONED_JOB_INTERRUPT_MASK, Qnil, TH_POP_TAG, TH_PUSH_TAG, and TRAP_INTERRUPT_MASK.
Referenced by rb_threadptr_execute_interrupts().
Definition at line 110 of file proc.c.
References TypedData_Make_Struct.
Referenced by rb_proc_create(), rb_proc_create_from_captured(), sym_proc_new(), and VM_BH_FROM_PROC().
void rb_reset_coverages | ( | void | ) |
Definition at line 5026 of file thread.c.
References GET_VM, Qfalse, rb_get_coverages(), rb_hash_tbl_raw(), rb_remove_event_hook(), reset_coverage_i(), st_foreach, and update_coverage().
Referenced by rb_coverage_result().
void rb_set_coverages | ( | VALUE | ) |
Definition at line 5010 of file thread.c.
References GET_VM, Qnil, rb_add_event_hook(), RUBY_EVENT_COVERAGE, and update_coverage().
Referenced by rb_coverage_start().
int rb_signal_buff_size | ( | void | ) |
Definition at line 709 of file signal.c.
References signal_buff.
Referenced by rb_thread_check_trap_pending(), and rb_threadptr_check_signal().
void rb_signal_exec | ( | rb_thread_t * | th, |
int | sig | ||
) |
Definition at line 1011 of file signal.c.
References rb_vm_struct::cmd, GET_VM, Qundef, rb_interrupt(), rb_threadptr_signal_exit(), rb_threadptr_signal_raise(), rb_vm_struct::safe, sighandler_t, SIGINT, signal_exec(), and rb_vm_struct::trap_list.
Referenced by rb_threadptr_execute_interrupts().
Definition at line 2564 of file vm.c.
References ruby_thread_init(), and thread_alloc().
Referenced by rb_thread_create(), thread_s_new(), thread_start(), and VM_BH_FROM_PROC().
RUBY_SYMBOL_EXPORT_BEGIN int rb_thread_check_trap_pending | ( | void | ) |
Definition at line 1226 of file thread.c.
References rb_signal_buff_size().
RUBY_SYMBOL_EXPORT_END int rb_thread_method_id_and_class | ( | rb_thread_t * | th, |
ID * | idp, | ||
ID * | called_idp, | ||
VALUE * | klassp | ||
) |
Definition at line 2041 of file vm.c.
References rb_thread_struct::cfp, and rb_vm_control_frame_id_and_class().
Referenced by call_trace_func(), rb_frame_method_id_and_class(), and ruby_th_dtrace_setup().
void rb_thread_reset_timer_thread | ( | void | ) |
Definition at line 4081 of file thread.c.
Referenced by after_exec_non_async_signal_safe().
void rb_thread_start_timer_thread | ( | void | ) |
Definition at line 4087 of file thread.c.
References GET_THREAD, INT2FIX, rb_thread_struct::join_list, key, rb_vm_struct::living_threads, rb_vm_struct::main_thread, NULL, Qnil, RARRAY_AREF, RARRAY_ASET, RARRAY_LEN, rb_get_coverages(), rb_hash_tbl_raw(), rb_reset_random_seed(), rb_thread_atfork(), rb_thread_atfork_before_exec(), rb_vm_living_threads_init(), rb_vm_living_threads_insert(), RTEST, rb_vm_struct::sleeper, ST_CONTINUE, st_data_t, st_foreach, system_working, waiting_fd::th, thread_cleanup_func(), thread_cleanup_func_before_exec(), TRUE, val, and rb_thread_struct::vm.
Referenced by after_exec_non_async_signal_safe().
void rb_thread_stop_timer_thread | ( | void | ) |
Definition at line 4073 of file thread.c.
Referenced by before_exec_non_async_signal_safe(), and ruby_cleanup().
void rb_thread_wakeup_timer_thread | ( | void | ) |
Referenced by sighandler().
void rb_threadptr_check_signal | ( | rb_thread_t * | mth | ) |
Definition at line 4032 of file thread.c.
References rb_signal_buff_size(), and rb_threadptr_trap_interrupt().
Referenced by rb_f_kill(), ruby_cleanup(), and timer_thread_function().
void rb_threadptr_error_print | ( | rb_thread_t *volatile | th, |
volatile VALUE | errinfo | ||
) |
Definition at line 76 of file eval_error.c.
References CLASS_OF, rb_thread_struct::errinfo, error_pos(), len, NIL_P, PRIsVALUE, Qnil, Qundef, rb_thread_struct::raised_flag, RARRAY_AREF, RARRAY_LEN, rb_check_funcall(), rb_check_string_type(), rb_class_name(), rb_eRuntimeError, rb_eSysStackError, rb_get_backtrace(), rb_intern, rb_sprintf(), rb_str_subseq(), rb_thread_raised_clear, rb_thread_raised_set, RB_TYPE_P, RSTRING_LEN, RSTRING_PTR, T_STRING, TH_EXEC_TAG, TH_POP_TAG, TH_PUSH_TAG, TRACE_HEAD, TRACE_MAX, TRACE_TAIL, warn_print, warn_print2, and warn_print_str.
Referenced by error_print(), and thread_start_func_2().
void rb_threadptr_exec_event_hooks | ( | struct rb_trace_arg_struct * | trace_arg | ) |
Definition at line 381 of file vm_trace.c.
References rb_threadptr_exec_event_hooks_orig().
Referenced by ruby_exec_event_hook_orig().
void rb_threadptr_exec_event_hooks_and_pop_frame | ( | struct rb_trace_arg_struct * | trace_arg | ) |
Definition at line 375 of file vm_trace.c.
References rb_threadptr_exec_event_hooks_orig().
Referenced by ruby_exec_event_hook_orig().
void rb_threadptr_execute_interrupts | ( | rb_thread_t * | , |
int | |||
) |
Definition at line 2025 of file thread.c.
References rb_thread_struct::cfp, eKillSignal, err, eTerminateSignal, EXEC_EVENT_HOOK, INT2FIX, INTERRUPT_NONE, INTERRUPT_ON_BLOCKING, rb_vm_struct::main_thread, PENDING_INTERRUPT_MASK, POSTPONED_JOB_INTERRUPT_MASK, rb_blocking_region_buffer::prev_status, PRIdVALUE, rb_thread_struct::priority, Qundef, rb_thread_struct::raised_flag, rb_exc_raise(), rb_get_next_signal(), rb_postponed_job_flush(), rb_signal_exec(), rb_thread_schedule_limits(), rb_threadptr_pending_interrupt_active_p(), rb_threadptr_pending_interrupt_deque(), rb_threadptr_to_kill(), RUBY_INTERNAL_EVENT_SWITCH, rb_thread_struct::running_time_us, rb_control_frame_struct::self, rb_thread_struct::status, TAG_FATAL, thread_debug, THREAD_RUNNABLE, THREAD_STOPPED, THREAD_STOPPED_FOREVER, threadptr_get_interrupts(), TIMER_INTERRUPT_MASK, TRAP_INTERRUPT_MASK, and rb_thread_struct::vm.
Referenced by rb_thread_execute_interrupts(), ruby_vm_check_ints(), and vm_check_ints_blocking().
void rb_threadptr_interrupt | ( | rb_thread_t * | th | ) |
Definition at line 426 of file thread.c.
References rb_threadptr_interrupt_common().
Referenced by rb_notify_fd_close(), rb_thread_kill(), rb_threadptr_raise(), rb_threadptr_ready(), ruby_cleanup(), terminate_all(), and thread_start_func_2().
int rb_threadptr_pending_interrupt_active_p | ( | rb_thread_t * | th | ) |
Definition at line 1710 of file thread.c.
References rb_thread_struct::pending_interrupt_queue_checked, and rb_threadptr_pending_interrupt_empty_p().
Referenced by rb_threadptr_execute_interrupts().
void rb_threadptr_pending_interrupt_clear | ( | rb_thread_t * | th | ) |
Definition at line 1587 of file thread.c.
References rb_thread_struct::pending_interrupt_queue, and rb_ary_clear().
Referenced by rb_threadptr_to_kill().
void rb_threadptr_pending_interrupt_enque | ( | rb_thread_t * | th, |
VALUE | v | ||
) |
Definition at line 1593 of file thread.c.
References rb_thread_struct::pending_interrupt_queue, rb_thread_struct::pending_interrupt_queue_checked, and rb_ary_push().
Referenced by rb_fiber_start(), rb_notify_fd_close(), rb_thread_kill(), rb_threadptr_raise(), and terminate_all().
void rb_threadptr_signal_exit | ( | rb_thread_t * | th | ) |
Definition at line 2152 of file thread.c.
References argv, rb_vm_struct::main_thread, NORETURN(), rb_eSystemExit, rb_str_new2, rb_threadptr_raise(), ruby_thread_stack_overflow(), and rb_thread_struct::vm.
Referenced by rb_signal_exec().
void rb_threadptr_signal_raise | ( | rb_thread_t * | th, |
int | sig | ||
) |
Definition at line 2142 of file thread.c.
References argv, INT2FIX, rb_vm_struct::main_thread, rb_eSignal, rb_threadptr_raise(), and rb_thread_struct::vm.
Referenced by rb_signal_exec().
void rb_threadptr_unlock_all_locking_mutexes | ( | rb_thread_t * | th | ) |
Definition at line 455 of file thread.c.
References err, rb_thread_struct::keeping_mutexes, rb_mutex_struct::next_mutex, rb_bug(), and rb_mutex_unlock_th().
Referenced by rb_thread_terminate_all(), ruby_cleanup(), and thread_start_func_2().
void rb_vm_bugreport | ( | const void * | ) |
Definition at line 931 of file vm_dump.c.
References CLASS_OF, feof, GET_VM, rb_trace_arg_struct::klass, len, LIMITED_NAME_LENGTH, rb_vm_struct::loaded_features, name, NULL, rb_vm_struct::progname, RARRAY_AREF, RARRAY_LEN, rb_backtrace_print_as_bugreport(), rb_class_real(), rb_dump_machine_register, rb_obj_class(), rb_print_backtrace(), rb_search_class_path(), RB_TYPE_P, RSTRING_PTR, SDR, T_CLASS, T_MODULE, and T_STRING.
Referenced by rb_assert_failure(), and sdr().
VALUE rb_vm_call | ( | rb_thread_t * | th, |
VALUE | recv, | ||
VALUE | id, | ||
int | argc, | ||
const VALUE * | argv, | ||
const rb_callable_method_entry_t * | me | ||
) |
void rb_vm_change_state | ( | void | ) |
int rb_vm_control_frame_id_and_class | ( | const rb_control_frame_t * | cfp, |
ID * | idp, | ||
ID * | called_idp, | ||
VALUE * | klassp | ||
) |
Definition at line 2025 of file vm.c.
References rb_callable_method_entry_struct::called_id, rb_callable_method_entry_struct::def, FALSE, rb_method_definition_struct::original_id, rb_callable_method_entry_struct::owner, rb_vm_frame_method_entry(), and TRUE.
Referenced by fill_id_and_klass(), get_klass(), and rb_thread_method_id_and_class().
Definition at line 783 of file vm.c.
References collect_local_variables_in_env(), local_var_list_finish(), and local_var_list_init().
Referenced by bind_local_variables().
Definition at line 739 of file vm.c.
References rb_env_t::ep, NULL, VM_ENV_ENVVAL_PTR(), VM_ENV_LOCAL_P(), and VM_ENV_PREV_EP().
Referenced by check_env(), collect_local_variables_in_env(), gc_mark_imemo(), get_local_variable_ptr(), and rb_vmdebug_env_dump_raw().
Definition at line 55 of file vm.c.
References PUREFUNC(), VM_CF_LEP(), and VM_EP_LEP().
Referenced by proc_new(), rb_vm_proc_local_ep(), and VM_STACK_ENV_WRITE().
VALUE rb_vm_frame_block_handler | ( | const rb_control_frame_t * | cfp | ) |
Definition at line 82 of file vm.c.
References rb_thread_struct::cfp, env, rb_env_t::ep, FALSE, GET_THREAD, NULL, Qundef, rb_thread_struct::stack, rb_thread_struct::stack_size, TRUE, VM_ASSERT, VM_CF_BLOCK_HANDLER(), VM_ENV_DATA_INDEX_ENV, VM_ENV_FLAG_ESCAPED, and VM_ENV_FLAGS().
Referenced by pass_passed_block_handler(), proc_new(), rb_block_arity(), rb_block_given_p(), rb_block_min_max_arity(), rb_mod_define_method(), rb_mod_refine(), and VM_STACK_ENV_WRITE().
const rb_callable_method_entry_t* rb_vm_frame_method_entry | ( | const rb_control_frame_t * | cfp | ) |
Definition at line 488 of file vm_insnhelper.c.
References check_method_entry(), rb_control_frame_struct::ep, FALSE, NULL, TRUE, VM_ENV_DATA_INDEX_ME_CREF, VM_ENV_LOCAL_P(), and VM_ENV_PREV_EP().
Referenced by backtrace_each(), control_frame_dump(), frame_called_id(), frame_func_id(), hook_before_rewind(), rb_profile_frames(), rb_raise_jump(), rb_thread_current_status(), rb_vm_control_frame_id_and_class(), rb_vm_pop_cfunc_frame(), top_using(), vm_call_method_each_type(), vm_call_super(), vm_defined(), vm_exec(), and vm_search_super_method().
rb_control_frame_t* rb_vm_get_binding_creatable_next_cfp | ( | const rb_thread_t * | th, |
const rb_control_frame_t * | cfp | ||
) |
Definition at line 477 of file vm.c.
References rb_control_frame_struct::iseq, RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P, and RUBY_VM_PREVIOUS_CONTROL_FRAME.
Referenced by rb_tracearg_binding(), rb_vm_make_binding(), and rb_vm_stack_to_heap().
rb_control_frame_t* rb_vm_get_ruby_level_next_cfp | ( | const rb_thread_t * | th, |
const rb_control_frame_t * | cfp | ||
) |
Definition at line 489 of file vm.c.
References RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P, RUBY_VM_PREVIOUS_CONTROL_FRAME, and VM_FRAME_RUBYFRAME_P().
Referenced by caller_location(), eval_string_with_cref(), fill_path_and_lineno(), method_definition_set(), name_err_initialize(), rb_scope_module_func_check(), rb_scope_visibility_get(), rb_source_location(), rb_sourcefile(), rb_sourcefilename(), rb_sourceline(), rb_vm_cbase(), rb_vm_cref(), rb_vm_cref_in_context(), rb_vm_cref_replace_with_duplicated_cref(), rb_vm_make_binding(), and vm_make_proc_with_iseq().
int rb_vm_get_sourceline | ( | const rb_control_frame_t * | ) |
Definition at line 38 of file vm_backtrace.c.
References calc_lineno(), rb_control_frame_struct::iseq, rb_control_frame_struct::pc, and VM_FRAME_RUBYFRAME_P().
Referenced by caller_location(), control_frame_dump(), fill_path_and_lineno(), method_definition_set(), rb_source_location(), rb_sourceline(), rb_thread_current_status(), and rb_vm_make_binding().
void rb_vm_gvl_destroy | ( | rb_vm_t * | vm | ) |
Definition at line 342 of file thread.c.
References rb_vm_struct::thread_destruct_lock.
Referenced by ruby_vm_destruct().
void rb_vm_inc_const_missing_count | ( | void | ) |
Definition at line 323 of file vm.c.
References rb_class_path_no_cache().
VALUE rb_vm_invoke_proc | ( | rb_thread_t * | th, |
rb_proc_t * | proc, | ||
int | argc, | ||
const VALUE * | argv, | ||
VALUE | block_handler | ||
) |
Definition at line 1150 of file vm.c.
References rb_proc_t::block, rb_proc_t::is_from_method, VM_ASSERT, vm_block_handler_verify(), vm_block_self(), vm_invoke_bmethod(), and vm_invoke_proc().
Referenced by rb_fiber_start(), rb_proc_call(), rb_proc_call_with_block(), thread_do_start(), vm_call0_body(), and vm_call_opt_call().
|
inlinestatic |
Definition at line 1445 of file vm_core.h.
References rb_vm_struct::living_thread_num, rb_vm_struct::living_threads, and rb_vm_struct::waiting_fds.
Referenced by rb_thread_start_timer_thread(), ruby_vm_destruct(), and vm_init2().
|
inlinestatic |
Definition at line 1453 of file vm_core.h.
References rb_vm_struct::living_thread_num, rb_vm_struct::living_threads, and rb_thread_struct::vmlt_node.
Referenced by Init_VM(), rb_thread_start_timer_thread(), and thread_create_core().
|
inlinestatic |
Definition at line 1460 of file vm_core.h.
References rb_vm_struct::living_thread_num, and rb_thread_struct::vmlt_node.
Referenced by thread_start_func_2().
VALUE rb_vm_make_binding | ( | rb_thread_t * | th, |
const rb_control_frame_t * | src_cfp | ||
) |
Definition at line 889 of file vm.c.
References rb_block::as, rb_binding_t::block, rb_iseq_struct::body, rb_block::captured, rb_captured_block::code, rb_binding_t::first_lineno, GetBindingPtr, rb_captured_block::iseq, rb_control_frame_struct::iseq, rb_iseq_constant_body::location, rb_iseq_location_struct::path, rb_binding_t::path, rb_binding_alloc(), rb_cBinding, rb_eRuntimeError, rb_raise(), rb_vm_get_binding_creatable_next_cfp(), rb_vm_get_ruby_level_next_cfp(), rb_vm_get_sourceline(), RUBY_VM_PREVIOUS_CONTROL_FRAME, rb_captured_block::self, rb_control_frame_struct::self, vm_bind_update_env(), and vm_make_env_object().
Referenced by collect_caller_bindings(), rb_binding_new(), and rb_tracearg_binding().
VALUE rb_vm_make_proc | ( | rb_thread_t * | th, |
const struct rb_captured_block * | captured, | ||
VALUE | klass | ||
) |
Definition at line 863 of file vm.c.
References FALSE, and rb_vm_make_proc_lambda().
Referenced by args_setup_block_parameter(), vm_block_handler_escape(), vm_block_handler_to_proc(), and vm_make_proc_with_iseq().
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 869 of file vm.c.
References block_type_ifunc, block_type_iseq, rb_captured_block::code, rb_captured_block::ep, FALSE, imemo_iseq, rb_proc_create_from_captured(), RB_TYPE_P, rb_thread_struct::safe_level, T_IMEMO, rb_captured_block::val, VM_ASSERT, VM_CAPTURED_BLOCK_TO_CFP(), VM_ENV_ESCAPED_P(), and vm_make_env_object().
Referenced by proc_new(), rb_mod_define_method(), and rb_vm_make_proc().
void rb_vm_pop_frame | ( | rb_thread_t * | th | ) |
Definition at line 255 of file vm_insnhelper.c.
References rb_thread_struct::cfp, rb_control_frame_struct::ep, and vm_pop_frame().
Referenced by raise_argument_error(), rb_binding_add_dynavars(), rb_raise_jump(), rb_threadptr_exec_event_hooks_orig(), rb_vm_call_cfunc(), rb_vm_rewind_cfp(), vm_call0(), vm_call0_cfunc_with_frame(), vm_call_cfunc_with_frame(), vm_exec(), and vm_yield_with_cfunc().
Definition at line 558 of file thread.c.
References NULL, rb_vm_ep_local_ep(), and vm_proc_ep().
Referenced by rb_fiber_start(), thread_do_start(), and VM_STACK_ENV_WRITE().
void rb_vm_register_special_exception | ( | enum ruby_special_exceptions | sp, |
VALUE | exception_class, | ||
const char * | mesg | ||
) |
Definition at line 2142 of file vm.c.
References GET_VM, OBJ_FREEZE, OBJ_TAINT, rb_exc_new3, rb_gc_register_mark_object(), rb_obj_freeze(), rb_str_new2, and rb_vm_struct::special_exceptions.
Referenced by Init_eval(), Init_GC(), Init_Proc(), and Init_Thread().
void rb_vm_rewind_cfp | ( | rb_thread_t * | th, |
rb_control_frame_t * | cfp | ||
) |
Definition at line 535 of file vm.c.
References rb_thread_struct::cfp, rb_vm_pop_cfunc_frame(), rb_vm_pop_frame(), VM_FRAME_MAGIC_CFUNC, and VM_FRAME_TYPE().
Referenced by rb_iterate0(), rb_protect(), rb_rescue2(), and vm_catch_protect().
void rb_vm_rewrite_cref | ( | rb_cref_t * | node, |
VALUE | old_klass, | ||
VALUE | new_klass, | ||
rb_cref_t ** | new_cref_ptr | ||
) |
Definition at line 665 of file vm_insnhelper.c.
References CREF_CLASS(), CREF_NEXT(), FALSE, METHOD_VISI_UNDEF, rb_cref_struct::next, NULL, and vm_cref_new_use_prev().
Referenced by clone_method().
void rb_vm_stack_to_heap | ( | rb_thread_t * | th | ) |
Definition at line 729 of file vm.c.
References rb_thread_struct::cfp, rb_vm_get_binding_creatable_next_cfp(), RUBY_VM_PREVIOUS_CONTROL_FRAME, and vm_make_env_object().
Referenced by cont_capture().
void rb_vmdebug_debug_print_post | ( | rb_thread_t * | th, |
rb_control_frame_t * | cfp | ||
) |
Definition at line 373 of file vm_dump.c.
References rb_thread_struct::cfp, rb_inspect(), rb_vmdebug_debug_print_register(), SDR2, and StringValueCStr.
Referenced by VM_BH_FROM_PROC().
void rb_vmdebug_debug_print_pre | ( | rb_thread_t * | th, |
rb_control_frame_t * | cfp, | ||
const VALUE * | _pc | ||
) |
Definition at line 344 of file vm_dump.c.
References rb_iseq_struct::body, rb_control_frame_struct::iseq, rb_iseq_constant_body::iseq_encoded, rb_iseq_disasm_insn(), rb_iseq_original_iseq(), rb_vmdebug_debug_print_register(), rb_control_frame_struct::sp, rb_thread_struct::stack, and VM_CFP_CNT.
Referenced by VM_BH_FROM_PROC().
void rb_vmdebug_stack_dump_raw | ( | rb_thread_t * | , |
rb_control_frame_t * | |||
) |
Definition at line 146 of file vm_dump.c.
References control_frame_dump(), rb_control_frame_struct::ep, GC_GUARDED_PTR_REF, PRIxVALUE, rb_control_frame_struct::sp, rb_thread_struct::stack, and rb_thread_struct::stack_size.
Referenced by rb_vmdebug_stack_dump_raw_current(), rb_vmdebug_stack_dump_th(), and VM_BH_FROM_PROC().
|
inlinestatic |
Definition at line 1608 of file vm_core.h.
References rb_trace_arg_struct::called_id, rb_thread_struct::cfp, rb_trace_arg_struct::cfp, rb_trace_arg_struct::data, rb_trace_arg_struct::event, rb_vm_struct::event_hooks, rb_thread_struct::event_hooks, rb_hook_list_struct::events, id, rb_trace_arg_struct::id, rb_trace_arg_struct::klass, rb_trace_arg_struct::klass_solved, rb_trace_arg_struct::path, Qundef, rb_threadptr_exec_event_hooks(), rb_threadptr_exec_event_hooks_and_pop_frame(), rb_trace_arg_struct::self, rb_trace_arg_struct::th, and rb_thread_struct::vm.
const char* ruby_node_name | ( | int | node | ) |
Definition at line 1739 of file iseq.c.
References rb_bug().
Referenced by dump_node(), dump_object(), iseq_compile_each(), rb_raw_obj_info(), and ruby_debug_print_node().
void ruby_thread_init_stack | ( | rb_thread_t * | th | ) |
Definition at line 552 of file thread.c.
Referenced by Init_BareVM().
|
inlinestatic |
Definition at line 1571 of file vm_core.h.
References rb_threadptr_execute_interrupts(), RUBY_VM_INTERRUPTED_ANY, and UNLIKELY.
|
inlinestatic |
Definition at line 1230 of file vm_core.h.
References VM_ASSERT, VM_BH_IFUNC_P(), and VM_TAGGED_PTR_SET.
Referenced by rb_iterate0(), vm_call_iseq_setup_tailcall(), vm_proc_to_block_handler(), and yield_under().
|
inlinestatic |
Definition at line 1198 of file vm_core.h.
References VM_ASSERT, VM_BH_ISEQ_BLOCK_P(), and VM_TAGGED_PTR_SET.
Referenced by rb_yield_refine_block(), vm_call_iseq_setup_tailcall(), vm_caller_setup_arg_block(), vm_proc_to_block_handler(), and yield_under().
Definition at line 1398 of file vm_core.h.
References rb_binding_alloc(), rb_obj_is_proc(), rb_proc_alloc(), rb_thread_alloc(), rb_vmdebug_debug_print_post(), rb_vmdebug_debug_print_pre(), rb_vmdebug_stack_dump_raw(), and VM_ASSERT.
Referenced by vm_proc_to_block_handler().
Definition at line 1384 of file vm_core.h.
References rb_block::symbol, SYMBOL_P, and VM_ASSERT.
Referenced by vm_proc_to_block_handler().
|
inlinestatic |
Definition at line 1214 of file vm_core.h.
References rb_captured_block::code, imemo_ifunc, RB_TYPE_P, T_IMEMO, rb_captured_block::val, and VM_ASSERT.
Referenced by VM_BH_FROM_IFUNC_BLOCK(), VM_BH_TO_CAPT_BLOCK(), VM_BH_TO_IFUNC_BLOCK(), and vm_block_handler_type().
|
inlinestatic |
Definition at line 1182 of file vm_core.h.
References rb_captured_block::code, imemo_iseq, RB_TYPE_P, T_IMEMO, rb_captured_block::val, VM_ASSERT, and VM_TAGGED_PTR_REF.
Referenced by VM_BH_FROM_ISEQ_BLOCK(), VM_BH_TO_CAPT_BLOCK(), VM_BH_TO_ISEQ_BLOCK(), vm_block_handler_type(), and vm_call_iseq_setup_tailcall().
|
static |
Definition at line 1246 of file vm_core.h.
References VM_ASSERT, VM_BH_IFUNC_P(), VM_BH_ISEQ_BLOCK_P(), and VM_TAGGED_PTR_REF.
Referenced by args_setup_block_parameter(), proc_new(), rb_mod_define_method(), vm_block_handler_escape(), vm_block_handler_to_proc(), vm_call_iseq_setup_tailcall(), and yield_under().
|
static |
Definition at line 1238 of file vm_core.h.
References VM_ASSERT, VM_BH_IFUNC_P(), and VM_TAGGED_PTR_REF.
Referenced by block_setup(), invoke_block_from_c_splattable(), and vm_invoke_block().
|
static |
Definition at line 1206 of file vm_core.h.
References VM_ASSERT, VM_BH_ISEQ_BLOCK_P(), and VM_TAGGED_PTR_REF.
Referenced by block_setup(), invoke_block_from_c_splattable(), rb_yield_refine_block(), and vm_invoke_block().
Definition at line 1391 of file vm_core.h.
References rb_obj_is_proc(), and VM_ASSERT.
Referenced by args_setup_block_parameter(), block_setup(), invoke_block_from_c_splattable(), proc_new(), rb_mod_define_method(), vm_invoke_block(), and yield_under().
Definition at line 1377 of file vm_core.h.
References SYMBOL_P, and VM_ASSERT.
Referenced by args_setup_block_parameter(), block_setup(), invoke_block_from_c_splattable(), proc_new(), rb_mod_define_method(), vm_invoke_block(), and yield_under().
Definition at line 1348 of file vm_core.h.
References rb_block::as, block_type_ifunc, block_type_iseq, block_type_proc, block_type_symbol, rb_block::captured, rb_captured_block::ep, NULL, rb_block::proc, vm_block_type(), vm_proc_ep(), and VM_UNREACHABLE.
Referenced by bind_local_variable_defined_p(), bind_local_variable_get(), bind_local_variable_set(), bind_local_variables(), eval_string_with_cref(), rb_proc_create(), rb_vmdebug_proc_dump_raw(), vm_proc_block(), vm_proc_ep(), and vm_set_eval_stack().
|
inlinestatic |
Definition at line 1254 of file vm_core.h.
References block_handler_type_ifunc, block_handler_type_iseq, block_handler_type_proc, block_handler_type_symbol, rb_obj_is_proc(), SYMBOL_P, VM_ASSERT, VM_BH_IFUNC_P(), and VM_BH_ISEQ_BLOCK_P().
Referenced by args_setup_block_parameter(), block_setup(), invoke_block_from_c_splattable(), proc_new(), rb_mod_define_method(), rb_mod_refine(), rb_yield_refine_block(), vm_block_handler_escape(), vm_block_handler_to_proc(), vm_block_handler_verify(), vm_invoke_block(), and yield_under().
|
inlinestatic |
Definition at line 1272 of file vm_core.h.
References VM_ASSERT, VM_BLOCK_HANDLER_NONE, and vm_block_handler_type().
Referenced by check_block_handler(), pass_passed_block_handler(), rb_vm_invoke_proc(), and vm_passed_block_handler_set().
Definition at line 1335 of file vm_core.h.
References rb_block::as, block_type_ifunc, block_type_iseq, block_type_proc, block_type_symbol, rb_block::captured, rb_captured_block::code, rb_captured_block::iseq, NULL, rb_block::proc, vm_block_type(), vm_proc_iseq(), and VM_UNREACHABLE.
Referenced by process_options(), rb_binding_add_dynavars(), rb_dvar_defined(), rb_iseq_compile_with_option(), rb_local_defined(), vm_proc_block(), and vm_proc_iseq().
Definition at line 1361 of file vm_core.h.
References rb_block::as, block_type_ifunc, block_type_iseq, block_type_proc, block_type_symbol, rb_block::captured, rb_block::proc, Qundef, rb_captured_block::self, vm_block_type(), vm_proc_block(), and VM_UNREACHABLE.
Referenced by bind_receiver(), rb_vm_invoke_proc(), rb_vmdebug_proc_dump_raw(), and vm_set_eval_stack().
|
inlinestatic |
Definition at line 1280 of file vm_core.h.
References rb_block::as, block_type_ifunc, block_type_iseq, block_type_proc, block_type_symbol, rb_block::captured, rb_captured_block::code, imemo_ifunc, imemo_iseq, rb_block::proc, rb_obj_is_proc(), RB_TYPE_P, rb_block::symbol, SYMBOL_P, T_IMEMO, rb_block::type, rb_captured_block::val, and VM_ASSERT.
Referenced by block_mark(), invoke_block_from_c_unsplattable(), proc_binding(), proc_to_s_(), rb_block_arity(), rb_proc_create(), rb_proc_get_iseq(), rb_vm_block_min_max_arity(), vm_block_ep(), vm_block_iseq(), vm_block_self(), and vm_proc_to_block_handler().
|
inlinestatic |
Definition at line 1304 of file vm_core.h.
References rb_block::type.
Referenced by cfunc_proc_new(), rb_proc_create(), rb_proc_create_from_captured(), and sym_proc_new().
Definition at line 1086 of file vm_core.h.
References VM_ASSERT, VM_ENV_DATA_INDEX_SPECVAL, and VM_ENV_LOCAL_P().
Referenced by VM_CF_BLOCK_HANDLER(), VM_ENV_PROCVAL(), and vm_make_env_each().
Definition at line 1114 of file vm_core.h.
References VM_ASSERT, VM_ENV_DATA_INDEX_ENV, and VM_ENV_ESCAPED_P().
Referenced by block_mark(), rb_proc_create(), rb_proc_create_from_captured(), vm_cref_replace_with_duplicated_cref(), VM_ENV_ENVVAL_PTR(), vm_env_write_slowpath(), and vm_make_env_each().
Definition at line 1123 of file vm_core.h.
References VM_ENV_ENVVAL().
Referenced by bind_local_variable_defined_p(), bind_local_variable_get(), bind_local_variable_set(), bind_local_variables(), proc_binding(), rb_vm_env_prev_env(), rb_vmdebug_proc_dump_raw(), and vm_collect_local_variables_in_heap().
Definition at line 1097 of file vm_core.h.
References imemo_env, RB_TYPE_P, T_IMEMO, VM_ASSERT, VM_ENV_FLAG_ESCAPED, and VM_ENV_FLAGS().
Referenced by env_clone(), gc_mark_imemo(), obj_free(), proc_new(), rb_vm_make_proc_lambda(), vm_collect_local_variables_in_heap(), vm_cref_replace_with_duplicated_cref(), VM_ENV_ENVVAL(), VM_ENV_PROCVAL(), and vm_make_env_each().
Definition at line 1017 of file vm_core.h.
References FIXNUM_P, VM_ASSERT, and VM_ENV_DATA_INDEX_FLAGS.
Referenced by get_local_variable_ptr(), rb_thread_mark(), rb_vm_frame_block_handler(), VM_ENV_ESCAPED_P(), VM_ENV_LOCAL_P(), VM_FRAME_BMETHOD_P(), VM_FRAME_CFRAME_P(), VM_FRAME_FINISHED_P(), VM_FRAME_TYPE(), vm_get_ruby_level_caller_cfp(), and VM_STACK_ENV_WRITE().
Definition at line 1001 of file vm_core.h.
References FIXNUM_P, VM_ASSERT, VM_ENV_DATA_INDEX_FLAGS, and VM_FORCE_WRITE_SPECIAL_CONST().
Referenced by gc_mark_imemo(), pass_passed_block_handler(), vm_call0_body(), and vm_make_env_each().
Definition at line 1009 of file vm_core.h.
References FIXNUM_P, VM_ASSERT, VM_ENV_DATA_INDEX_FLAGS, and VM_FORCE_WRITE_SPECIAL_CONST().
Referenced by Init_VM(), and vm_env_write_slowpath().
Definition at line 1073 of file vm_core.h.
References VM_ENV_FLAG_LOCAL, and VM_ENV_FLAGS().
Referenced by next_not_local_frame(), rb_f_local_variables(), rb_vm_env_prev_env(), rb_vm_frame_method_entry(), vm_cref_replace_with_duplicated_cref(), VM_ENV_BLOCK_HANDLER(), vm_env_cref(), vm_env_cref_by_cref(), VM_ENV_PREV_EP(), VM_ENV_PROCVAL(), VM_EP_LEP(), and vm_make_env_each().
|
inlinestatic |
Definition at line 1139 of file vm_core.h.
References env, rb_env_t::env_size, env_size(), imemo_env, rb_imemo_new(), and VM_ENV_DATA_INDEX_ENV.
Referenced by env_clone(), and vm_make_env_each().
Definition at line 1079 of file vm_core.h.
References GC_GUARDED_PTR_REF, VM_ASSERT, VM_ENV_DATA_INDEX_SPECVAL, and VM_ENV_LOCAL_P().
Referenced by rb_vm_env_prev_env(), rb_vm_frame_method_entry(), VM_CF_PREV_EP(), vm_cref_replace_with_duplicated_cref(), vm_env_cref(), vm_env_cref_by_cref(), VM_EP_LEP(), vm_make_env_each(), and vm_throw_start().
Definition at line 1129 of file vm_core.h.
References VM_ASSERT, VM_BLOCK_HANDLER_NONE, VM_ENV_BLOCK_HANDLER(), VM_ENV_DATA_INDEX_ENV_PROC, VM_ENV_ESCAPED_P(), and VM_ENV_LOCAL_P().
Referenced by proc_new().
Definition at line 1148 of file vm_core.h.
Referenced by cref_replace_with_duplicated_cref_each_frame(), vm_env_write_slowpath(), VM_FORCE_WRITE_SPECIAL_CONST(), and VM_STACK_ENV_WRITE().
|
inlinestatic |
Definition at line 1154 of file vm_core.h.
References RB_SPECIAL_CONST_P, VM_ASSERT, and VM_FORCE_WRITE().
Referenced by rb_yield_refine_block(), VM_ENV_FLAGS_SET(), VM_ENV_FLAGS_UNSET(), vm_make_env_each(), and yield_under().
|
inlinestatic |
Definition at line 1037 of file vm_core.h.
References rb_control_frame_struct::ep, VM_ENV_FLAGS(), and VM_FRAME_FLAG_BMETHOD.
Referenced by hook_before_rewind().
|
inlinestatic |
Definition at line 1053 of file vm_core.h.
References rb_control_frame_struct::ep, rb_control_frame_struct::iseq, VM_ASSERT, VM_ENV_FLAGS(), and VM_FRAME_FLAG_CFRAME.
Referenced by VM_FRAME_RUBYFRAME_P().
|
inlinestatic |
Definition at line 1031 of file vm_core.h.
References rb_control_frame_struct::ep, VM_ENV_FLAGS(), and VM_FRAME_FLAG_FINISH.
Referenced by control_frame_dump(), rb_threadptr_exec_event_hooks_orig(), rb_vmdebug_stack_dump_th(), vm_call_iseq_setup_tailcall(), and vm_exec().
|
inlinestatic |
Definition at line 1061 of file vm_core.h.
References VM_FRAME_CFRAME_P().
Referenced by errinfo_place(), rb_vm_get_ruby_level_next_cfp(), rb_vm_get_sourceline(), rb_vmdebug_debug_print_register(), rb_vmdebug_stack_dump_th(), vm_base_ptr(), vm_call_super(), vm_get_ruby_level_caller_cfp(), vm_make_env_each(), and vm_throw_start().
|
inlinestatic |
Definition at line 1025 of file vm_core.h.
References rb_control_frame_struct::ep, VM_ENV_FLAGS(), and VM_FRAME_MAGIC_MASK.
Referenced by control_frame_dump(), frame_return_value(), hook_before_rewind(), rb_vm_rewind_cfp(), rb_vmdebug_stack_dump_th(), vm_exec(), vm_init_redefined_flag(), and vm_throw_start().
Definition at line 1311 of file vm_core.h.
References rb_proc_t::block, rb_obj_is_proc(), RTYPEDDATA_DATA, VM_ASSERT, vm_block_ep(), and vm_block_iseq().
Referenced by invoke_block_from_c_unsplattable(), proc_to_s_(), rb_vm_block_min_max_arity(), vm_block_self(), vm_proc_ep(), vm_proc_iseq(), and vm_proc_to_block_handler().
Definition at line 1329 of file vm_core.h.
References vm_block_ep(), and vm_proc_block().
Referenced by rb_vm_proc_local_ep(), and vm_block_ep().
Definition at line 1322 of file vm_core.h.
References rb_obj_is_proc(), VM_ASSERT, vm_block_iseq(), and vm_proc_block().
Referenced by iseqw_s_of(), rb_mod_define_method(), rb_raw_obj_info(), and vm_block_iseq().
Definition at line 1161 of file vm_core.h.
References rb_vm_ep_local_ep(), rb_vm_frame_block_handler(), rb_vm_proc_local_ep(), VM_ASSERT, VM_ENV_FLAG_WB_REQUIRED, VM_ENV_FLAGS(), and VM_FORCE_WRITE().
Referenced by Init_VM(), vm_env_write(), and vm_make_env_each().
RUBY_EXTERN VALUE rb_cISeq |
RUBY_EXTERN VALUE rb_cRubyVM |
RUBY_EXTERN VALUE rb_mRubyVMFrozenCore |
const rb_data_type_t ruby_binding_data_type |
Definition at line 297 of file proc.c.
Referenced by eval_string_with_cref().
rb_thread_t* ruby_current_thread |
const rb_data_type_t ruby_threadptr_data_type |
rb_event_flag_t ruby_vm_event_flags |
Definition at line 318 of file vm.c.
Referenced by recalc_add_ruby_vm_event_flags(), and recalc_remove_ruby_vm_event_flags().