[前][次][番号順一覧][スレッド一覧]

ruby-changes:73600

From: Takashi <ko1@a...>
Date: Sun, 18 Sep 2022 14:06:08 +0900 (JST)
Subject: [ruby-changes:73600] 0e816e6d30 (master): Demote mjit_instruction.rb from builtin to stdlib

https://git.ruby-lang.org/ruby.git/commit/?id=0e816e6d30

From 0e816e6d3022892da438940b09c4d4b49ceb670f Mon Sep 17 00:00:00 2001
From: Takashi Kokubun <takashikkbn@g...>
Date: Sun, 18 Sep 2022 14:02:09 +0900
Subject: Demote mjit_instruction.rb from builtin to stdlib

---
 .gitignore                                 |  2 +-
 common.mk                                  |  7 +-----
 inits.c                                    |  1 -
 mjit_compiler.c                            |  1 -
 mjit_compiler.rb                           |  1 +
 template/Makefile.in                       |  9 ++++---
 tool/ruby_vm/views/instruction.rb.erb      | 40 ++++++++++++++++++++++++++++++
 tool/ruby_vm/views/mjit_instruction.rb.erb | 40 ------------------------------
 win32/Makefile.sub                         |  4 ---
 9 files changed, 48 insertions(+), 57 deletions(-)
 create mode 100644 tool/ruby_vm/views/instruction.rb.erb
 delete mode 100644 tool/ruby_vm/views/mjit_instruction.rb.erb

diff --git a/.gitignore b/.gitignore
index 52089ac21c..73012bb3ed 100644
--- a/.gitignore
+++ b/.gitignore
@@ -236,7 +236,7 @@ lcov*.info https://github.com/ruby/ruby/blob/trunk/.gitignore#L236
 /rb_mjit_header.h
 /mjit_config.h
 /include/ruby-*/*/rb_mjit_min_header-*.h
-/mjit_instruction.rb
+/lib/mjit/instruction.rb
 
 # /wasm/
 /wasm/tests/*.wasm
diff --git a/common.mk b/common.mk
index 5f016d6fc3..2956e2c93e 100644
--- a/common.mk
+++ b/common.mk
@@ -1081,7 +1081,6 @@ BUILTIN_RB_SRCS = \ https://github.com/ruby/ruby/blob/trunk/common.mk#L1081
 		$(srcdir)/marshal.rb \
 		$(srcdir)/mjit.rb \
 		$(srcdir)/mjit_compiler.rb \
-		$(srcdir)/mjit_instruction.rb \
 		$(srcdir)/pack.rb \
 		$(srcdir)/trace_point.rb \
 		$(srcdir)/warning.rb \
@@ -1173,7 +1172,7 @@ vm_call_iseq_optimized.inc: $(srcdir)/template/call_iseq_optimized.inc.tmpl https://github.com/ruby/ruby/blob/trunk/common.mk#L1172
 	$(ECHO) generating $@
 	$(Q) $(BASERUBY) $(tooldir)/generic_erb.rb -c -o $@ $(srcdir)/template/call_iseq_optimized.inc.tmpl
 
-$(MINIPRELUDE_C): $(COMPILE_PRELUDE) $(BUILTIN_RB_SRCS) $(srcdir)/mjit_instruction.rb
+$(MINIPRELUDE_C): $(COMPILE_PRELUDE) $(BUILTIN_RB_SRCS)
 	$(ECHO) generating $@
 	$(Q) $(BASERUBY) $(tooldir)/generic_erb.rb -I$(srcdir) -o $@ \
 		$(srcdir)/template/prelude.c.tmpl $(BUILTIN_RB_SRCS)
@@ -9302,7 +9301,6 @@ miniinit.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h https://github.com/ruby/ruby/blob/trunk/common.mk#L9301
 miniinit.$(OBJEXT): $(CCAN_DIR)/list/list.h
 miniinit.$(OBJEXT): $(CCAN_DIR)/str/str.h
 miniinit.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-miniinit.$(OBJEXT): $(srcdir)/mjit_instruction.rb
 miniinit.$(OBJEXT): $(top_srcdir)/internal/array.h
 miniinit.$(OBJEXT): $(top_srcdir)/internal/compilers.h
 miniinit.$(OBJEXT): $(top_srcdir)/internal/gc.h
@@ -9494,7 +9492,6 @@ miniinit.$(OBJEXT): {$(VPATH)}miniprelude.c https://github.com/ruby/ruby/blob/trunk/common.mk#L9492
 miniinit.$(OBJEXT): {$(VPATH)}missing.h
 miniinit.$(OBJEXT): {$(VPATH)}mjit.rb
 miniinit.$(OBJEXT): {$(VPATH)}mjit_compiler.rb
-miniinit.$(OBJEXT): {$(VPATH)}mjit_instruction.rb
 miniinit.$(OBJEXT): {$(VPATH)}nilclass.rb
 miniinit.$(OBJEXT): {$(VPATH)}node.h
 miniinit.$(OBJEXT): {$(VPATH)}numeric.rb
@@ -9748,7 +9745,6 @@ mjit_compiler.$(OBJEXT): $(CCAN_DIR)/list/list.h https://github.com/ruby/ruby/blob/trunk/common.mk#L9745
 mjit_compiler.$(OBJEXT): $(CCAN_DIR)/str/str.h
 mjit_compiler.$(OBJEXT): $(hdrdir)/ruby.h
 mjit_compiler.$(OBJEXT): $(hdrdir)/ruby/ruby.h
-mjit_compiler.$(OBJEXT): $(srcdir)/mjit_instruction.rb
 mjit_compiler.$(OBJEXT): $(top_srcdir)/internal/array.h
 mjit_compiler.$(OBJEXT): $(top_srcdir)/internal/class.h
 mjit_compiler.$(OBJEXT): $(top_srcdir)/internal/compile.h
@@ -9934,7 +9930,6 @@ mjit_compiler.$(OBJEXT): {$(VPATH)}mjit_compiler.c https://github.com/ruby/ruby/blob/trunk/common.mk#L9930
 mjit_compiler.$(OBJEXT): {$(VPATH)}mjit_compiler.h
 mjit_compiler.$(OBJEXT): {$(VPATH)}mjit_compiler.rb
 mjit_compiler.$(OBJEXT): {$(VPATH)}mjit_compiler.rbinc
-mjit_compiler.$(OBJEXT): {$(VPATH)}mjit_instruction.rbinc
 mjit_compiler.$(OBJEXT): {$(VPATH)}mjit_unit.h
 mjit_compiler.$(OBJEXT): {$(VPATH)}node.h
 mjit_compiler.$(OBJEXT): {$(VPATH)}ruby_assert.h
diff --git a/inits.c b/inits.c
index f43ece0e47..65a54d8f29 100644
--- a/inits.c
+++ b/inits.c
@@ -105,7 +105,6 @@ rb_call_builtin_inits(void) https://github.com/ruby/ruby/blob/trunk/inits.c#L105
 #if USE_MJIT
     BUILTIN(mjit);
     BUILTIN(mjit_compiler);
-    BUILTIN(mjit_instruction);
 #endif
     Init_builtin_prelude();
 }
diff --git a/mjit_compiler.c b/mjit_compiler.c
index 5163bbcf6b..2594678f77 100644
--- a/mjit_compiler.c
+++ b/mjit_compiler.c
@@ -165,6 +165,5 @@ has_cache_for_send(rb_execution_context_t *ec, VALUE self, VALUE cc_addr, VALUE https://github.com/ruby/ruby/blob/trunk/mjit_compiler.c#L165
 extern bool rb_splat_or_kwargs_p(const struct rb_callinfo *restrict ci);
 
 #include "mjit_compiler.rbinc"
-#include "mjit_instruction.rbinc"
 
 #endif // USE_MJIT
diff --git a/mjit_compiler.rb b/mjit_compiler.rb
index 9e032fc747..4996e773dc 100644
--- a/mjit_compiler.rb
+++ b/mjit_compiler.rb
@@ -132,5 +132,6 @@ if RubyVM::MJIT.enabled? https://github.com/ruby/ruby/blob/trunk/mjit_compiler.rb#L132
     def rb_cFloat;      Primitive.cexpr! 'PTR2NUM(rb_cFloat)'      end
   end
 
+  require "mjit/instruction"
   require "mjit/compiler"
 end
diff --git a/template/Makefile.in b/template/Makefile.in
index a644a92754..06878d552f 100644
--- a/template/Makefile.in
+++ b/template/Makefile.in
@@ -504,6 +504,11 @@ clean-local:: https://github.com/ruby/ruby/blob/trunk/template/Makefile.in#L504
 	$(Q)$(RM) -r mjit_build_dir.*
 	-$(Q) $(RMDIRS) $(MJIT_HEADER_INSTALL_DIR) $(MJIT_HEADER_BUILD_DIR) $(TIMESTAMPDIR) 2> $(NULL) || $(NULLCMD)
 
+main: $(srcdir)/lib/mjit/instruction.rb
+$(srcdir)/lib/mjit/instruction.rb: $(tooldir)/ruby_vm/views/instruction.rb.erb $(srcdir)/insns.def
+	$(ECHO) generating $@
+	$(Q) $(BASERUBY) -Ku $(tooldir)/insns2vm.rb $(INSNS2VMOPT) $@
+
 # DTrace static library hacks described here:
 # https://marc.info/?l=opensolaris-dtrace-discuss&m=114761203110734&w=4
 ruby-glommed.$(OBJEXT):
@@ -669,10 +674,6 @@ $(INSNS): $(srcdir)/insns.def vm_opts.h \ https://github.com/ruby/ruby/blob/trunk/template/Makefile.in#L674
 	$(ECHO) generating $@
 	$(Q) $(BASERUBY) -Ku $(tooldir)/insns2vm.rb $(INSNS2VMOPT) $@
 
-$(srcdir)/mjit_instruction.rb: $(tooldir)/ruby_vm/views/mjit_instruction.rb.erb
-	$(ECHO) generating $@
-	$(Q) $(BASERUBY) -Ku $(tooldir)/insns2vm.rb $(INSNS2VMOPT) $@
-
 loadpath: verconf.h
 	@$(CPP) $(XCFLAGS) $(CPPFLAGS) $(srcdir)/loadpath.c | \
 	sed -e '1,/^const char ruby_initial_load_paths/d;/;/,$$d' \
diff --git a/tool/ruby_vm/views/instruction.rb.erb b/tool/ruby_vm/views/instruction.rb.erb
new file mode 100644
index 0000000000..1c462de53a
--- /dev/null
+++ b/tool/ruby_vm/views/instruction.rb.erb
@@ -0,0 +1,40 @@ https://github.com/ruby/ruby/blob/trunk/tool/ruby_vm/views/instruction.rb.erb#L1
+module RubyVM::MJIT
+  Instruction = Struct.new(
+    :name,
+    :bin,
+    :len,
+    :expr,
+    :declarations,
+    :preamble,
+    :opes,
+    :pops,
+    :rets,
+    :always_leaf?,
+    :leaf_without_check_ints?,
+    :handles_sp?,
+  )
+
+  INSNS = {
+% RubyVM::Instructions.each_with_index do |insn, i|
+%   next if insn.name.start_with?('trace_')
+    <%= i %> => Instruction.new(
+      name: :<%= insn.name %>,
+      bin: <%= i %>, # BIN(<%= insn.name %>)
+      len: <%= insn.width %>, # insn_len
+      expr: <<-EXPR,
+<%= insn.expr.expr.dump.sub(/\A"/, '').sub(/"\z/, '').gsub(/\\n/, "\n").gsub(/\\t/, ' ' * 8) %>
+      EXPR
+      declarations: <%= insn.declarations.inspect %>,
+      preamble: <%= insn.preamble.map(&:expr).inspect %>,
+      opes: <%= insn.opes.inspect %>,
+      pops: <%= insn.pops.inspect %>,
+      rets: <%= insn.rets.inspect %>,
+      always_leaf?: <%= insn.always_leaf? %>,
+      leaf_without_check_ints?: <%= insn.leaf_without_check_ints? %>,
+      handles_sp?: <%= insn.handles_sp? %>,
+    ),
+% end
+  }
+
+  private_constant(*constants)
+end if RubyVM::MJIT.enabled?
diff --git a/tool/ruby_vm/views/mjit_instruction.rb.erb b/tool/ruby_vm/views/mjit_instruction.rb.erb
deleted file mode 100644
index 1c462de53a..0000000000
--- a/tool/ruby_vm/views/mjit_instruction.rb.erb
+++ /dev/null
@@ -1,40 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/tool/ruby_vm/views/instruction.rb.erb#L0
-module RubyVM::MJIT
-  Instruction = Struct.new(
-    :name,
-    :bin,
-    :len,
-    :expr,
-    :declarations,
-    :preamble,
-    :opes,
-    :pops,
-    :rets,
-    :always_leaf?,
-    :leaf_without_check_ints?,
-    :handles_sp?,
-  )
-
-  INSNS = {
-% RubyVM::Instructions.each_with_index do |insn, i|
-%   next if insn.name.start_with?('trace_')
-    <%= i %> => Instruction.new(
-      name: :<%= insn.name %>,
-      bin: <%= i %>, # BIN(<%= insn.name %>)
-      len: <%= insn.width %>, # insn_len
-      expr: <<-EXPR,
-<%= insn.expr.expr.dump.sub(/\A"/, '').sub(/"\z/, '').gsub(/\\n/, "\n").gsub(/\\t/, ' ' * 8) %>
-      EXPR
-      declarations: <%= insn.declarations.inspect %>,
-      preamble: <%= insn.preamble.map(&:expr).inspect %>,
-      opes: <%= insn.opes.inspect %>,
-      pops: <%= insn.pops.inspect %>,
-      rets: <%= insn.rets.inspect %>,
-      always_leaf?: <%= insn.always_leaf? %>,
-      leaf_without_check_ints?: <%= insn.leaf_without_check_ints? %>,
-      handles_sp?: <%= insn.handles_sp? %>,
-    ),
-% end
-  }
-
-  private_constant(*constants)
-end if RubyVM::MJIT.enabled?
diff --git a/win32/Makefile.sub b/win32/Makefile.sub
index 361af556cd..e84f978bb7 100644
--- a/win32/Makefile.sub
+++ b/win32/Makefile.sub
@@ -1351,10 +1351,6 @@ INSNS	= opt_sc.inc optinsn.inc optunifs.inc insns.inc insns_info.inc \ https://github.com/ruby/ruby/blob/trunk/win32/Makefile.sub#L1351
 ! endif
 !endif
 
-$(srcdir)/mjit_instruction.rb: $(tooldir)/ruby_vm/views/mjit_instruction.rb.erb
-	$(ECHO) generating $@
-	$(Q) $(BASERUBY) -Ku $(tooldir)/insns2vm.rb $(INSNS2VMOPT) $@
-
 verconf.h: verconf.mk
 
 loadpath: verconf.h
-- 
cgit v1.2.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]