Ruby
3.1.0dev(2021-09-10revisionb76ad15ed0da636161de0243c547ee1e6fc95681)
|
#include "ruby/internal/config.h"
#include "eval_intern.h"
#include "gc.h"
#include "internal.h"
#include "internal/class.h"
#include "internal/error.h"
#include "internal/eval.h"
#include "internal/hash.h"
#include "internal/inits.h"
#include "internal/io.h"
#include "internal/object.h"
#include "internal/thread.h"
#include "internal/variable.h"
#include "ruby/fiber/scheduler.h"
#include "iseq.h"
#include "mjit.h"
#include "probes.h"
#include "probes_helper.h"
#include "ruby/vm.h"
#include "vm_core.h"
#include "ractor_core.h"
#include "eval_error.c"
#include "eval_jump.c"
Go to the source code of this file.
Macros | |
#define | id_cause ruby_static_id_cause |
#define | exception_error GET_VM()->special_exceptions[ruby_error_reenter] |
#define | CLASS_OR_MODULE_P(obj) |
#define | get_ec_errinfo(ec) rb_ec_get_errinfo(ec) |
Enumerations | |
enum | { raise_opt_cause, raise_max_opt } |
Functions | |
NORETURN (static void rb_raise_jump(VALUE, VALUE)) | |
void | rb_ec_clear_current_thread_trace_func (const rb_execution_context_t *ec) |
void | rb_ec_clear_all_trace_func (const rb_execution_context_t *ec) |
int | ruby_setup (void) |
Initializes the VM and builtin libraries. More... | |
void | ruby_init (void) |
Calls ruby_setup() and check error. More... | |
void * | ruby_options (int argc, char **argv) |
Processes command line arguments and compiles the Ruby source to execute. More... | |
void | ruby_finalize (void) |
Runs the VM finalization processes. More... | |
int | ruby_cleanup (int ex) |
Destructs the VM. More... | |
void | ruby_stop (int ex) |
Calls ruby_cleanup() and exits the process. More... | |
int | ruby_executable_node (void *n, int *status) |
Checks the return value of ruby_options(). More... | |
int | ruby_run_node (void *n) |
Runs the given compiled source and exits this process. More... | |
int | ruby_exec_node (void *n) |
Runs the given compiled source. More... | |
void | rb_class_modify_check (VALUE klass) |
Asserts that klass is not a frozen class. More... | |
NORETURN (static void rb_longjmp(rb_execution_context_t *, int, volatile VALUE, VALUE)) | |
NORETURN (static void rb_exc_exception(VALUE mesg, int tag, VALUE cause)) | |
void | rb_exc_raise (VALUE mesg) |
Raises an exception in the current thread. More... | |
void | rb_exc_fatal (VALUE mesg) |
Raises a fatal error in the current thread. More... | |
void | rb_interrupt (void) |
Raises an Interrupt exception. More... | |
VALUE | rb_f_raise (int argc, VALUE *argv) |
VALUE | rb_make_exception (int argc, const VALUE *argv) |
Make an Exception object from the list of arguments in a manner similar to Kernel#raise . More... | |
void | rb_jump_tag (int tag) |
Continues the exception caught by rb_protect() and rb_eval_string_protect(). More... | |
int | rb_block_given_p (void) |
Determines if the current method is given a block. More... | |
int | rb_vm_cframe_keyword_p (const rb_control_frame_t *cfp) |
int | rb_keyword_given_p (void) |
void | rb_need_block (void) |
Declares that the current method needs a block. More... | |
VALUE | rb_rescue2 (VALUE(*b_proc)(VALUE), VALUE data1, VALUE(*r_proc)(VALUE, VALUE), VALUE data2,...) |
An equivalent of rescue clause. More... | |
VALUE | rb_vrescue2 (VALUE(*b_proc)(VALUE), VALUE data1, VALUE(*r_proc)(VALUE, VALUE), VALUE data2, va_list args) |
An equivalent of rescue clause. More... | |
VALUE | rb_rescue (VALUE(*b_proc)(VALUE), VALUE data1, VALUE(*r_proc)(VALUE, VALUE), VALUE data2) |
An equivalent of rescue clause. More... | |
VALUE | rb_protect (VALUE(*proc)(VALUE), VALUE data, int *pstate) |
Protects a function call from potential global escapes from the function. More... | |
VALUE | rb_ensure (VALUE(*b_proc)(VALUE), VALUE data1, VALUE(*e_proc)(VALUE), VALUE data2) |
An equivalent to ensure clause. More... | |
ID | rb_frame_this_func (void) |
The original name of the current method. More... | |
ID | rb_frame_callee (void) |
The name of the current method. More... | |
void | rb_obj_call_init (VALUE obj, int argc, const VALUE *argv) |
Calls #initialize method of obj with the given arguments. More... | |
void | rb_obj_call_init_kw (VALUE obj, int argc, const VALUE *argv, int kw_splat) |
void | rb_extend_object (VALUE obj, VALUE module) |
Extend the object with the module. More... | |
VALUE | rb_ec_get_errinfo (const rb_execution_context_t *ec) |
VALUE | rb_errinfo (void) |
The current exception in the current thread. More... | |
void | rb_set_errinfo (VALUE err) |
Sets the current exception ($! ) to the given value. More... | |
void | Init_eval (void) |
Variables | |
VALUE | rb_eLocalJumpError |
VALUE | rb_eSysStackError |
ID | ruby_static_id_signo |
ID | ruby_static_id_status |
ID | ruby_static_id_cause |
VALUE | rb_eThreadError |
#define CLASS_OR_MODULE_P | ( | obj | ) |
#define exception_error GET_VM()->special_exceptions[ruby_error_reenter] |
#define get_ec_errinfo | ( | ec | ) | rb_ec_get_errinfo(ec) |
#define id_cause ruby_static_id_cause |
void Init_eval | ( | void | ) |
Definition at line 2078 of file eval.c.
References ruby::backward::cxxanyargs::rb_define_virtual_variable().
NORETURN | ( | static void | rb_exc_exceptionVALUE mesg, int tag, VALUE cause | ) |
NORETURN | ( | static void | rb_longjmprb_execution_context_t *, int, volatile VALUE, VALUE | ) |
NORETURN | ( | static void | rb_raise_jumpVALUE, VALUE | ) |
void rb_ec_clear_all_trace_func | ( | const rb_execution_context_t * | ec | ) |
Definition at line 290 of file vm_trace.c.
void rb_ec_clear_current_thread_trace_func | ( | const rb_execution_context_t * | ec | ) |
Definition at line 284 of file vm_trace.c.
Referenced by ruby_options().
VALUE rb_ec_get_errinfo | ( | const rb_execution_context_t * | ec | ) |
Definition at line 776 of file eval.c.
References argc, err, raise_max_opt, and raise_opt_cause.
int rb_keyword_given_p | ( | void | ) |
Definition at line 952 of file eval.c.
References GET_EC, and rb_vm_cframe_keyword_p().
Referenced by rb_enumeratorize_with_size().
Definition at line 1710 of file eval.c.
References argc, argv, PASS_PASSED_BLOCK_HANDLER, and rb_funcallv_kw().
Referenced by rb_obj_call_init().
int rb_vm_cframe_keyword_p | ( | const rb_control_frame_t * | cfp | ) |
Definition at line 121 of file vm.c.
Referenced by rb_keyword_given_p().
VALUE rb_vrescue2 | ( | VALUE(*)(VALUE) | b_proc, |
VALUE | data1, | ||
VALUE(*)(VALUE, VALUE) | r_proc, | ||
VALUE | data2, | ||
va_list | args | ||
) |
An equivalent of rescue
clause.
Equivalent to begin .. rescue err_type .. end
[in] | b_proc | a function which potentially raises an exception. |
[in] | data1 | the argument of b_proc |
[in] | r_proc | a function which rescues an exception in b_proc. |
[in] | data2 | the first argument of r_proc |
[in] | ... | 1 or more exception classes. Must be terminated by (VALUE)0. |
First it calls the function b_proc, with data1 as the argument. When b_proc raises an exception, it calls r_proc with data2 and the exception object if the exception is a kind of one of the given exception classes.
[in] | args | exception classes, terminated by (VALUE)0. |
Definition at line 1010 of file eval.c.
References rb_execution_context_struct::cfp, and GET_EC.
Referenced by rb_rescue2(), and ruby::backward::cxxanyargs::rb_rescue2().
VALUE rb_eThreadError |
Definition at line 957 of file eval.c.
Referenced by rb_thread_stop(), and rb_thread_wakeup().