[前][次][番号順一覧][スレッド一覧][生データ]

yarv-diff:98

From: ko1 atdot.net
Date: 10 Sep 2005 05:12:03 -0000
Subject: [yarv-diff:98] r254 - in trunk: . rb

Author: ko1
Date: 2005-09-10 14:12:02 +0900 (Sat, 10 Sep 2005)
New Revision: 254

Added:
   trunk/vm_opts.h
Modified:
   trunk/ChangeLog
   trunk/rb/insns2vm.rb
   trunk/test.rb
   trunk/yarvcore.h
Log:
	* vm_opts.h : added

	* yarvcore.h, rb/insns2vm.h : use vm_opts.h



Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2005-09-09 19:56:46 UTC (rev 253)
+++ trunk/ChangeLog	2005-09-10 05:12:02 UTC (rev 254)
@@ -4,6 +4,13 @@
 #  from Mon, 03 May 2004 01:24:19 +0900
 #
 
+2005-09-10(Sat) 14:10:08 +0900  Koichi Sasada  <ko1 atdot.net>
+
+	* vm_opts.h : added
+
+	* yarvcore.h, rb/insns2vm.h : use vm_opts.h
+
+
 2005-09-10(Sat) 04:53:22 +0900  Koichi Sasada  <ko1 atdot.net>
 
 	* yarvcore.h, insns.def, compile.c : add DEFINED_YIELD

Modified: trunk/rb/insns2vm.rb
===================================================================
--- trunk/rb/insns2vm.rb	2005-09-09 19:56:46 UTC (rev 253)
+++ trunk/rb/insns2vm.rb	2005-09-10 05:12:02 UTC (rev 254)
@@ -1101,6 +1101,25 @@
   end
 }
 
+optfile = nil
+if    FileTest.exist?(File.join(Dir.pwd, 'vm_opts.h'))
+  optfile = File.join(Dir.pwd, 'vm_opts.h')
+elsif FileTest.exist?(File.join($srcdir, 'vm_opts.h'))
+  optfile = File.join($srcdir, 'vm_opts.h')
+end
+
+if optfile
+  open(optfile){|f|
+    f.each_line{|line|
+      if /^\#define\s+(OPT_[A-Z_]+)\s+1/ =~ line
+        $opts[$1] = true
+      elsif /IGNORE_OPTIMIZE\s+1/ =~ line
+        break
+      end
+    }
+  }
+end
+
 $insns_def = File.join($srcdir, insns_def)
 $opope_def = File.join($srcdir, opope_def)
 $unif_def  = File.join($srcdir, unif_def)

Modified: trunk/test.rb
===================================================================
--- trunk/test.rb	2005-09-09 19:56:46 UTC (rev 253)
+++ trunk/test.rb	2005-09-10 05:12:02 UTC (rev 254)
@@ -1,26 +1,12 @@
 
-module Enumerable_
-  def collect
-    ary = []
-    each{|e|
-      ary << e
-    }
+def fib n
+  if n < 2
+    1
+  else
+    fib(n-1) + fib(n-2)
   end
 end
 
+fib(36)
 
-class C
-  include Enumerable
-  def initialize
-    @a = [1,2,3]
-  end
-  
-  def each &b
-    @a.each{|e|
-      yield e
-    }
-  end
-end
 
-p C.new.collect{|n| n}
-

Added: trunk/vm_opts.h
===================================================================
--- trunk/vm_opts.h	2005-09-09 19:56:46 UTC (rev 253)
+++ trunk/vm_opts.h	2005-09-10 05:12:02 UTC (rev 254)
@@ -0,0 +1,30 @@
+/*
+ * VM optimize option
+ */
+
+#ifndef VM_OPTS_H_INCLUDED
+#define VM_OPTS_H_INCLUDED
+
+#define IGNORE_OPTIMIZE 1
+
+
+#if IGNORE_OPTIMIZE == 0
+
+/* compiler depend */
+#define OPT_DIRECT_THREADED_CODE     1
+
+/* architecture independent */
+#define OPT_BASIC_OPERATIONS         1
+#define OPT_INLINE_METHOD_CACHE      1
+
+/* architecture independent, affects generated code */
+#define OPT_OPERANDS_UNIFICATION     1
+#define OPT_INSTRUCTIONS_UNIFICATION 1
+#define OPT_UNIFY_ALL_COMBINATION    1
+
+#define OPT_STACK_CACHING            1
+
+#endif /* IGNORE_OPTIMIZE */
+
+#endif /* VM_OPTS_H_INCLUDED */
+

Modified: trunk/yarvcore.h
===================================================================
--- trunk/yarvcore.h	2005-09-09 19:56:46 UTC (rev 253)
+++ trunk/yarvcore.h	2005-09-10 05:12:02 UTC (rev 254)
@@ -7,6 +7,7 @@
 #define _YARVCORE_H_INCLUDED_
 
 #include "debug.h"
+#include "vm_opts.h"
 
 /*****************/
 /* configuration */


--
ML: yarv-diff quickml.atdot.net
Info: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]