Ruby  1.9.3p429(2013-05-15revision40747)
Macros | Functions | Variables
eval.c File Reference
#include "eval_intern.h"
#include "iseq.h"
#include "gc.h"
#include "ruby/vm.h"
#include "ruby/encoding.h"
#include "internal.h"
#include "vm_core.h"
#include "eval_error.c"
#include "eval_jump.c"

Go to the source code of this file.

Macros

#define numberof(array)   (int)(sizeof(array) / sizeof((array)[0]))
 
#define exception_error   GET_VM()->special_exceptions[ruby_error_reenter]
 

Functions

 NORETURN (void rb_raise_jump(VALUE))
 
void ruby_init (void)
 
void * ruby_options (int argc, char **argv)
 
static void ruby_finalize_0 (void)
 
static void ruby_finalize_1 (void)
 
void ruby_finalize (void)
 
int ruby_cleanup (volatile int ex)
 
static int ruby_exec_internal (void *n)
 
void ruby_stop (int ex)
 
int ruby_executable_node (void *n, int *status)
 
int ruby_run_node (void *n)
 
int ruby_exec_node (void *n)
 
static VALUE rb_mod_nesting (void)
 
static VALUE rb_mod_s_constants (int argc, VALUE *argv, VALUE mod)
 
void rb_frozen_class_p (VALUE klass)
 
 NORETURN (static void rb_longjmp(int, volatile VALUE))
 
static void setup_exception (rb_thread_t *th, int tag, volatile VALUE mesg)
 
static void rb_longjmp (int tag, volatile VALUE mesg)
 
static VALUE make_exception (int argc, VALUE *argv, int isstr)
 
void rb_exc_raise (VALUE mesg)
 
void rb_exc_fatal (VALUE mesg)
 
void rb_interrupt (void)
 
static VALUE get_errinfo (void)
 
static VALUE rb_f_raise (int argc, VALUE *argv)
 
VALUE rb_make_exception (int argc, VALUE *argv)
 
void rb_raise_jump (VALUE mesg)
 
void rb_jump_tag (int tag)
 
int rb_block_given_p (void)
 
int rb_iterator_p (void)
 
void rb_need_block (void)
 
VALUE rb_rescue2 (VALUE(*b_proc)(ANYARGS), VALUE data1, VALUE(*r_proc)(ANYARGS), VALUE data2,...)
 
VALUE rb_rescue (VALUE(*b_proc)(ANYARGS), VALUE data1, VALUE(*r_proc)(ANYARGS), VALUE data2)
 
VALUE rb_protect (VALUE(*proc)(VALUE), VALUE data, int *state)
 
VALUE rb_ensure (VALUE(*b_proc)(ANYARGS), VALUE data1, VALUE(*e_proc)(ANYARGS), VALUE data2)
 
static const rb_method_entry_tmethod_entry_of_iseq (rb_control_frame_t *cfp, rb_iseq_t *iseq)
 
static ID frame_func_id (rb_control_frame_t *cfp)
 
ID rb_frame_this_func (void)
 
ID rb_frame_callee (void)
 
static ID rb_frame_caller (void)
 
void rb_frame_pop (void)
 
static VALUE rb_mod_append_features (VALUE module, VALUE include)
 
static VALUE rb_mod_include (int argc, VALUE *argv, VALUE module)
 
void rb_obj_call_init (VALUE obj, int argc, VALUE *argv)
 
void rb_extend_object (VALUE obj, VALUE module)
 
static VALUE rb_mod_extend_object (VALUE mod, VALUE obj)
 
static VALUE rb_obj_extend (int argc, VALUE *argv, VALUE obj)
 
static VALUE top_include (int argc, VALUE *argv, VALUE self)
 
static VALUEerrinfo_place (rb_thread_t *th)
 
static VALUE get_thread_errinfo (rb_thread_t *th)
 
static VALUE errinfo_getter (ID id)
 
VALUE rb_errinfo (void)
 
void rb_set_errinfo (VALUE err)
 
VALUE rb_rubylevel_errinfo (void)
 
static VALUE errat_getter (ID id)
 
static void errat_setter (VALUE val, ID id, VALUE *var)
 
static VALUE rb_f_method_name (void)
 
void Init_eval (void)
 

Variables

VALUE rb_eLocalJumpError
 
VALUE rb_eSysStackError
 
VALUE rb_eThreadError
 

Macro Definition Documentation

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

Definition at line 29 of file eval.c.

Referenced by Init_eval(), and setup_exception().

#define numberof (   array)    (int)(sizeof(array) / sizeof((array)[0]))

Definition at line 22 of file eval.c.

Referenced by ruby_cleanup().

Function Documentation

static VALUE errat_getter ( ID  id)
static

Definition at line 1080 of file eval.c.

References err, get_backtrace(), get_errinfo(), NIL_P, and Qnil.

Referenced by Init_eval().

static void errat_setter ( VALUE  val,
ID  id,
VALUE var 
)
static

Definition at line 1092 of file eval.c.

References err, get_errinfo(), NIL_P, rb_eArgError, rb_raise(), and set_backtrace().

Referenced by Init_eval().

static VALUE errinfo_getter ( ID  id)
static

Definition at line 1033 of file eval.c.

References get_errinfo().

Referenced by Init_eval().

static VALUE* errinfo_place ( rb_thread_t th)
static
static ID frame_func_id ( rb_control_frame_t cfp)
static
static VALUE get_errinfo ( void  )
static
static VALUE get_thread_errinfo ( rb_thread_t th)
static

Definition at line 1015 of file eval.c.

References rb_thread_struct::errinfo, and errinfo_place().

Referenced by get_errinfo().

void Init_eval ( void  )
static VALUE make_exception ( int  argc,
VALUE argv,
int  isstr 
)
static
static const rb_method_entry_t* method_entry_of_iseq ( rb_control_frame_t cfp,
rb_iseq_t iseq 
)
static
NORETURN ( void   rb_raise_jumpVALUE)
NORETURN ( static void   rb_longjmpint, volatile VALUE)
int rb_block_given_p ( void  )

Definition at line 604 of file eval.c.

References rb_thread_struct::cfp, FALSE, GC_GUARDED_PTR_REF, GET_THREAD, rb_control_frame_t::lfp, and TRUE.

Referenced by dh_generate(), dir_s_chdir(), dir_s_glob(), dir_s_open(), dsa_generate(), enum_chunk(), enum_count(), enum_find_index(), enum_grep(), enum_inject(), enum_max(), enum_min(), enum_minmax(), enum_slice_before(), enum_zip(), enumerator_each(), enumerator_initialize(), env_delete_m(), env_fetch(), env_update_i(), etc_group(), etc_passwd(), fdbm_delete(), fdbm_fetch(), fdbm_fetch_m(), fdbm_s_open(), fgdbm_fetch(), fgdbm_fetch_m(), fgdbm_s_open(), fsdbm_delete(), fsdbm_fetch(), fsdbm_fetch_m(), fsdbm_s_open(), generator_initialize(), gzfile_wrap(), iconv_fail_retry(), iconv_s_open(), mSyslog_open(), ossl_pem_passwd_cb(), ossl_x509store_verify(), p_gid_switch(), p_uid_switch(), pack_unpack(), path_each_line(), path_open(), path_s_glob(), path_sub(), proc_call(), pty_getpty(), pty_open(), range_max(), range_min(), rb_ary_count(), rb_ary_delete(), rb_ary_fetch(), rb_ary_fill(), rb_ary_index(), rb_ary_initialize(), rb_ary_product(), rb_ary_rindex(), rb_ary_sort_bang(), rb_ary_uniq(), rb_ary_uniq_bang(), rb_ary_zip(), rb_dlhandle_initialize(), rb_f_at_exit(), rb_f_open(), rb_hash_delete(), rb_hash_fetch_m(), rb_hash_initialize(), rb_hash_update(), rb_io_s_new(), rb_io_s_open(), rb_io_s_pipe(), rb_io_s_popen(), rb_iterator_p(), rb_mod_initialize(), rb_need_block(), rb_reg_match_m(), rb_scan_args(), rb_str_match_m(), rb_str_scan(), rb_str_sub_bang(), rb_struct_s_def(), rsa_generate(), specific_eval(), strio_s_open(), thread_initialize(), tk_s_new(), and window_attron().

VALUE rb_ensure ( VALUE(*)(ANYARGS b_proc,
VALUE  data1,
VALUE(*)(ANYARGS e_proc,
VALUE  data2 
)
VALUE rb_errinfo ( void  )

Definition at line 1058 of file eval.c.

References rb_thread_struct::errinfo, and GET_THREAD.

void rb_exc_fatal ( VALUE  mesg)

Definition at line 469 of file eval.c.

References FALSE, make_exception(), NIL_P, rb_longjmp(), and TAG_FATAL.

Referenced by rb_fatal().

void rb_exc_raise ( VALUE  mesg)
void rb_extend_object ( VALUE  obj,
VALUE  module 
)
static VALUE rb_f_method_name ( void  )
static

Definition at line 1112 of file eval.c.

References ID2SYM, Qnil, and rb_frame_caller().

Referenced by Init_eval().

static VALUE rb_f_raise ( int  argc,
VALUE argv 
)
static

Definition at line 510 of file eval.c.

References err, get_errinfo(), NIL_P, Qnil, rb_make_exception(), and rb_raise_jump().

Referenced by Init_eval().

ID rb_frame_callee ( void  )
static ID rb_frame_caller ( void  )
static
void rb_frame_pop ( void  )

Definition at line 825 of file eval.c.

References rb_thread_struct::cfp, GET_THREAD, and RUBY_VM_PREVIOUS_CONTROL_FRAME.

Referenced by rb_mod_const_missing().

ID rb_frame_this_func ( void  )
void rb_frozen_class_p ( VALUE  klass)

Definition at line 339 of file eval.c.

References FL_SINGLETON, FL_TEST, OBJ_FROZEN, rb_error_frozen(), T_CLASS, T_ICLASS, T_MODULE, and TYPE.

Referenced by rb_alias(), rb_include_module(), and rb_undef().

void rb_interrupt ( void  )

Definition at line 478 of file eval.c.

References rb_eInterrupt, and rb_raise().

Referenced by rb_signal_exec().

int rb_iterator_p ( void  )

Definition at line 618 of file eval.c.

References rb_block_given_p().

void rb_jump_tag ( int  tag)
static void rb_longjmp ( int  tag,
volatile VALUE  mesg 
)
static

Definition at line 449 of file eval.c.

References GET_THREAD, JUMP_TAG, rb_thread_raised_clear, and setup_exception().

Referenced by rb_exc_fatal(), and rb_exc_raise().

VALUE rb_make_exception ( int  argc,
VALUE argv 
)

Definition at line 574 of file eval.c.

References make_exception(), and TRUE.

Referenced by parser_set_encode(), rb_f_raise(), and rb_threadptr_raise().

static VALUE rb_mod_append_features ( VALUE  module,
VALUE  include 
)
static

Definition at line 844 of file eval.c.

References Check_Type, rb_include_module(), T_CLASS, T_MODULE, and TYPE.

Referenced by Init_eval().

static VALUE rb_mod_extend_object ( VALUE  mod,
VALUE  obj 
)
static

Definition at line 921 of file eval.c.

References rb_extend_object().

Referenced by Init_eval().

static VALUE rb_mod_include ( int  argc,
VALUE argv,
VALUE  module 
)
static

Definition at line 867 of file eval.c.

References argc, Check_Type, i, rb_funcall(), rb_intern, and T_MODULE.

Referenced by Init_eval(), and top_include().

static VALUE rb_mod_nesting ( void  )
static

Definition at line 270 of file eval.c.

References RNode::flags, NIL_P, NODE_FL_CREF_PUSHED_BY_EVAL, rb_ary_new(), rb_ary_push(), and rb_vm_cref().

Referenced by Init_eval().

static VALUE rb_mod_s_constants ( int  argc,
VALUE argv,
VALUE  mod 
)
static
void rb_need_block ( void  )

Definition at line 626 of file eval.c.

References Qnil, rb_block_given_p(), and rb_vm_localjump_error().

Referenced by generator_initialize(), and yielder_initialize().

void rb_obj_call_init ( VALUE  obj,
int  argc,
VALUE argv 
)
static VALUE rb_obj_extend ( int  argc,
VALUE argv,
VALUE  obj 
)
static

Definition at line 953 of file eval.c.

References argc, Check_Type, i, rb_eArgError, rb_funcall(), rb_intern, rb_raise(), and T_MODULE.

Referenced by Init_eval().

VALUE rb_protect ( VALUE(*)(VALUE proc,
VALUE  data,
int *  state 
)
void rb_raise_jump ( VALUE  mesg)
VALUE rb_rescue ( VALUE(*)(ANYARGS b_proc,
VALUE  data1,
VALUE(*)(ANYARGS r_proc,
VALUE  data2 
)

Definition at line 696 of file eval.c.

References rb_eStandardError, and rb_rescue2().

Referenced by cmp_equal(), do_coerce(), io_close(), and range_init().

VALUE rb_rescue2 ( VALUE(*)(ANYARGS b_proc,
VALUE  data1,
VALUE(*)(ANYARGS r_proc,
VALUE  data2,
  ... 
)
VALUE rb_rubylevel_errinfo ( void  )

Definition at line 1074 of file eval.c.

References get_errinfo().

void rb_set_errinfo ( VALUE  err)
int ruby_cleanup ( volatile int  ex)
static int ruby_exec_internal ( void *  n)
static
int ruby_exec_node ( void *  n)

Definition at line 248 of file eval.c.

References ruby_exec_internal(), and ruby_init_stack().

Referenced by ruby_run_node().

int ruby_executable_node ( void *  n,
int *  status 
)

Definition at line 220 of file eval.c.

References EXIT_FAILURE, EXIT_SUCCESS, FALSE, FIX2INT, FIXNUM_P, Qfalse, Qtrue, TRUE, and v.

Referenced by ruby_run_node().

void ruby_finalize ( void  )

Definition at line 105 of file eval.c.

References ruby_finalize_0(), and ruby_finalize_1().

Referenced by rb_exit(), and rescue_callback().

static void ruby_finalize_0 ( void  )
static

Definition at line 85 of file eval.c.

References EXEC_TAG, POP_TAG, PUSH_TAG, rb_clear_trace_func(), rb_exec_end_proc(), and rb_trap_exit().

Referenced by ruby_cleanup(), and ruby_finalize().

static void ruby_finalize_1 ( void  )
static

Definition at line 97 of file eval.c.

References GET_THREAD, Qnil, rb_gc_call_finalizer_at_exit(), and ruby_sig_finalize().

Referenced by ruby_cleanup(), and ruby_finalize().

void ruby_init ( void  )
void* ruby_options ( int  argc,
char **  argv 
)
int ruby_run_node ( void *  n)

Definition at line 237 of file eval.c.

References ruby_cleanup(), ruby_exec_node(), and ruby_executable_node().

void ruby_stop ( int  ex)

Definition at line 214 of file eval.c.

References ruby_cleanup().

static void setup_exception ( rb_thread_t th,
int  tag,
volatile VALUE  mesg 
)
static
static VALUE top_include ( int  argc,
VALUE argv,
VALUE  self 
)
static

Definition at line 979 of file eval.c.

References GET_THREAD, rb_cObject, rb_mod_include(), rb_secure(), rb_warning(), and rb_thread_struct::top_wrapper.

Referenced by Init_eval().

Variable Documentation

VALUE rb_eLocalJumpError

Definition at line 26 of file eval.c.

Referenced by Init_Proc(), and make_localjump_error().

VALUE rb_eSysStackError

Definition at line 27 of file eval.c.

Referenced by error_print(), and Init_Proc().

VALUE rb_eThreadError