[#11680] fork_and_kill_other_threads — "NAKAMURA, Hiroshi" <nakahiro@...>
なひです。[ruby-list:26165]からもって来ました。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
On Sun, 3 Dec 2000 23:33:41 +0900
まつもと ゆきひろです
なひです。
まつもと ゆきひろです
なひです。
まつもと ゆきひろです
なひです。
まつもと ゆきひろです
なひです。
[#11688] [bug?] cgi.rb / rb_exec_end_proc — Takaaki Tateishi <ttate@...>
立石です.
[#11697] ruby_run() — "K.Kosako" <kosako@...>
細かい話で恐縮ですが、プログラムを読んでいて
[#11733] Ruby I18N 改め M17N — とみたまさひろ <tommy@...>
とみたです。
まつもと ゆきひろです
とみたです。
まつもと ゆきひろです
> |もし MBString を Ruby の基本クラスとして実装するんでしたら、
まつもと ゆきひろです
> |struct RString(とstruct RMBString)からorigメンバを削っても、
[#11758] [PATCH & Q] literal in condition — "Nobuyoshi.Nakada" <nobu.nakada@...>
なかだです。
[#11777] Maybe IRB bug!! — Kazuhiro NISHIYAMA <zn@...>
irbで$SAFE=4にしたらSecurityErrorで終了してしまいました。
けいじゅ@日本ラショナルソフトウェアです.
[#11789] mswin32 [Q & patch] mkmf.rb — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
なかだです。
まつもと ゆきひろです
なかだです。
こんにちは、なかむら(う)です。
なかだです。
[#11818] Hash#inspect with symbol key — Hiroshi IGARASHI <igarashi@...>
いがらしです。ご無沙汰してます。
[#11820] pack/unpack の '_' — Koji Arai <JCA02266@...>
新井です。
[#11835] fork exception — nobu.nakada@...
なかだです。
[#11848] Where'd all the Ruby's history gone? — "Akinori MUSHA" <knu@...>
さっき気付いたんですが、 Ruby のレポジトリから過去分がごっそり
まつもと ゆきひろです
On Tue, 26 Dec 2000 14:58:07 +0900
まつもと ゆきひろです
At Tue, 26 Dec 2000 17:44:57 +0900,
On Tue, 26 Dec 2000 21:24:19 +0900
At Fri, 29 Dec 2000 18:56:03 +0900,
On Fri, 29 Dec 2000 19:07:12 +0900
At Fri, 29 Dec 2000 19:35:56 +0900,
On Fri, 29 Dec 2000 19:55:59 +0900
At Sat, 6 Jan 2001 20:33:58 +0900,
えぐち@エスアンドイー です。
[#11849] rb_io_flush — Kazuhiro Yoshida <moriq.kazuhiro@...>
もりきゅうです。
[#11852] local variable extent problem? — Tanaka Akira <akr@...17n.org>
どうも、Ruby のバグのような気がするものを見つけたのですが、もしかした
まつもと ゆきひろです
In article <977817486.100168.31162.nullmailer@ev.netlab.zetabits.com>,
まつもと ゆきひろです
In article <977819010.870991.31953.nullmailer@ev.netlab.zetabits.com>,
まつもと ゆきひろです
At Tue, 26 Dec 2000 17:50:11 +0900,
まつもと ゆきひろです
こんばんは。もうこんな時間だ。。
まつもと ゆきひろです
[#11885] New CVSweb — "Akinori MUSHA" <knu@...>
以下の URL に新しい CVSweb を置きました。新しいレポジトリを
[#11898] `www' module is available again — "Akinori MUSHA" <knu@...>
www レポジトリをマージしました。今のところ、 ruby と www の
[ruby-dev:11769] Re: [PATCH & Q] literal in condition
なかだです。
At Fri, 15 Dec 2000 15:11:05 +0900,
Nobuyoshi-Nakada wrote:
> ちょっと NODE 関連を調べてたんですが、条件式での文字列リテラルが正規表
> 現と見なされないようです。
すいません、見なされすぎで nil || "" なんてのまで // =~ $_ と
同じになってました。とりあえずこんな感じに訂正。
diff -pruPX ./.excludes current/eval.c devel/eval.c
--- current/eval.c Tue Dec 12 16:42:21 2000
+++ devel/eval.c Fri Dec 15 14:45:41 2000
@@ -1982,7 +1982,7 @@ rb_eval(self, n)
/* nodes for speed-up(default match) */
case NODE_MATCH:
- result = rb_reg_match2(node->nd_head->nd_lit);
+ result = rb_reg_match2(node->nd_lit);
break;
/* nodes for speed-up(literal match) */
diff -pruPX ./.excludes current/parse.y devel/parse.y
--- current/parse.y Tue Dec 12 16:42:28 2000
+++ devel/parse.y Fri Dec 15 17:05:49 2000
@@ -4406,13 +4408,18 @@ assign_in_cond(node)
}
static NODE*
-cond0(node)
+cond0(node, log)
NODE *node;
+ int log;
{
enum node_type type = nd_type(node);
assign_in_cond(node);
switch (type) {
+ case NODE_DSTR:
+ if (log) break;
+ nd_set_type(node, NODE_DREGX);
+ /* fall through */
case NODE_DREGX:
case NODE_DREGX_ONCE:
local_cnt('_');
@@ -4421,54 +4428,48 @@ cond0(node)
case NODE_DOT2:
case NODE_DOT3:
- node->nd_beg = cond2(node->nd_beg);
- node->nd_end = cond2(node->nd_end);
+ node->nd_beg = cond0(node->nd_beg, log);
+ node->nd_end = cond0(node->nd_end, log);
if (type == NODE_DOT2) nd_set_type(node,NODE_FLIP2);
else if (type == NODE_DOT3) nd_set_type(node, NODE_FLIP3);
node->nd_cnt = local_append(0);
return node;
+ case NODE_STR:
+ if (log) break;
+ node->nd_lit = rb_reg_new(RSTRING(node->nd_lit)->ptr,RSTRING(node->nd_lit)->len,0);
+ goto regexp;
+
case NODE_LIT:
if (TYPE(node->nd_lit) == T_REGEXP) {
+ regexp:
+ nd_set_type(node, NODE_MATCH);
local_cnt('_');
local_cnt('~');
- return NEW_MATCH(node);
+ return node;
}
- if (TYPE(node->nd_lit) == T_STRING) {
- local_cnt('_');
- local_cnt('~');
- return NEW_MATCH(rb_reg_new(RSTRING(node)->ptr,RSTRING(node)->len,0));
- }
- default:
- return node;
}
+ return node;
}
static NODE*
-cond(node)
+cond1(node, log)
NODE *node;
+ int log;
{
if (node == 0) return 0;
if (nd_type(node) == NODE_NEWLINE){
- node->nd_next = cond0(node->nd_next);
+ node->nd_next = cond0(node->nd_next, log);
return node;
}
- return cond0(node);
+ return cond0(node, log);
}
static NODE*
-cond2(node)
+cond(node)
NODE *node;
{
- enum node_type type;
-
- node = cond(node);
- type = nd_type(node);
- if (type == NODE_NEWLINE) node = node->nd_next;
- if (type == NODE_LIT && FIXNUM_P(node->nd_lit)) {
- return call_op(node,tEQ,1,NEW_GVAR(rb_intern("$.")));
- }
- return node;
+ return cond1(node, 0);
}
static NODE*
@@ -4477,7 +4478,7 @@ logop(type, left, right)
NODE *left, *right;
{
value_expr(left);
- return rb_node_newnode(type, cond(left), cond(right), 0);
+ return rb_node_newnode(type, cond1(left, 1), cond1(right, 1), 0);
}
static NODE *
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦