|
Ruby 3.4.5p51 (2025-07-16 revision 20cda200d3ce092571d0b5d342dadca69636cb0f)
|
Data Structures | |
| struct | iseq_insn_info |
Data Fields | |
| enum rb_iseq_type | type |
| unsigned int | iseq_size |
| VALUE * | iseq_encoded |
| struct { | |
| struct { | |
| unsigned int has_lead: 1 | |
| unsigned int has_opt: 1 | |
| unsigned int has_rest: 1 | |
| unsigned int has_post: 1 | |
| unsigned int has_kw: 1 | |
| unsigned int has_kwrest: 1 | |
| unsigned int has_block: 1 | |
| unsigned int ambiguous_param0: 1 | |
| unsigned int accepts_no_kwarg: 1 | |
| unsigned int ruby2_keywords: 1 | |
| unsigned int anon_rest: 1 | |
| unsigned int anon_kwrest: 1 | |
| unsigned int use_block: 1 | |
| unsigned int forwardable: 1 | |
| } flags | |
| unsigned int size | |
| int lead_num | |
| int opt_num | |
| int rest_start | |
| int post_start | |
| int post_num | |
| int block_start | |
| const VALUE * opt_table | |
| struct rb_iseq_param_keyword { | |
| int num | |
| int required_num | |
| int bits_start | |
| int rest_start | |
| const ID * table | |
| VALUE * default_values | |
| } keyword | |
| } | param |
| parameter information | |
| rb_iseq_location_t | location |
| struct rb_iseq_constant_body::iseq_insn_info | insns_info |
| const ID * | local_table |
| struct iseq_catch_table * | catch_table |
| const struct rb_iseq_struct * | parent_iseq |
| struct rb_iseq_struct * | local_iseq |
| union iseq_inline_storage_entry * | is_entries |
| struct rb_call_data * | call_data |
| struct { | |
| rb_snum_t flip_count | |
| VALUE script_lines | |
| VALUE coverage | |
| VALUE pc2branchindex | |
| VALUE * original_iseq | |
| } | variable |
| unsigned int | local_table_size |
| unsigned int | ic_size |
| unsigned int | ise_size |
| unsigned int | ivc_size |
| unsigned int | icvarc_size |
| unsigned int | ci_size |
| unsigned int | stack_max |
| unsigned int | builtin_attrs |
| bool | prism |
| union { | |
| iseq_bits_t * list | |
| iseq_bits_t single | |
| } | mark_bits |
| struct rb_id_table * | outer_variables |
| const rb_iseq_t * | mandatory_only_iseq |
| struct rb_call_data* rb_iseq_constant_body::call_data |
| struct iseq_catch_table* rb_iseq_constant_body::catch_table |
| union iseq_inline_storage_entry* rb_iseq_constant_body::is_entries |
| struct rb_iseq_struct* rb_iseq_constant_body::local_iseq |
| rb_iseq_location_t rb_iseq_constant_body::location |
| const rb_iseq_t* rb_iseq_constant_body::mandatory_only_iseq |
| struct rb_id_table* rb_iseq_constant_body::outer_variables |
| struct { ... } rb_iseq_constant_body::param |
parameter information
def m(a1, a2, ..., aM, # mandatory b1=(...), b2=(...), ..., bN=(...), # optional *c, # rest d1, d2, ..., dO, # post e1:(...), e2:(...), ..., eK:(...), # keyword **f, # keyword_rest &g) # block =>
lead_num = M opt_num = N rest_start = M+N post_start = M+N+(*1) post_num = O keyword_num = K block_start = M+N+(*1)+O+K keyword_bits = M+N+(*1)+O+K+(&1) size = M+N+O+(*1)+K+(&1)+(**1) // parameter size.
| const struct rb_iseq_struct* rb_iseq_constant_body::parent_iseq |