ruby-changes:4398
From: ko1@a...
Date: Thu, 3 Apr 2008 09:01:36 +0900 (JST)
Subject: [ruby-changes:4398] nobu - Ruby:r15889 (trunk): * compile.c (iseq_set_sequence, iseq_insns_unification,
nobu 2008-04-03 09:00:48 +0900 (Thu, 03 Apr 2008) New Revision: 15889 Modified files: trunk/ChangeLog trunk/compile.c trunk/iseq.c trunk/template/insns_info.inc.tmpl trunk/template/opt_sc.inc.tmpl trunk/template/optunifs.inc.tmpl trunk/tool/instruction.rb trunk/version.h Log: * compile.c (iseq_set_sequence, iseq_insns_unification, insn_data_to_s_detail): constified. * iseq.c (insn_operand_intern, ruby_iseq_disasm_insn): ditto. * template/{insns_info,opt_sc,optunifs}.inc.tmpl: ditto. * tool/instruction.rb (OptUnifsIncGenerator): ditto. http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/version.h?r1=15889&r2=15888&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/tool/instruction.rb?r1=15889&r2=15888&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/compile.c?r1=15889&r2=15888&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=15889&r2=15888&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/template/optunifs.inc.tmpl?r1=15889&r2=15888&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/iseq.c?r1=15889&r2=15888&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/template/opt_sc.inc.tmpl?r1=15889&r2=15888&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/template/insns_info.inc.tmpl?r1=15889&r2=15888&diff_format=u Index: ChangeLog =================================================================== --- ChangeLog (revision 15888) +++ ChangeLog (revision 15889) @@ -1,3 +1,14 @@ +Thu Apr 3 09:00:45 2008 Nobuyoshi Nakada <nobu@r...> + + * compile.c (iseq_set_sequence, iseq_insns_unification, + insn_data_to_s_detail): constified. + + * iseq.c (insn_operand_intern, ruby_iseq_disasm_insn): ditto. + + * template/{insns_info,opt_sc,optunifs}.inc.tmpl: ditto. + + * tool/instruction.rb (OptUnifsIncGenerator): ditto. + Wed Apr 2 22:29:35 2008 Yukihiro Matsumoto <matz@r...> * rational.c (nurat_int_check): function for DRY integer check. Index: iseq.c =================================================================== --- iseq.c (revision 15888) +++ iseq.c (revision 15889) @@ -597,7 +597,7 @@ int insn, int op_no, VALUE op, int len, int pos, VALUE *pnop, VALUE child) { - char *types = insn_op_types(insn); + const char *types = insn_op_types(insn); char type = types[op_no]; VALUE ret; char buff[0x100]; @@ -706,7 +706,7 @@ int insn = iseq[pos]; int len = insn_len(insn); int i, j; - char *types = insn_op_types(insn); + const char *types = insn_op_types(insn); VALUE str = rb_str_new(0, 0); char buff[0x100]; char insn_name_buff[0x100]; @@ -724,7 +724,7 @@ rb_str_cat2(str, buff); for (j = 0; types[j]; j++) { - char *types = insn_op_types(insn); + const char *types = insn_op_types(insn); VALUE opstr = insn_operand_intern(iseqdat, insn, j, iseq[pos + j + 1], len, pos, &iseq[pos + j + 2], child); Index: compile.c =================================================================== --- compile.c (revision 15888) +++ compile.c (revision 15889) @@ -1034,7 +1034,7 @@ case ISEQ_ELEMENT_INSN: { int j, len, insn; - char *types; + const char *types; VALUE *operands; iobj = (INSN *)list; @@ -1655,9 +1655,9 @@ iobj = (INSN *)list; id = iobj->insn_id; if (unified_insns_data[id] != 0) { - int **entry = unified_insns_data[id]; + const int *const *entry = unified_insns_data[id]; for (j = 1; j < (int)entry[0]; j++) { - int *unified = entry[j]; + const int *unified = entry[j]; LINK_ELEMENT *li = list->next; for (k = 2; k < unified[1]; k++) { if (li->type != ISEQ_ELEMENT_INSN || @@ -4588,7 +4588,7 @@ str = rb_sprintf("%-16s", insn_name(iobj->insn_id)); if (iobj->operands) { - char *types = insn_op_types(iobj->insn_id); + const char *types = insn_op_types(iobj->insn_id); int j; for (j = 0; types[j]; j++) { Index: version.h =================================================================== --- version.h (revision 15888) +++ version.h (revision 15889) @@ -1,7 +1,7 @@ #define RUBY_VERSION "1.9.0" -#define RUBY_RELEASE_DATE "2008-04-02" +#define RUBY_RELEASE_DATE "2008-04-03" #define RUBY_VERSION_CODE 190 -#define RUBY_RELEASE_CODE 20080402 +#define RUBY_RELEASE_CODE 20080403 #define RUBY_PATCHLEVEL 0 #define RUBY_VERSION_MAJOR 1 @@ -9,7 +9,7 @@ #define RUBY_VERSION_TEENY 0 #define RUBY_RELEASE_YEAR 2008 #define RUBY_RELEASE_MONTH 4 -#define RUBY_RELEASE_DAY 2 +#define RUBY_RELEASE_DAY 3 #ifdef RUBY_EXTERN RUBY_EXTERN const char ruby_version[]; Index: tool/instruction.rb =================================================================== --- tool/instruction.rb (revision 15888) +++ tool/instruction.rb (revision 15889) @@ -1139,7 +1139,7 @@ uni_insn, uni_insns = *unif uni_insns = uni_insns[1..-1] - unif_insns_each << "static int UNIFIED_#{insn.name}_#{i}[] = {" + + unif_insns_each << "static const int UNIFIED_#{insn.name}_#{i}[] = {" + " BIN(#{uni_insn.name}), #{uni_insns.size + 2}, \n " + uni_insns.map{|e| "BIN(#{e.name})"}.join(", ") + "};\n" } @@ -1147,14 +1147,14 @@ end if size > 0 - unif_insns << "static int *UNIFIED_#{insn.name}[] = {(int *)#{size+1}, \n" + unif_insns << "static const int *const UNIFIED_#{insn.name}[] = {(int *)#{size+1}, \n" unif_insns << (0...size).map{|e| " UNIFIED_#{insn.name}_#{e}"}.join(",\n") + "};\n" unif_insns_data << " UNIFIED_#{insn.name}" else unif_insns_data << " 0" end } - unif_insns_data = "static int **unified_insns_data[] = {\n" + + unif_insns_data = "static const int *const *const unified_insns_data[] = {\n" + unif_insns_data.join(",\n") + "};\n" ERB.new(vpath.read('template/optunifs.inc.tmpl')).result(binding) end Index: template/insns_info.inc.tmpl =================================================================== --- template/insns_info.inc.tmpl (revision 15888) +++ template/insns_info.inc.tmpl (revision 15889) @@ -11,20 +11,20 @@ <%= insn_type_chars %> -static char *insn_name_info[] = { +static const char *const insn_name_info[] = { <%= insn_names %> }; -static char *insn_operand_info[] = { +static const char *const insn_operand_info[] = { <%= operands_info %> }; -static int insn_len_info[] = { +static const int insn_len_info[] = { <%= operands_num_info %> }; #ifdef USE_INSN_RET_NUM -static int insn_stack_push_num_info[] = { +static const int insn_stack_push_num_info[] = { <%= stack_num_info %> }; #endif @@ -50,13 +50,13 @@ return insn_len_info[insn]; } -static char * +static const char * insn_name(int insn) { return insn_name_info[insn]; } -static char * +static const char * insn_op_types(int insn) { return insn_operand_info[insn]; Index: template/opt_sc.inc.tmpl =================================================================== --- template/opt_sc.inc.tmpl (revision 15888) +++ template/opt_sc.inc.tmpl (revision 15889) @@ -22,11 +22,11 @@ #define SC_ERROR 0xffffffff -static VALUE sc_insn_info[][SC_STATE_SIZE] = { +static const VALUE sc_insn_info[][SC_STATE_SIZE] = { <%= sc_insn_info %> }; -static VALUE sc_insn_next[] = { +static const VALUE sc_insn_next[] = { <%= sc_insn_next %> }; Index: template/optunifs.inc.tmpl =================================================================== --- template/optunifs.inc.tmpl (revision 15888) +++ template/optunifs.inc.tmpl (revision 15889) @@ -13,16 +13,16 @@ */ /* - static int UNIFIED_insn_name_1[] = {id, size, ...}; - static int UNIFIED_insn_name_2[] = {id, size, ...}; + static const int UNIFIED_insn_name_1[] = {id, size, ...}; + static const int UNIFIED_insn_name_2[] = {id, size, ...}; ... - static *int UNIFIED_insn_name[] = {size, + static const int *const UNIFIED_insn_name[] = {size, UNIFIED_insn_name_1, UNIFIED_insn_name_2, ...}; ... - static **int unified_insns_data[] = { + static const int *const *const unified_insns_data[] = { UNIFIED_insn_nameA, UNIFIED_insn_nameB, ...}; */ -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/