Ruby 2.7.0p0(2019-12-25revision647ee6f091eafcce70ffb75ddf7e121e192ab217)

Macros | Enumerations | Functions | Variables
eval.c File Reference
`#include "internal.h"`
`#include "eval_intern.h"`
`#include "iseq.h"`
`#include "gc.h"`
`#include "ruby/vm.h"`
`#include "vm_core.h"`
`#include "mjit.h"`
`#include "probes.h"`
`#include "probes_helper.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 (void rb_raise_jump(VALUE, VALUE))
void | rb_ec_clear_current_thread_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 (volatile 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))
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)
int | rb_vm_cframe_empty_keyword_p (const rb_control_frame_t *cfp)
int | rb_empty_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

## Macro Definition Documentation

## ◆ CLASS_OR_MODULE_P

#define CLASS_OR_MODULE_P | ( |  | obj | ) |

Value:
(!SPECIAL_CONST_P(obj) && \
(BUILTIN_TYPE(obj) == T_CLASS || BUILTIN_TYPE(obj) == T_MODULE))

Definition at line 45 of file eval.c.

## ◆ exception_error

#define exception_error GET_VM()->special_exceptions[ruby_error_reenter]

Definition at line 40 of file eval.c.

## ◆ get_ec_errinfo

#define get_ec_errinfo | ( |  | ec | ) | rb_ec_get_errinfo(ec)

Definition at line 480 of file eval.c.

## ◆ id_cause

#define id_cause ruby_static_id_cause

Definition at line 38 of file eval.c.

## Enumeration Type Documentation

## ◆ anonymous enum

anonymous enum

Enumerator
raise_opt_cause |
raise_max_opt |

Definition at line 701 of file eval.c.

## Function Documentation

## ◆ Init_eval()

void Init_eval | ( | void |  | ) |

Definition at line 2052 of file eval.c.

References ruby::backward::cxxanyargs::rb_define_virtual_variable().

## ◆ NORETURN() [1/2]

NORETURN | ( | static void | rb_longjmprb_execution_context_t *, int, volatile VALUE, VALUE | ) |

## ◆ NORETURN() [2/2]

NORETURN | ( | void | rb_raise_jumpVALUE, VALUE | ) |

## ◆ rb_ec_clear_current_thread_trace_func()

void rb_ec_clear_current_thread_trace_func | ( | const rb_execution_context_t * | ec | ) |

Definition at line 274 of file vm_trace.c.

Referenced by ruby_options().

## ◆ rb_ec_get_errinfo()

VALUE rb_ec_get_errinfo | ( | const rb_execution_context_t * | ec | ) |

Definition at line 1851 of file eval.c.

References ptr.

Referenced by rb_f_abort().

## ◆ rb_f_raise()

VALUE rb_f_raise | ( | int | argc,
|  | VALUE * | argv
| ) |  |

Definition at line 726 of file eval.c.

References argc, err, raise_max_opt, and raise_opt_cause.

## ◆ rb_obj_call_init_kw()

void rb_obj_call_init_kw | ( | VALUE | obj,
|  | int | argc,
|  | const VALUE * | argv,
|  | int | kw_splat
| ) |  |

Definition at line 1687 of file eval.c.

References argc, argv, idInitialize, obj, PASS_PASSED_BLOCK_HANDLER, and rb_funcallv_kw().

## ◆ rb_vm_cframe_empty_keyword_p()

int rb_vm_cframe_empty_keyword_p | ( | const rb_control_frame_t * | cfp | ) |

Definition at line 109 of file vm.c.

Referenced by rb_empty_keyword_given_p().

## ◆ rb_vm_cframe_keyword_p()

int rb_vm_cframe_keyword_p | ( | const rb_control_frame_t * | cfp | ) |

Definition at line 102 of file vm.c.

Referenced by rb_keyword_given_p().

## ◆ ruby_stop()

void ruby_stop | ( | int | ex | ) |

Calls ruby_cleanup() and exits the process.

Definition at line 287 of file eval.c.

References exit(), and ruby_cleanup().

Referenced by rb_exit().

## Variable Documentation

## ◆ rb_eLocalJumpError

VALUE rb_eLocalJumpError

Definition at line 33 of file eval.c.

## ◆ rb_eSysStackError

VALUE rb_eSysStackError

Definition at line 34 of file eval.c.

## ◆ rb_eThreadError

VALUE rb_eThreadError

Definition at line 923 of file eval.c.

Referenced by rb_thread_stop(), and rb_thread_wakeup().

## ◆ ruby_static_id_signo

ID ruby_static_id_signo

Definition at line 36 of file eval.c.

## ◆ ruby_static_id_status

ID ruby_static_id_status

Definition at line 36 of file eval.c.

SPECIAL_CONST_P
#define SPECIAL_CONST_P(x)
Definition: ruby.h:1313
obj
const VALUE VALUE obj
Definition: rb_mjit_min_header-2.7.0.h:5742
T_CLASS
#define T_CLASS
Definition: ruby.h:524
T_MODULE
#define T_MODULE
Definition: ruby.h:526
BUILTIN_TYPE
#define BUILTIN_TYPE(x)
Definition: ruby.h:551