[#7785] rb2c — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

28 messages 1999/09/02

[#7845] [Q] irb and SizedQueue — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

14 messages 1999/09/15

[ruby-dev:7907] rb2c-0.5.6

From: Katsuyuki Komatsu <komatsu@...>
Date: 1999-09-23 10:29:41 UTC
List: ruby-dev #7907
小松です。

rb2c-0.5.6ですが、sample/fib.rbを変換すると、
    VALUE local_vars[0];
や
    static char *rb2c_argv[0]; (rb2c.rbを使った場合)
といったコードが生成されます。しかし、[0]が通るのはgccとPortable C
ぐらいなので、とりあえず[1]になるようにしてみました。

diff -rup rb2c-0.5.6.orig/src/compile.rb rb2c-0.5.6/src/compile.rb
--- rb2c-0.5.6.orig/src/compile.rb	Thu Sep 16 18:10:35 1999
+++ rb2c-0.5.6/src/compile.rb	Wed Sep 21 23:02:03 1999
@@ -217,7 +217,7 @@ static VALUE
 {
     VALUE result = Qnil;"
       if @local_tbl[0] > 0 || scopemode then o"
-    VALUE local_vars[#{@local_tbl[0]}];
+    VALUE local_vars[#{if @local_tbl[0] > 0 then @local_tbl[0] else 1 end}];
     {int i; for (i=0; i<#{@local_tbl[0]}; ++i) local_vars[i] = Qnil;}
     PUSH_SCOPE();
     ruby_scope->local_vars = local_vars;
@@ -1935,7 +1935,7 @@ static void init_sub() {"
     o<<"
 
 static int rb2c_argc = #{argc};
-static char *rb2c_argv[#{argc}]#{argvl};
+static char *rb2c_argv[#{if argc > 0 then argc else 1 end}]#{argvl};
 
 int
 main(int argc, char **argv)

--
小松克行 / Katsuyuki Komatsu <komatsu@sarion.co.jp>

In This Thread

Prev Next