Feature #10328 ยป 0001-make-OPT_SUPPORT_JOKE-a-proper-VM-option.patch
| compile.c | ||
|---|---|---|
|
ADD_INSN(ret, iseq->compile_data->last_line, leave);
|
||
|
}
|
||
|
#if SUPPORT_JOKE
|
||
|
#if OPT_SUPPORT_JOKE
|
||
|
if (iseq->compile_data->labels_table) {
|
||
|
validate_labels(iseq, iseq->compile_data->labels_table);
|
||
|
}
|
||
| ... | ... | |
|
INIT_ANCHOR(recv);
|
||
|
INIT_ANCHOR(args);
|
||
|
#if SUPPORT_JOKE
|
||
|
#if OPT_SUPPORT_JOKE
|
||
|
if (nd_type(node) == NODE_VCALL) {
|
||
|
ID id_bitblt;
|
||
|
ID id_answer;
|
||
| eval.c | ||
|---|---|---|
|
ID id_cause;
|
||
|
CONST_ID(id_cause, "cause");
|
||
|
#if SUPPORT_JOKE
|
||
|
#if OPT_SUPPORT_JOKE
|
||
|
if (NIL_P(cause)) {
|
||
|
ID id_true_cause;
|
||
|
CONST_ID(id_true_cause, "true_cause");
|
||
| iseq.h | ||
|---|---|---|
|
int label_no;
|
||
|
int node_level;
|
||
|
const rb_compile_option_t *option;
|
||
|
#if SUPPORT_JOKE
|
||
|
#if OPT_SUPPORT_JOKE
|
||
|
st_table *labels_table;
|
||
|
#endif
|
||
|
};
|
||
| tool/instruction.rb | ||
|---|---|---|
|
def load_insns_def file
|
||
|
body = insn = opes = pops = rets = nil
|
||
|
comment = ''
|
||
|
support_joke = vm_opt?('SUPPORT_JOKE')
|
||
|
vpath.open(file) {|f|
|
||
|
f.instance_variable_set(:@line_no, 0)
|
||
| ... | ... | |
|
# end instruction body
|
||
|
when /^\}/
|
||
|
if insn_in
|
||
|
body.instance_variable_set(:@line_no, line_no)
|
||
|
body.instance_variable_set(:@file, f.path)
|
||
|
insn = make_insn(insn, opes, pops, rets, comment, body, sp_inc)
|
||
|
if comment[:c] != "joke" || support_joke
|
||
|
body.instance_variable_set(:@line_no, line_no)
|
||
|
body.instance_variable_set(:@file, f.path)
|
||
|
insn = make_insn(insn, opes, pops, rets, comment, body, sp_inc)
|
||
|
end
|
||
|
insn_in = false
|
||
|
comment = ''
|
||
|
end
|
||
| vm_opts.h | ||
|---|---|---|
|
#define OPT_STACK_CACHING 0
|
||
|
/* misc */
|
||
|
#define SUPPORT_JOKE 0
|
||
|
#define OPT_SUPPORT_JOKE 0
|
||
|
#ifndef VM_COLLECT_USAGE_DETAILS
|
||
|
#define VM_COLLECT_USAGE_DETAILS 0
|
||
|
-
|
||