Ruby  2.0.0p645(2015-04-13revision50299)
Data Structures | Macros | Functions | Variables
iseq.c File Reference
#include "ruby/ruby.h"
#include "internal.h"
#include "eval_intern.h"
#include "gc.h"
#include "vm_core.h"
#include "iseq.h"
#include "insns.inc"
#include "insns_info.inc"
#include "node_name.inc"

Go to the source code of this file.

Data Structures

struct  set_specifc_data
 

Macros

#define numberof(array)   (int)(sizeof(array) / sizeof((array)[0]))
 
#define ISEQ_MAJOR_VERSION   2
 
#define ISEQ_MINOR_VERSION   0
 
#define hidden_obj_p(obj)   (!SPECIAL_CONST_P(obj) && !RBASIC(obj)->klass)
 
#define SET_COMPILE_OPTION(o, h, mem)
 
#define SET_COMPILE_OPTION_NUM(o, h, mem)
 
#define SET_COMPILE_OPTION(o, h, mem)   rb_hash_aset((h), ID2SYM(rb_intern(#mem)), (o)->mem ? Qtrue : Qfalse)
 
#define SET_COMPILE_OPTION_NUM(o, h, mem)   rb_hash_aset((h), ID2SYM(rb_intern(#mem)), INT2NUM((o)->mem))
 
#define CHECK_ARRAY(v)   rb_convert_type((v), T_ARRAY, "Array", "to_ary")
 
#define CHECK_STRING(v)   rb_convert_type((v), T_STRING, "String", "to_str")
 
#define CHECK_SYMBOL(v)   rb_convert_type((v), T_SYMBOL, "Symbol", "to_sym")
 
#define DECL_SYMBOL(name)   static VALUE sym_##name
 
#define INIT_SYMBOL(name)   sym_##name = ID2SYM(rb_intern(#name))
 
#define PARAM_TYPE(type)   rb_ary_push(a = rb_ary_new2(2), ID2SYM(type))
 
#define PARAM_ID(i)   iseq->local_table[(i)]
 
#define PARAM(i, type)
 
#define ALLOC_AND_COPY(dst, src, type, size)
 

Functions

static VALUE obj_resurrect (VALUE obj)
 
static void compile_data_free (struct iseq_compile_data *compile_data)
 
static void iseq_free (void *ptr)
 
static void iseq_mark (void *ptr)
 
static size_t iseq_memsize (const void *ptr)
 
static VALUE iseq_alloc (VALUE klass)
 
static rb_iseq_location_tiseq_location_setup (rb_iseq_t *iseq, VALUE path, VALUE absolute_path, VALUE name, size_t first_lineno)
 
static void set_relation (rb_iseq_t *iseq, const VALUE parent)
 
void rb_iseq_add_mark_object (rb_iseq_t *iseq, VALUE obj)
 
static VALUE prepare_iseq_build (rb_iseq_t *iseq, VALUE name, VALUE path, VALUE absolute_path, VALUE first_lineno, VALUE parent, enum iseq_type type, VALUE block_opt, const rb_compile_option_t *option)
 
static VALUE cleanup_iseq_build (rb_iseq_t *iseq)
 
static void make_compile_option (rb_compile_option_t *option, VALUE opt)
 
static VALUE make_compile_option_value (rb_compile_option_t *option)
 
VALUE rb_iseq_new (NODE *node, VALUE name, VALUE path, VALUE absolute_path, VALUE parent, enum iseq_type type)
 
VALUE rb_iseq_new_top (NODE *node, VALUE name, VALUE path, VALUE absolute_path, VALUE parent)
 
VALUE rb_iseq_new_main (NODE *node, VALUE path, VALUE absolute_path)
 
static VALUE rb_iseq_new_with_bopt_and_opt (NODE *node, VALUE name, VALUE path, VALUE absolute_path, VALUE first_lineno, VALUE parent, enum iseq_type type, VALUE bopt, const rb_compile_option_t *option)
 
VALUE rb_iseq_new_with_opt (NODE *node, VALUE name, VALUE path, VALUE absolute_path, VALUE first_lineno, VALUE parent, enum iseq_type type, const rb_compile_option_t *option)
 
VALUE rb_iseq_new_with_bopt (NODE *node, VALUE name, VALUE path, VALUE absolute_path, VALUE first_lineno, VALUE parent, enum iseq_type type, VALUE bopt)
 
static VALUE CHECK_INTEGER (VALUE v)
 
static VALUE iseq_load (VALUE self, VALUE data, VALUE parent, VALUE opt)
 
static VALUE iseq_s_load (int argc, VALUE *argv, VALUE self)
 
VALUE rb_iseq_load (VALUE data, VALUE parent, VALUE opt)
 
VALUE rb_iseq_compile_with_option (VALUE src, VALUE file, VALUE absolute_path, VALUE line, rb_block_t *base_block, VALUE opt)
 
VALUE rb_iseq_compile (VALUE src, VALUE file, VALUE line)
 
VALUE rb_iseq_compile_on_base (VALUE src, VALUE file, VALUE line, rb_block_t *base_block)
 
static VALUE iseq_s_compile (int argc, VALUE *argv, VALUE self)
 
static VALUE iseq_s_compile_file (int argc, VALUE *argv, VALUE self)
 
static VALUE iseq_s_compile_option_set (VALUE self, VALUE opt)
 
static VALUE iseq_s_compile_option_get (VALUE self)
 
static rb_iseq_tiseq_check (VALUE val)
 
static VALUE iseq_eval (VALUE self)
 
static VALUE iseq_inspect (VALUE self)
 
static VALUE iseq_path (VALUE self)
 
static VALUE iseq_absolute_path (VALUE self)
 
static VALUE iseq_label (VALUE self)
 
static VALUE iseq_base_label (VALUE self)
 
static VALUE iseq_first_lineno (VALUE self)
 
static VALUE iseq_data_to_ary (rb_iseq_t *iseq)
 
static VALUE iseq_to_a (VALUE self)
 
int rb_iseq_first_lineno (const rb_iseq_t *iseq)
 
static struct
iseq_line_info_entry
get_line_info (const rb_iseq_t *iseq, size_t pos)
 
static unsigned int find_line_no (const rb_iseq_t *iseq, size_t pos)
 
unsigned int rb_iseq_line_no (const rb_iseq_t *iseq, size_t pos)
 
static VALUE id_to_name (ID id, VALUE default_value)
 
VALUE insn_operand_intern (rb_iseq_t *iseq, VALUE insn, int op_no, VALUE op, int len, size_t pos, VALUE *pnop, VALUE child)
 
int rb_iseq_disasm_insn (VALUE ret, VALUE *iseq, size_t pos, rb_iseq_t *iseqdat, VALUE child)
 Disassemble a instruction Iseq -> Iseq inspect object. More...
 
static const char * catch_type (int type)
 
VALUE rb_iseq_disasm (VALUE self)
 
static VALUE iseq_s_of (VALUE klass, VALUE body)
 
static VALUE iseq_s_disasm (VALUE klass, VALUE body)
 
const char * ruby_node_name (int node)
 
static VALUE register_label (struct st_table *table, unsigned long idx)
 
static VALUE exception_type2symbol (VALUE type)
 
static int cdhash_each (VALUE key, VALUE value, VALUE ary)
 
VALUE rb_iseq_clone (VALUE iseqval, VALUE newcbase)
 
VALUE rb_iseq_parameters (const rb_iseq_t *iseq, int is_proc)
 
VALUE rb_iseq_defined_string (enum defined_type type)
 
VALUE rb_iseq_build_for_ruby2cext (const rb_iseq_t *iseq_template, const rb_insn_func_t *func, const struct iseq_line_info_entry *line_info_table, const char **local_table, const VALUE *arg_opt_table, const struct iseq_catch_table_entry *catch_table, const char *name, const char *path, const unsigned short first_lineno)
 
int rb_iseq_line_trace_each (VALUE iseqval, int(*func)(int line, rb_event_flag_t *events_ptr, void *d), void *data)
 
static int collect_trace (int line, rb_event_flag_t *events_ptr, void *ptr)
 
VALUE rb_iseq_line_trace_all (VALUE iseqval)
 
static int line_trace_specify (int line, rb_event_flag_t *events_ptr, void *ptr)
 
VALUE rb_iseq_line_trace_specify (VALUE iseqval, VALUE pos, VALUE set)
 
void Init_ISeq (void)
 

Variables

VALUE rb_cISeq
 
static const rb_data_type_t iseq_data_type
 
static rb_compile_option_t COMPILE_OPTION_DEFAULT
 
static const rb_compile_option_t COMPILE_OPTION_FALSE = {0}
 

Macro Definition Documentation

#define ALLOC_AND_COPY (   dst,
  src,
  type,
  size 
)
Value:
do { \
if (size) { \
(dst) = ALLOC_N(type, (size)); \
MEMCPY((dst), (src), type, (size)); \
} \
} while (0)
int type
Definition: tcltklib.c:111
#define MEMCPY(p1, p2, type, n)
VALUE src
Definition: tcltklib.c:7952
int size
Definition: encoding.c:52
if(RB_TYPE_P(r, T_FLOAT))
Definition: bigdecimal.c:1200
#define ALLOC_N(type, n)
char * dst
Definition: tcltklib.c:9867

Referenced by rb_iseq_build_for_ruby2cext().

#define CHECK_ARRAY (   v)    rb_convert_type((v), T_ARRAY, "Array", "to_ary")

Definition at line 469 of file iseq.c.

Referenced by iseq_load().

#define CHECK_STRING (   v)    rb_convert_type((v), T_STRING, "String", "to_str")

Definition at line 470 of file iseq.c.

Referenced by iseq_load().

#define CHECK_SYMBOL (   v)    rb_convert_type((v), T_SYMBOL, "Symbol", "to_sym")

Definition at line 471 of file iseq.c.

Referenced by iseq_load().

#define DECL_SYMBOL (   name)    static VALUE sym_##name

Definition at line 1592 of file iseq.c.

Referenced by iseq_data_to_ary().

#define hidden_obj_p (   obj)    (!SPECIAL_CONST_P(obj) && !RBASIC(obj)->klass)

Definition at line 31 of file iseq.c.

Referenced by obj_resurrect().

#define INIT_SYMBOL (   name)    sym_##name = ID2SYM(rb_intern(#name))

Definition at line 1595 of file iseq.c.

Referenced by iseq_data_to_ary().

#define ISEQ_MAJOR_VERSION   2

Definition at line 26 of file iseq.c.

Referenced by iseq_data_to_ary().

#define ISEQ_MINOR_VERSION   0

Definition at line 27 of file iseq.c.

Referenced by iseq_data_to_ary().

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

Definition at line 21 of file iseq.c.

Referenced by rb_iseq_defined_string().

#define PARAM (   i,
  type 
)
Value:
( \
a)
VALUE rb_id2str(ID id)
Definition: ripper.c:16946
ssize_t i
Definition: bigdecimal.c:5676
Real * a
Definition: bigdecimal.c:1196
VALUE rb_ary_push(VALUE ary, VALUE item)
Definition: array.c:822
#define ID2SYM(x)
int type
Definition: tcltklib.c:111
#define PARAM_ID(i)
#define PARAM_TYPE(type)

Referenced by rb_iseq_parameters().

#define PARAM_ID (   i)    iseq->local_table[(i)]

Referenced by rb_iseq_parameters().

#define PARAM_TYPE (   type)    rb_ary_push(a = rb_ary_new2(2), ID2SYM(type))

Referenced by rb_iseq_parameters().

#define SET_COMPILE_OPTION (   o,
  h,
  mem 
)
Value:
if (flag == Qtrue) { (o)->mem = 1; } \
else if (flag == Qfalse) { (o)->mem = 0; } \
}
return Qtrue
Definition: tcltklib.c:9609
#define ID2SYM(x)
flag
Definition: tcltklib.c:2047
return Qfalse
Definition: tcltklib.c:6778
else
Definition: bigdecimal.c:1206
if(RB_TYPE_P(r, T_FLOAT))
Definition: bigdecimal.c:1200
VALUE rb_hash_aref(VALUE, VALUE)
Definition: hash.c:570
unsigned long VALUE
Definition: ripper.y:104
#define rb_intern(str)

Referenced by make_compile_option(), and make_compile_option_value().

#define SET_COMPILE_OPTION (   o,
  h,
  mem 
)    rb_hash_aset((h), ID2SYM(rb_intern(#mem)), (o)->mem ? Qtrue : Qfalse)
#define SET_COMPILE_OPTION_NUM (   o,
  h,
  mem 
)
Value:
{ VALUE num = rb_hash_aref(opt, ID2SYM(rb_intern(#mem))); \
if (!NIL_P(num)) (o)->mem = NUM2INT(num); \
}
NIL_P(eventloop_thread)
Definition: tcltklib.c:4067
#define ID2SYM(x)
if(RB_TYPE_P(r, T_FLOAT))
Definition: bigdecimal.c:1200
#define NUM2INT(x)
VALUE rb_hash_aref(VALUE, VALUE)
Definition: hash.c:570
unsigned long VALUE
Definition: ripper.y:104
#define rb_intern(str)

Referenced by make_compile_option(), and make_compile_option_value().

#define SET_COMPILE_OPTION_NUM (   o,
  h,
  mem 
)    rb_hash_aset((h), ID2SYM(rb_intern(#mem)), INT2NUM((o)->mem))

Function Documentation

static const char* catch_type ( int  type)
static

Definition at line 1318 of file iseq.c.

References rb_bug().

Referenced by iseq_set_exception_table(), and rb_iseq_disasm().

static int cdhash_each ( VALUE  key,
VALUE  value,
VALUE  ary 
)
static

Definition at line 1628 of file iseq.c.

References obj_resurrect(), rb_ary_push(), and ST_CONTINUE.

Referenced by iseq_data_to_ary().

static VALUE CHECK_INTEGER ( VALUE  v)
inlinestatic

Definition at line 472 of file iseq.c.

References NUM2LONG, v, and void.

Referenced by iseq_load().

static VALUE cleanup_iseq_build ( rb_iseq_t iseq)
static
static int collect_trace ( int  line,
rb_event_flag_t events_ptr,
void ptr 
)
static

Definition at line 2138 of file iseq.c.

References INT2NUM, rb_ary_push(), and result.

Referenced by rb_iseq_line_trace_all().

static void compile_data_free ( struct iseq_compile_data compile_data)
static
static VALUE exception_type2symbol ( VALUE  type)
static
static unsigned int find_line_no ( const rb_iseq_t iseq,
size_t  pos 
)
static
static struct iseq_line_info_entry* get_line_info ( const rb_iseq_t iseq,
size_t  pos 
)
static
static VALUE id_to_name ( ID  id,
VALUE  default_value 
)
static

Definition at line 1125 of file iseq.c.

References rb_id2str(), rb_str_inspect(), rb_str_symname_p(), and str.

Referenced by insn_operand_intern(), and rb_iseq_disasm().

void Init_ISeq ( void  )
VALUE insn_operand_intern ( rb_iseq_t iseq,
VALUE  insn,
int  op_no,
VALUE  op,
int  len,
size_t  pos,
VALUE pnop,
VALUE  child 
)
static VALUE iseq_absolute_path ( VALUE  self)
static

Definition at line 877 of file iseq.c.

References rb_iseq_location_struct::absolute_path, GetISeqPtr, and rb_iseq_struct::location.

Referenced by Init_ISeq().

static VALUE iseq_alloc ( VALUE  klass)
static
static VALUE iseq_base_label ( VALUE  self)
static

Definition at line 936 of file iseq.c.

References rb_iseq_location_struct::base_label, GetISeqPtr, and rb_iseq_struct::location.

Referenced by Init_ISeq().

static rb_iseq_t* iseq_check ( VALUE  val)
static
static VALUE iseq_data_to_ary ( rb_iseq_t iseq)
static

Definition at line 1636 of file iseq.c.

References rb_iseq_location_struct::absolute_path, rb_iseq_struct::arg_block, rb_iseq_struct::arg_opt_table, rb_iseq_struct::arg_opts, rb_iseq_struct::arg_post_len, rb_iseq_struct::arg_post_start, rb_iseq_struct::arg_rest, rb_iseq_struct::arg_simple, rb_iseq_struct::arg_size, rb_iseq_struct::argc, args, ary, block, rb_call_info_struct::blockiseq, rb_iseq_struct::catch_table, rb_iseq_struct::catch_table_size, cdhash_each(), iseq_catch_table_entry::cont, DECL_SYMBOL, e, iseq_catch_table_entry::end, exception_type2symbol(), rb_iseq_location_struct::first_lineno, FIX2INT, rb_call_info_struct::flag, GetISeqPtr, hash, i, rb_iseq_struct::ic_entries, rb_global_entry::id, ID2SYM, idx, INIT_SYMBOL, INT2FIX, iseq_catch_table_entry::iseq, rb_iseq_struct::iseq, ISEQ_MAJOR_VERSION, ISEQ_MINOR_VERSION, rb_iseq_struct::iseq_size, rb_iseq_location_struct::label, len, rb_iseq_struct::line_info_table, iseq_line_info_entry::line_no, rb_iseq_struct::local_size, rb_iseq_struct::local_table, rb_iseq_struct::local_table_size, rb_iseq_struct::location, main(), method, rb_call_info_struct::mid, obj_resurrect(), rb_call_info_struct::orig_argc, rb_iseq_location_struct::path, iseq_line_info_entry::position, Qnil, RARRAY_LEN, RARRAY_LENINT, RARRAY_PTR(), rb_ary_entry(), rb_ary_new(), rb_ary_new2(), rb_ary_push(), rb_ary_store(), rb_bug(), rb_hash_aset(), rb_hash_foreach(), rb_hash_new(), rb_id2str(), rb_intern, rb_str_new2, register_label(), iseq_catch_table_entry::sp, st_free_table(), st_init_numtable(), st_lookup(), rb_iseq_struct::stack_max, iseq_catch_table_entry::start, top, iseq_catch_table_entry::type, type, rb_iseq_struct::type, ULONG2NUM, and val.

Referenced by iseq_to_a().

static VALUE iseq_eval ( VALUE  self)
static

Definition at line 805 of file iseq.c.

References rb_iseq_eval(), and rb_secure().

Referenced by Init_ISeq().

static VALUE iseq_first_lineno ( VALUE  self)
static

Definition at line 954 of file iseq.c.

References rb_iseq_location_struct::first_lineno, GetISeqPtr, and rb_iseq_struct::location.

Referenced by Init_ISeq().

static void iseq_free ( void ptr)
static
static VALUE iseq_inspect ( VALUE  self)
static
static VALUE iseq_label ( VALUE  self)
static

Definition at line 908 of file iseq.c.

References GetISeqPtr, rb_iseq_location_struct::label, and rb_iseq_struct::location.

Referenced by Init_ISeq().

static VALUE iseq_load ( VALUE  self,
VALUE  data,
VALUE  parent,
VALUE  opt 
)
static
static rb_iseq_location_t* iseq_location_setup ( rb_iseq_t iseq,
VALUE  path,
VALUE  absolute_path,
VALUE  name,
size_t  first_lineno 
)
static
static void iseq_mark ( void ptr)
static
static size_t iseq_memsize ( const void ptr)
static
static VALUE iseq_path ( VALUE  self)
static

Definition at line 853 of file iseq.c.

References GetISeqPtr, rb_iseq_struct::location, and rb_iseq_location_struct::path.

Referenced by Init_ISeq().

static VALUE iseq_s_compile ( int  argc,
VALUE argv,
VALUE  self 
)
static

Definition at line 671 of file iseq.c.

References INT2FIX, NIL_P(), path, Qnil, rb_iseq_compile_with_option(), rb_scan_args(), rb_secure(), rb_str_new2, and src.

Referenced by Init_ISeq().

static VALUE iseq_s_compile_file ( int  argc,
VALUE argv,
VALUE  self 
)
static
static VALUE iseq_s_compile_option_get ( VALUE  self)
static

Definition at line 780 of file iseq.c.

References make_compile_option_value().

Referenced by Init_ISeq().

static VALUE iseq_s_compile_option_set ( VALUE  self,
VALUE  opt 
)
static

Definition at line 762 of file iseq.c.

References make_compile_option(), and rb_secure().

Referenced by Init_ISeq().

static VALUE iseq_s_disasm ( VALUE  klass,
VALUE  body 
)
static

Definition at line 1575 of file iseq.c.

References iseq_s_of(), NIL_P(), Qnil, and rb_iseq_disasm().

Referenced by Init_ISeq().

static VALUE iseq_s_load ( int  argc,
VALUE argv,
VALUE  self 
)
static

Definition at line 570 of file iseq.c.

References data, iseq_load(), Qnil, and rb_scan_args().

Referenced by Init_ISeq().

static VALUE iseq_s_of ( VALUE  klass,
VALUE  body 
)
static
static VALUE iseq_to_a ( VALUE  self)
static

Definition at line 1050 of file iseq.c.

References iseq_check(), iseq_data_to_ary(), and rb_secure().

Referenced by Init_ISeq().

static int line_trace_specify ( int  line,
rb_event_flag_t events_ptr,
void ptr 
)
static
static void make_compile_option ( rb_compile_option_t option,
VALUE  opt 
)
static
static VALUE make_compile_option_value ( rb_compile_option_t option)
static

Definition at line 386 of file iseq.c.

References rb_hash_new(), SET_COMPILE_OPTION, and SET_COMPILE_OPTION_NUM.

Referenced by iseq_s_compile_option_get().

static VALUE obj_resurrect ( VALUE  obj)
inlinestatic
static VALUE prepare_iseq_build ( rb_iseq_t iseq,
VALUE  name,
VALUE  path,
VALUE  absolute_path,
VALUE  first_lineno,
VALUE  parent,
enum iseq_type  type,
VALUE  block_opt,
const rb_compile_option_t option 
)
static
void rb_iseq_add_mark_object ( rb_iseq_t iseq,
VALUE  obj 
)

Definition at line 244 of file iseq.c.

References rb_iseq_struct::mark_ary, OBJ_UNTRUST, rb_ary_push(), rb_ary_tmp_new(), RBASIC, and RTEST.

Referenced by iseq_add_mark_object().

VALUE rb_iseq_build_for_ruby2cext ( const rb_iseq_t iseq_template,
const rb_insn_func_t func,
const struct iseq_line_info_entry line_info_table,
const char **  local_table,
const VALUE arg_opt_table,
const struct iseq_catch_table_entry catch_table,
const char *  name,
const char *  path,
const unsigned short  first_lineno 
)
VALUE rb_iseq_clone ( VALUE  iseqval,
VALUE  newcbase 
)
VALUE rb_iseq_compile ( VALUE  src,
VALUE  file,
VALUE  line 
)

Definition at line 638 of file iseq.c.

References Qnil, and rb_iseq_compile_with_option().

VALUE rb_iseq_compile_on_base ( VALUE  src,
VALUE  file,
VALUE  line,
rb_block_t base_block 
)

Definition at line 644 of file iseq.c.

References Qnil, and rb_iseq_compile_with_option().

VALUE rb_iseq_compile_with_option ( VALUE  src,
VALUE  file,
VALUE  absolute_path,
VALUE  line,
rb_block_t base_block,
VALUE  opt 
)
VALUE rb_iseq_defined_string ( enum defined_type  type)

Definition at line 2004 of file iseq.c.

References GET_VM, numberof, OBJ_FREEZE, rb_str_new_cstr(), ruby_xcalloc(), and str.

Referenced by defined_expr(), and iseq_compile_each().

VALUE rb_iseq_disasm ( VALUE  self)
int rb_iseq_disasm_insn ( VALUE  ret,
VALUE iseq,
size_t  pos,
rb_iseq_t iseqdat,
VALUE  child 
)

Disassemble a instruction Iseq -> Iseq inspect object.

Definition at line 1266 of file iseq.c.

References find_line_no(), insn_operand_intern(), len, PRIdSIZE, rb_str_cat2(), rb_str_catf(), rb_str_concat(), rb_str_new(), RSTRING_LEN, RSTRING_PTR, and str.

Referenced by rb_iseq_disasm(), and rb_vmdebug_debug_print_pre().

int rb_iseq_first_lineno ( const rb_iseq_t iseq)
unsigned int rb_iseq_line_no ( const rb_iseq_t iseq,
size_t  pos 
)

Definition at line 1114 of file iseq.c.

References find_line_no().

Referenced by calc_lineno().

VALUE rb_iseq_line_trace_all ( VALUE  iseqval)

Definition at line 2151 of file iseq.c.

References collect_trace(), rb_ary_new(), rb_iseq_line_trace_each(), and result.

Referenced by Init_ISeq().

int rb_iseq_line_trace_each ( VALUE  iseqval,
int(*)(int line, rb_event_flag_t *events_ptr, void *d func,
void data 
)
VALUE rb_iseq_line_trace_specify ( VALUE  iseqval,
VALUE  pos,
VALUE  set 
)
VALUE rb_iseq_load ( VALUE  data,
VALUE  parent,
VALUE  opt 
)

Definition at line 579 of file iseq.c.

References iseq_load(), and rb_cISeq.

Referenced by iseq_build_from_ary_exception(), and iseq_build_load_iseq().

VALUE rb_iseq_new ( NODE node,
VALUE  name,
VALUE  path,
VALUE  absolute_path,
VALUE  parent,
enum iseq_type  type 
)

Definition at line 410 of file iseq.c.

References INT2FIX, and rb_iseq_new_with_opt().

Referenced by Init_VM(), and rb_vm_call_cfunc().

VALUE rb_iseq_new_main ( NODE node,
VALUE  path,
VALUE  absolute_path 
)
VALUE rb_iseq_new_top ( NODE node,
VALUE  name,
VALUE  path,
VALUE  absolute_path,
VALUE  parent 
)

Definition at line 418 of file iseq.c.

References INT2FIX, and rb_iseq_new_with_opt().

Referenced by rb_load_internal().

VALUE rb_iseq_new_with_bopt ( NODE node,
VALUE  name,
VALUE  path,
VALUE  absolute_path,
VALUE  first_lineno,
VALUE  parent,
enum iseq_type  type,
VALUE  bopt 
)

Definition at line 461 of file iseq.c.

References rb_iseq_new_with_bopt_and_opt().

static VALUE rb_iseq_new_with_bopt_and_opt ( NODE node,
VALUE  name,
VALUE  path,
VALUE  absolute_path,
VALUE  first_lineno,
VALUE  parent,
enum iseq_type  type,
VALUE  bopt,
const rb_compile_option_t option 
)
static
VALUE rb_iseq_new_with_opt ( NODE node,
VALUE  name,
VALUE  path,
VALUE  absolute_path,
VALUE  first_lineno,
VALUE  parent,
enum iseq_type  type,
const rb_compile_option_t option 
)
VALUE rb_iseq_parameters ( const rb_iseq_t iseq,
int  is_proc 
)
static VALUE register_label ( struct st_table table,
unsigned long  idx 
)
static

Definition at line 1599 of file iseq.c.

References CHAR_BIT, ID2SYM, idx, rb_intern, snprintf, st_insert(), and sym.

Referenced by iseq_data_to_ary().

const char* ruby_node_name ( int  node)

Definition at line 1582 of file iseq.c.

References rb_bug().

Referenced by compile_array_(), iseq_compile_each(), iseq_set_arguments(), ruby_debug_print_node(), and setup_args().

static void set_relation ( rb_iseq_t iseq,
const VALUE  parent 
)
static

Variable Documentation

rb_compile_option_t COMPILE_OPTION_DEFAULT
static
Initial value:
= {
}
#define OPT_SPECIALISED_INSTRUCTION
#define OPT_STACK_CACHING
#define OPT_INLINE_CONST_CACHE
#define OPT_PEEPHOLE_OPTIMIZATION
#define OPT_INSTRUCTIONS_UNIFICATION
#define OPT_TRACE_INSTRUCTION
#define OPT_OPERANDS_UNIFICATION
#define OPT_TAILCALL_OPTIMIZATION

Definition at line 332 of file iseq.c.

Referenced by make_compile_option().

const rb_compile_option_t COMPILE_OPTION_FALSE = {0}
static

Definition at line 342 of file iseq.c.

Referenced by make_compile_option().

const rb_data_type_t iseq_data_type
static
Initial value:
= {
"iseq",
{
},
}
static void iseq_mark(void *ptr)
Definition: iseq.c:99
static void iseq_free(void *ptr)
Definition: iseq.c:65
static size_t iseq_memsize(const void *ptr)
Definition: iseq.c:134

Definition at line 170 of file iseq.c.

VALUE rb_cISeq