[#38470] ruby-dev summary 21403-21530 (draft) — Minero Aoki <aamine@...>

青木です。

25 messages 2003/10/07
[#38475] Re: ruby-dev summary 21403-21530 (draft) — maili31s@... (SugHimsi==SUGIHARA Hiroshi) 2003/10/07

すぎむし。

[#38480] Re: ruby-dev summary 21403-21530 (draft) — Minero Aoki <aamine@...> 2003/10/08

青木です。

[#38481] marshal_dump (was Re: ) — m_seki@... 2003/10/08

[#38484] Re: marshal_dump (was Re: ) — matz@... (Yukihiro Matsumoto) 2003/10/09

まつもと ゆきひろです

[#38486] Re: marshal_dump (was Re: ) — Masatoshi Seki <m_seki@...> 2003/10/09

咳といいます

[#38489] exit status on exit! — YANAGAWA Kazuhisa <kjana@...4lab.to>

<http://www.unixuser.org/~ysjj/diary/?200310a&to=200310082#200310082>

29 messages 2003/10/09
[#38490] Re: exit status on exit! — Koji Arai <JCA02266@...> 2003/10/09

新井です。

[#38503] Re: exit status on exit! — YANAGAWA Kazuhisa <kjana@...4lab.to> 2003/10/10

In Message-Id: <20031010.082218.74733862.JCA02266@nifty.ne.jp>

[#38505] Re: exit status on exit! — Koji Arai <JCA02266@...> 2003/10/10

新井です。

[#38507] Re: exit status on exit! — matz@... (Yukihiro Matsumoto) 2003/10/11

まつもと ゆきひろです

[#38514] Re: exit status on exit! — YANAGAWA Kazuhisa <kjana@...4lab.to> 2003/10/11

In Message-Id: <1065883639.405037.23137.nullmailer@picachu.netlab.jp>

[#38515] Re: exit status on exit! — WATANABE Hirofumi <eban@...> 2003/10/11

わたなべです。

[ruby-list:38456] Re: whenの評価の順序

From: nobu.nakada@...
Date: 2003-10-03 04:35:50 UTC
List: ruby-list #38456
なかだです。

At Fri, 26 Sep 2003 13:16:59 +0900,
Nobuyoshi-Nakada wrote:
> *listも逆転します。
> 
> $ ./ruby -ve 'def m(*args) end; m((p 0), (p 1), *(p 2), &(p 3))'
> ruby 1.8.0 (2003-09-25) [i686-linux]
> 3
> 2
> 0
> 1

これもMATCH2と同じく、逆転ではなくて不定でした。

> あと、/#{p 1;"a"}/ =~ (p 2) のような左辺が動的なRegexpのマッチ
> は、評価順序が不定です。

この二つはこれでいいと思います。


Index: eval.c
===================================================================
RCS file: /cvs/ruby/src/ruby/eval.c,v
retrieving revision 1.546
diff -u -2 -p -r1.546 eval.c
--- eval.c	2 Oct 2003 08:24:45 -0000	1.546
+++ eval.c	3 Oct 2003 04:27:39 -0000
@@ -2478,6 +2478,9 @@ rb_eval(self, n)
 	/* nodes for speed-up(literal match) */
       case NODE_MATCH2:
-	result = rb_reg_match(rb_eval(self,node->nd_recv),
-			      rb_eval(self,node->nd_value));
+	{
+	    VALUE l = rb_eval(self,node->nd_recv);
+	    VALUE r = rb_eval(self,node->nd_value);
+	    result = rb_reg_match(l, r);
+	}
 	break;
 
@@ -2930,11 +2933,17 @@ rb_eval(self, n)
 
       case NODE_ARGSCAT:
-	result = rb_ary_concat(rb_eval(self, node->nd_head),
-			       splat_value(rb_eval(self, node->nd_body)));
+	{
+	    VALUE args = rb_eval(self, node->nd_head);
+	    result = rb_ary_concat(args,
+				   splat_value(rb_eval(self, node->nd_body)));
+	}
 	break;
 
       case NODE_ARGSPUSH:
-	result = rb_ary_push(rb_ary_dup(rb_eval(self, node->nd_head)),
-			     rb_eval(self, node->nd_body));
+	{
+	    VALUE args = rb_ary_dup(rb_eval(self, node->nd_head));
+	    result = rb_ary_push(args,
+				 rb_eval(self, node->nd_body));
+	}
 	break;
 


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

In This Thread