From c2091e37ec2fd62e82f5aa69e8d147e0c329cdff Mon Sep 17 00:00:00 2001 From: yugui Date: Sat, 18 Oct 2008 22:30:13 +0000 Subject: * keywords, lex.c.src, opt_insn_unif.def, opt_operand.def: moved rarely changed input files for code generators into defs/ directory. * Makefile.in (lex.c): followed keywords and lex.c.src. * common.mk (parser.o): followed keywords. (INSNS): followed opt_*.def * tools/instruction.rb: followed opt_*.def. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19844 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 12 ++++++++++ Makefile.in | 6 ++--- common.mk | 4 ++-- defs/keywords | 51 +++++++++++++++++++++++++++++++++++++++++++ defs/lex.c.src | 51 +++++++++++++++++++++++++++++++++++++++++++ defs/opt_insn_unif.def | 29 +++++++++++++++++++++++++ defs/opt_operand.def | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++ keywords | 51 ------------------------------------------- lex.c.src | 51 ------------------------------------------- opt_insn_unif.def | 29 ------------------------- opt_operand.def | 59 -------------------------------------------------- tool/instruction.rb | 8 +++---- 12 files changed, 211 insertions(+), 199 deletions(-) create mode 100644 defs/keywords create mode 100644 defs/lex.c.src create mode 100644 defs/opt_insn_unif.def create mode 100644 defs/opt_operand.def delete mode 100644 keywords delete mode 100644 lex.c.src delete mode 100644 opt_insn_unif.def delete mode 100644 opt_operand.def diff --git a/ChangeLog b/ChangeLog index 5ee8ba2c23..e07127f3e0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +Sun Oct 19 07:25:08 2008 Yuki Sonoda (Yugui) + + * keywords, lex.c.src, opt_insn_unif.def, opt_operand.def: moved rarely changed + input files for code generators into defs/ directory. + + * Makefile.in (lex.c): followed keywords and lex.c.src. + + * common.mk (parser.o): followed keywords. + (INSNS): followed opt_*.def + + * tools/instruction.rb: followed opt_*.def. + Sun Oct 19 12:28:01 2008 James Edward Gray II * test/csv/*: Renamed tc_* files to test_* to fit in within Ruby's diff --git a/Makefile.in b/Makefile.in index 8b4ad30549..eece91ed6e 100644 --- a/Makefile.in +++ b/Makefile.in @@ -185,16 +185,16 @@ $(srcdir)/configure: $(srcdir)/configure.in # * GNU make v.s. HP-UX make # HP-UX make invokes the action if lex.c and keywords has same mtime. # * svn checkout generate a file with mtime as current time # * XFS has a mtime with fractional part -lex.c: keywords +lex.c: defs/keywords @\ - if cmp -s $(srcdir)/lex.c.src $?; then \ + if cmp -s $(srcdir)/defs/lex.c.src $?; then \ set -x; \ cp $(srcdir)/lex.c.blt $@; \ else \ set -x; \ gperf -C -p -j1 -i 1 -g -o -t -N rb_reserved_word -k1,3,$$ $? > $@.tmp && \ mv $@.tmp $@ && \ - cp $? $(srcdir)/lex.c.src && \ + cp $? $(srcdir)/defs/lex.c.src && \ cp $@ $(srcdir)/lex.c.blt; \ fi diff --git a/common.mk b/common.mk index dc80dea5a1..cb7f315687 100644 --- a/common.mk +++ b/common.mk @@ -496,7 +496,7 @@ pack.$(OBJEXT): {$(VPATH)}pack.c $(RUBY_H_INCLUDES) parse.$(OBJEXT): {$(VPATH)}parse.c $(RUBY_H_INCLUDES) \ {$(VPATH)}node.h $(ENCODING_H_INCLUDES) $(ID_H_INCLUDES) \ {$(VPATH)}regenc.h {$(VPATH)}regex.h {$(VPATH)}util.h {$(VPATH)}lex.c \ - {$(VPATH)}keywords {$(VPATH)}id.c + {$(VPATH)}defs/keywords {$(VPATH)}id.c proc.$(OBJEXT): {$(VPATH)}proc.c {$(VPATH)}eval_intern.h \ $(RUBY_H_INCLUDES) {$(VPATH)}gc.h $(VM_CORE_H_INCLUDES) \ {$(VPATH)}debug.h @@ -605,7 +605,7 @@ INSNS = opt_sc.inc optinsn.inc optunifs.inc insns.inc insns_info.inc \ INSNS2VMOPT = --srcdir="$(srcdir)" -$(INSNS): $(srcdir)/insns.def {$(VPATH)}vm_opts.h +$(INSNS): $(srcdir)/insns.def {$(VPATH)}vm_opts.h $(srcdir)/defs/opt_operand.def $(srcdir)/defs/opt_insn_unif.def @$(RM) $(PROGRAM) $(BASERUBY) -Ks $(srcdir)/tool/insns2vm.rb $(INSNS2VMOPT) $@ diff --git a/defs/keywords b/defs/keywords new file mode 100644 index 0000000000..f0d82a7667 --- /dev/null +++ b/defs/keywords @@ -0,0 +1,51 @@ +%{ +struct kwtable {const char *name; int id[2]; enum lex_state_e state;}; +const struct kwtable *rb_reserved_word(const char *, unsigned int); +#ifndef RIPPER +%} + +struct kwtable; +%% +__ENCODING__, {keyword__ENCODING__, keyword__ENCODING__}, EXPR_END +__LINE__, {keyword__LINE__, keyword__LINE__}, EXPR_END +__FILE__, {keyword__FILE__, keyword__FILE__}, EXPR_END +BEGIN, {keyword_BEGIN, keyword_BEGIN}, EXPR_END +END, {keyword_END, keyword_END}, EXPR_END +alias, {keyword_alias, keyword_alias}, EXPR_FNAME +and, {keyword_and, keyword_and}, EXPR_VALUE +begin, {keyword_begin, keyword_begin}, EXPR_BEG +break, {keyword_break, keyword_break}, EXPR_MID +case, {keyword_case, keyword_case}, EXPR_VALUE +class, {keyword_class, keyword_class}, EXPR_CLASS +def, {keyword_def, keyword_def}, EXPR_FNAME +defined?, {keyword_defined, keyword_defined}, EXPR_ARG +do, {keyword_do, keyword_do}, EXPR_BEG +else, {keyword_else, keyword_else}, EXPR_BEG +elsif, {keyword_elsif, keyword_elsif}, EXPR_VALUE +end, {keyword_end, keyword_end}, EXPR_END +ensure, {keyword_ensure, keyword_ensure}, EXPR_BEG +false, {keyword_false, keyword_false}, EXPR_END +for, {keyword_for, keyword_for}, EXPR_VALUE +if, {keyword_if, modifier_if}, EXPR_VALUE +in, {keyword_in, keyword_in}, EXPR_VALUE +module, {keyword_module, keyword_module}, EXPR_VALUE +next, {keyword_next, keyword_next}, EXPR_MID +nil, {keyword_nil, keyword_nil}, EXPR_END +not, {keyword_not, keyword_not}, EXPR_ARG +or, {keyword_or, keyword_or}, EXPR_VALUE +redo, {keyword_redo, keyword_redo}, EXPR_END +rescue, {keyword_rescue, modifier_rescue}, EXPR_MID +retry, {keyword_retry, keyword_retry}, EXPR_END +return, {keyword_return, keyword_return}, EXPR_MID +self, {keyword_self, keyword_self}, EXPR_END +super, {keyword_super, keyword_super}, EXPR_ARG +then, {keyword_then, keyword_then}, EXPR_BEG +true, {keyword_true, keyword_true}, EXPR_END +undef, {keyword_undef, keyword_undef}, EXPR_FNAME +unless, {keyword_unless, modifier_unless}, EXPR_VALUE +until, {keyword_until, modifier_until}, EXPR_VALUE +when, {keyword_when, keyword_when}, EXPR_VALUE +while, {keyword_while, modifier_while}, EXPR_VALUE +yield, {keyword_yield, keyword_yield}, EXPR_ARG +%% +#endif diff --git a/defs/lex.c.src b/defs/lex.c.src new file mode 100644 index 0000000000..f0d82a7667 --- /dev/null +++ b/defs/lex.c.src @@ -0,0 +1,51 @@ +%{ +struct kwtable {const char *name; int id[2]; enum lex_state_e state;}; +const struct kwtable *rb_reserved_word(const char *, unsigned int); +#ifndef RIPPER +%} + +struct kwtable; +%% +__ENCODING__, {keyword__ENCODING__, keyword__ENCODING__}, EXPR_END +__LINE__, {keyword__LINE__, keyword__LINE__}, EXPR_END +__FILE__, {keyword__FILE__, keyword__FILE__}, EXPR_END +BEGIN, {keyword_BEGIN, keyword_BEGIN}, EXPR_END +END, {keyword_END, keyword_END}, EXPR_END +alias, {keyword_alias, keyword_alias}, EXPR_FNAME +and, {keyword_and, keyword_and}, EXPR_VALUE +begin, {keyword_begin, keyword_begin}, EXPR_BEG +break, {keyword_break, keyword_break}, EXPR_MID +case, {keyword_case, keyword_case}, EXPR_VALUE +class, {keyword_class, keyword_class}, EXPR_CLASS +def, {keyword_def, keyword_def}, EXPR_FNAME +defined?, {keyword_defined, keyword_defined}, EXPR_ARG +do, {keyword_do, keyword_do}, EXPR_BEG +else, {keyword_else, keyword_else}, EXPR_BEG +elsif, {keyword_elsif, keyword_elsif}, EXPR_VALUE +end, {keyword_end, keyword_end}, EXPR_END +ensure, {keyword_ensure, keyword_ensure}, EXPR_BEG +false, {keyword_false, keyword_false}, EXPR_END +for, {keyword_for, keyword_for}, EXPR_VALUE +if, {keyword_if, modifier_if}, EXPR_VALUE +in, {keyword_in, keyword_in}, EXPR_VALUE +module, {keyword_module, keyword_module}, EXPR_VALUE +next, {keyword_next, keyword_next}, EXPR_MID +nil, {keyword_nil, keyword_nil}, EXPR_END +not, {keyword_not, keyword_not}, EXPR_ARG +or, {keyword_or, keyword_or}, EXPR_VALUE +redo, {keyword_redo, keyword_redo}, EXPR_END +rescue, {keyword_rescue, modifier_rescue}, EXPR_MID +retry, {keyword_retry, keyword_retry}, EXPR_END +return, {keyword_return, keyword_return}, EXPR_MID +self, {keyword_self, keyword_self}, EXPR_END +super, {keyword_super, keyword_super}, EXPR_ARG +then, {keyword_then, keyword_then}, EXPR_BEG +true, {keyword_true, keyword_true}, EXPR_END +undef, {keyword_undef, keyword_undef}, EXPR_FNAME +unless, {keyword_unless, modifier_unless}, EXPR_VALUE +until, {keyword_until, modifier_until}, EXPR_VALUE +when, {keyword_when, keyword_when}, EXPR_VALUE +while, {keyword_while, modifier_while}, EXPR_VALUE +yield, {keyword_yield, keyword_yield}, EXPR_ARG +%% +#endif diff --git a/defs/opt_insn_unif.def b/defs/opt_insn_unif.def new file mode 100644 index 0000000000..1ac613dbea --- /dev/null +++ b/defs/opt_insn_unif.def @@ -0,0 +1,29 @@ +# +# a definition of instruction unification +# +# + +__END__ + +putobject putobject +putobject putstring +putobject setlocal +putobject setdynamic + +putstring putstring +putstring putobject +putstring setlocal +putstring setdynamic + +# putnil end + +dup setlocal + +# from tarai +getlocal getlocal +# getlocal send + +# from tak, ackermann +getlocal putobject + + diff --git a/defs/opt_operand.def b/defs/opt_operand.def new file mode 100644 index 0000000000..5ca1d74028 --- /dev/null +++ b/defs/opt_operand.def @@ -0,0 +1,59 @@ +# +# configration file for operand union optimization +# +# format: +# [insn name] op1, op2 ... +# +# wildcard: * +# + +__END__ + +getlocal 2 +getlocal 3 +getlocal 4 + +setlocal 2 +setlocal 3 +setlocal 4 + +getdynamic *, 0 +getdynamic 1, 0 +getdynamic 2, 0 +getdynamic 3, 0 +getdynamic 4, 0 + +setdynamic *, 0 +setdynamic 1, 0 +setdynamic 2, 0 +setdynamic 3, 0 +setdynamic 4, 0 + +putobject INT2FIX(0) +putobject INT2FIX(1) +putobject Qtrue +putobject Qfalse + +# CALL +send *, *, Qfalse, 0, * +send *, 0, Qfalse, 0, * +send *, 1, Qfalse, 0, * +send *, 2, Qfalse, 0, * +send *, 3, Qfalse, 0, * + +# FCALL +send *, *, Qfalse, 0x04, * +send *, 0, Qfalse, 0x04, * +send *, 1, Qfalse, 0x04, * +send *, 2, Qfalse, 0x04, * +send *, 3, Qfalse, 0x04, * + +# VCALL +send *, 0, Qfalse, 0x0c, * + + +__END__ + + + + diff --git a/keywords b/keywords deleted file mode 100644 index f0d82a7667..0000000000 --- a/keywords +++ /dev/null @@ -1,51 +0,0 @@ -%{ -struct kwtable {const char *name; int id[2]; enum lex_state_e state;}; -const struct kwtable *rb_reserved_word(const char *, unsigned int); -#ifndef RIPPER -%} - -struct kwtable; -%% -__ENCODING__, {keyword__ENCODING__, keyword__ENCODING__}, EXPR_END -__LINE__, {keyword__LINE__, keyword__LINE__}, EXPR_END -__FILE__, {keyword__FILE__, keyword__FILE__}, EXPR_END -BEGIN, {keyword_BEGIN, keyword_BEGIN}, EXPR_END -END, {keyword_END, keyword_END}, EXPR_END -alias, {keyword_alias, keyword_alias}, EXPR_FNAME -and, {keyword_and, keyword_and}, EXPR_VALUE -begin, {keyword_begin, keyword_begin}, EXPR_BEG -break, {keyword_break, keyword_break}, EXPR_MID -case, {keyword_case, keyword_case}, EXPR_VALUE -class, {keyword_class, keyword_class}, EXPR_CLASS -def, {keyword_def, keyword_def}, EXPR_FNAME -defined?, {keyword_defined, keyword_defined}, EXPR_ARG -do, {keyword_do, keyword_do}, EXPR_BEG -else, {keyword_else, keyword_else}, EXPR_BEG -elsif, {keyword_elsif, keyword_elsif}, EXPR_VALUE -end, {keyword_end, keyword_end}, EXPR_END -ensure, {keyword_ensure, keyword_ensure}, EXPR_BEG -false, {keyword_false, keyword_false}, EXPR_END -for, {keyword_for, keyword_for}, EXPR_VALUE -if, {keyword_if, modifier_if}, EXPR_VALUE -in, {keyword_in, keyword_in}, EXPR_VALUE -module, {keyword_module, keyword_module}, EXPR_VALUE -next, {keyword_next, keyword_next}, EXPR_MID -nil, {keyword_nil, keyword_nil}, EXPR_END -not, {keyword_not, keyword_not}, EXPR_ARG -or, {keyword_or, keyword_or}, EXPR_VALUE -redo, {keyword_redo, keyword_redo}, EXPR_END -rescue, {keyword_rescue, modifier_rescue}, EXPR_MID -retry, {keyword_retry, keyword_retry}, EXPR_END -return, {keyword_return, keyword_return}, EXPR_MID -self, {keyword_self, keyword_self}, EXPR_END -super, {keyword_super, keyword_super}, EXPR_ARG -then, {keyword_then, keyword_then}, EXPR_BEG -true, {keyword_true, keyword_true}, EXPR_END -undef, {keyword_undef, keyword_undef}, EXPR_FNAME -unless, {keyword_unless, modifier_unless}, EXPR_VALUE -until, {keyword_until, modifier_until}, EXPR_VALUE -when, {keyword_when, keyword_when}, EXPR_VALUE -while, {keyword_while, modifier_while}, EXPR_VALUE -yield, {keyword_yield, keyword_yield}, EXPR_ARG -%% -#endif diff --git a/lex.c.src b/lex.c.src deleted file mode 100644 index f0d82a7667..0000000000 --- a/lex.c.src +++ /dev/null @@ -1,51 +0,0 @@ -%{ -struct kwtable {const char *name; int id[2]; enum lex_state_e state;}; -const struct kwtable *rb_reserved_word(const char *, unsigned int); -#ifndef RIPPER -%} - -struct kwtable; -%% -__ENCODING__, {keyword__ENCODING__, keyword__ENCODING__}, EXPR_END -__LINE__, {keyword__LINE__, keyword__LINE__}, EXPR_END -__FILE__, {keyword__FILE__, keyword__FILE__}, EXPR_END -BEGIN, {keyword_BEGIN, keyword_BEGIN}, EXPR_END -END, {keyword_END, keyword_END}, EXPR_END -alias, {keyword_alias, keyword_alias}, EXPR_FNAME -and, {keyword_and, keyword_and}, EXPR_VALUE -begin, {keyword_begin, keyword_begin}, EXPR_BEG -break, {keyword_break, keyword_break}, EXPR_MID -case, {keyword_case, keyword_case}, EXPR_VALUE -class, {keyword_class, keyword_class}, EXPR_CLASS -def, {keyword_def, keyword_def}, EXPR_FNAME -defined?, {keyword_defined, keyword_defined}, EXPR_ARG -do, {keyword_do, keyword_do}, EXPR_BEG -else, {keyword_else, keyword_else}, EXPR_BEG -elsif, {keyword_elsif, keyword_elsif}, EXPR_VALUE -end, {keyword_end, keyword_end}, EXPR_END -ensure, {keyword_ensure, keyword_ensure}, EXPR_BEG -false, {keyword_false, keyword_false}, EXPR_END -for, {keyword_for, keyword_for}, EXPR_VALUE -if, {keyword_if, modifier_if}, EXPR_VALUE -in, {keyword_in, keyword_in}, EXPR_VALUE -module, {keyword_module, keyword_module}, EXPR_VALUE -next, {keyword_next, keyword_next}, EXPR_MID -nil, {keyword_nil, keyword_nil}, EXPR_END -not, {keyword_not, keyword_not}, EXPR_ARG -or, {keyword_or, keyword_or}, EXPR_VALUE -redo, {keyword_redo, keyword_redo}, EXPR_END -rescue, {keyword_rescue, modifier_rescue}, EXPR_MID -retry, {keyword_retry, keyword_retry}, EXPR_END -return, {keyword_return, keyword_return}, EXPR_MID -self, {keyword_self, keyword_self}, EXPR_END -super, {keyword_super, keyword_super}, EXPR_ARG -then, {keyword_then, keyword_then}, EXPR_BEG -true, {keyword_true, keyword_true}, EXPR_END -undef, {keyword_undef, keyword_undef}, EXPR_FNAME -unless, {keyword_unless, modifier_unless}, EXPR_VALUE -until, {keyword_until, modifier_until}, EXPR_VALUE -when, {keyword_when, keyword_when}, EXPR_VALUE -while, {keyword_while, modifier_while}, EXPR_VALUE -yield, {keyword_yield, keyword_yield}, EXPR_ARG -%% -#endif diff --git a/opt_insn_unif.def b/opt_insn_unif.def deleted file mode 100644 index 1ac613dbea..0000000000 --- a/opt_insn_unif.def +++ /dev/null @@ -1,29 +0,0 @@ -# -# a definition of instruction unification -# -# - -__END__ - -putobject putobject -putobject putstring -putobject setlocal -putobject setdynamic - -putstring putstring -putstring putobject -putstring setlocal -putstring setdynamic - -# putnil end - -dup setlocal - -# from tarai -getlocal getlocal -# getlocal send - -# from tak, ackermann -getlocal putobject - - diff --git a/opt_operand.def b/opt_operand.def deleted file mode 100644 index 5ca1d74028..0000000000 --- a/opt_operand.def +++ /dev/null @@ -1,59 +0,0 @@ -# -# configration file for operand union optimization -# -# format: -# [insn name] op1, op2 ... -# -# wildcard: * -# - -__END__ - -getlocal 2 -getlocal 3 -getlocal 4 - -setlocal 2 -setlocal 3 -setlocal 4 - -getdynamic *, 0 -getdynamic 1, 0 -getdynamic 2, 0 -getdynamic 3, 0 -getdynamic 4, 0 - -setdynamic *, 0 -setdynamic 1, 0 -setdynamic 2, 0 -setdynamic 3, 0 -setdynamic 4, 0 - -putobject INT2FIX(0) -putobject INT2FIX(1) -putobject Qtrue -putobject Qfalse - -# CALL -send *, *, Qfalse, 0, * -send *, 0, Qfalse, 0, * -send *, 1, Qfalse, 0, * -send *, 2, Qfalse, 0, * -send *, 3, Qfalse, 0, * - -# FCALL -send *, *, Qfalse, 0x04, * -send *, 0, Qfalse, 0x04, * -send *, 1, Qfalse, 0x04, * -send *, 2, Qfalse, 0x04, * -send *, 3, Qfalse, 0x04, * - -# VCALL -send *, 0, Qfalse, 0x0c, * - - -__END__ - - - - diff --git a/tool/instruction.rb b/tool/instruction.rb index 5e5eb0b78a..7ecc84b26f 100644 --- a/tool/instruction.rb +++ b/tool/instruction.rb @@ -106,8 +106,8 @@ class RubyVM load_insns_def opts[:"insns.def"] || 'insns.def' - load_opt_operand_def opts[:"opope.def"] || 'opt_operand.def' - load_insn_unification_def opts[:"unif.def"] || 'opt_insn_unif.def' + load_opt_operand_def opts[:"opope.def"] || 'defs/opt_operand.def' + load_insn_unification_def opts[:"unif.def"] || 'defs/opt_insn_unif.def' make_stackcaching_insns if vm_opt?('STACK_CACHING') end @@ -1326,8 +1326,8 @@ class RubyVM def self.def_options(opt) opts = { :"insns.def" => 'insns.def', - :"opope.def" => 'opt_operand.def', - :"unif.def" => 'opt_insn_unif.def', + :"opope.def" => 'defs/opt_operand.def', + :"unif.def" => 'defs/opt_insn_unif.def', } opt.on("-Dname", /\AOPT_(\w+)\z/, "enable VM option") {|s, v| -- cgit v1.2.3