[#30408] Ruby 1.8.6 preview2 has been released — "Akinori MUSHA" <knu@...>

 Ruby 1.8.6 preview2 をリリースしました。

20 messages 2007/02/24
[#30414] fail to autoload at $SAFE==4 (Re: Ruby 1.8.6 preview2 has been released) — Hidetoshi NAGAI <nagai@...> 2007/02/25

永井@知能.九工大です.

[#30418] Re: fail to autoload at $SAFE==4 (Re: Ruby 1.8.6 preview2 has been released) — Nobuyoshi Nakada <nobu@...> 2007/02/25

なかだです。

[ruby-dev:30235] Re: [patch] rb_type(): シンボル型に対する型判定が怪しい

From: "Nobuyoshi Nakada" <nobu@...>
Date: 2007-02-01 09:23:28 UTC
List: ruby-dev #30235
なかだです。

At Thu, 1 Feb 2007 16:06:29 +0900,
Yukihiro Matsumoto wrote in [ruby-dev:30234]:
> |matzrubyでいうとr11562が相当するんですが、これはivar2まで含んでるので
> |一気に入れてしまうのはどうかなぁ。
>
> あれ、分離したつもりだったのに。これに反対してる人はいないと
> 思うので、入れるんなら入れるでいいんじゃないかなあ。

反対してるわけじゃないんですが、なんとなくその前の変更もいくつか同時に当
てないといけなさそうな気がしてます。

ついでにいうと、op_tblに対応するIDをrb_id2name()すると、rb_id2str()で一
時的に作られるStringが宙ぶらりんになってないでしょうか。


Index: parse.y
===================================================================
--- parse.y	(revision 11607)
+++ parse.y	(working copy)
@@ -8286,4 +8286,5 @@
     st_table *ivar2_id;
     st_table *id_ivar2;
+    VALUE op_sym[tLAST_TOKEN];
 } global_symbols = {tLAST_TOKEN};

@@ -8331,4 +8332,6 @@
 {
     rb_mark_tbl(global_symbols.id_str);
+    rb_gc_mark_locations(global_symbols.op_sym,
+			 global_symbols.op_sym + tLAST_TOKEN);
 }

@@ -8564,6 +8567,13 @@

 	for (i=0; op_tbl[i].token; i++) {
-	    if (op_tbl[i].token == id)
-		return rb_str_new2(op_tbl[i].name);
+	    if (op_tbl[i].token == id) {
+		VALUE str = global_symbols.op_sym[i];
+		if (!str) {
+		    str = rb_str_new2(op_tbl[i].name);
+		    FL_FREEZE(str);
+		    global_symbols.op_sym[i] = str;
+		}
+		return str;
+	    }
 	}
     }


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread