[#9642] Re: host.conf は参照しないの? — akira yamada / やまだあきら <akira@...>

15 messages 2000/05/09

[#9672] IO.popen — Koji Arai <JCA02266@...>

新井です。

22 messages 2000/05/13
[#9673] Re: IO.popen — Koji Arai <JCA02266@...> 2000/05/13

新井です。

[#9682] Re: IO.popen — matz@... (Yukihiro Matsumoto) 2000/05/14

まつもと ゆきひろです

[#9676] support mingw32 — WATANABE Hirofumi <eban@...>

わたなべです.

32 messages 2000/05/13
[#9678] Re: support mingw32 — Masaki Suketa <CQN02273@...> 2000/05/14

助田です.

[#9680] Re: support mingw32 — WATANABE Hirofumi <eban@...> 2000/05/14

わたなべです.

[#9686] Re: support mingw32 — Katsuyuki Komatsu <komatsu@...> 2000/05/15

小松です。

[#9687] Re: support mingw32 — WATANABE Hirofumi <Hirofumi.Watanabe@...> 2000/05/15

わたなべです.

[#9806] rescue variable syntax — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

40 messages 2000/05/24
[#9811] Re: rescue variable syntax — ARIMA Yasuhiro <fit0298@...> 2000/05/24

有馬です。

[#9814] Re: rescue variable syntax — matz@... (Yukihiro Matsumoto) 2000/05/24

まつもと ゆきひろです

[#9821] Re: rescue variable syntax — nobu.nakada@... 2000/05/25

なかだです。

[#9823] Re: rescue variable syntax — ARIMA Yasuhiro <fit0298@...> 2000/05/25

有馬です。

[#9833] Re: rescue variable syntax — matz@... (Yukihiro Matsumoto) 2000/05/25

まつもと ゆきひろです

[#9861] Re: rescue variable syntax — gotoken@... (GOTO Kentaro) 2000/05/25

ごとけんです

[#9866] Re: rescue variable syntax — matz@... (Yukihiro Matsumoto) 2000/05/25

まつもと ゆきひろです

[#9870] Re: rescue variable syntax — nagai@... 2000/05/26

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

[#9873] Re: rescue variable syntax — matz@... (Yukihiro Matsumoto) 2000/05/27

まつもと ゆきひろです

[#9812] Forward: Error in NT makefile (PR#7) — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

21 messages 2000/05/24
[#9820] Re: Forward: Error in NT makefile (PR#7) — Katsuyuki Komatsu <komatsu@...> 2000/05/25

小松です。

[#9842] Re: Forward: Error in NT makefile (PR#7) — WATANABE Hirofumi <Hirofumi.Watanabe@...> 2000/05/25

わたなべです.

[#9855] Re: Forward: Error in NT makefile (PR#7) — Katsuyuki Komatsu <komatsu@...> 2000/05/25

小松です。

[#9879] Re: Forward: Error in NT makefile (PR#7) — WATANABE Hirofumi <eban@...> 2000/05/28

わたなべです.

[#9857] $0 handling on NT — Katsuyuki Komatsu <komatsu@...>

小松です。

18 messages 2000/05/25
[#9869] Re: $0 handling on NT — nobu.nakada@... 2000/05/26

なかだです。

[ruby-dev:9631] Re: callargs([nil])

From: nobu.nakada@...
Date: 2000-05-07 03:12:57 UTC
List: ruby-dev #9631
なかだです。

  話が右往左往してすいませんが。

At Fri, 5 May 2000 09:15:39 +0900,
Nobuyoshi-Nakada wrote:
> >   x には nil が渡って欲しいんですが、エラーになります。とりあえ
> > ず ad hoc にいじってみましたが、どうしたもんだか。
> 
>   見事にダメダメっす(;_;)。こんなんなっちゃう。
> 
> $ ~/src/ruby/current/miniruby -e 'p proc{|x|x}.call(*[nil])' 
> [nil]
> 
>   それよりそもそも * つけなきゃなんも問題ないっすね。Proc#call
> は Array をとれるし、というかそのための callargs() のような。

  やっぱりうまくないです。Proc#call に Array 1個を渡したとき
の解釈として、

(a) array は引数の配列
(b) array は単独の引数

の2種類ありますが、(1)のときだけ(b)と解釈されますが、それ以外
は(a)と見なされます。(a)と解釈して欲しいときには(1'),(2') など
とする必要があります。

(1)  proc{|x|}.call(array)	-> (b)
(2)  proc{|x,|}.call(array)	-> (a)
(3)  proc{|x,*y|}.call(array)	-> (a)
(1') proc{|x|}.call(*array)	-> (a)
(2') proc{|x,|}.call(*array)	-> (a)
(3') proc{|x,*y|}.call(*array)	-> (a)

  ほとんどの場合はこれでうまくいくのですが、array == [nil] のと
きだけは *[nil] -> nil -> [] と変換されて引数なしと見なされてし
まいます。

  Proc#call 以外の場合に付いては妥当に解釈されるのですが。

p([nil])  -> [nil]
p(*nil)   -> 
p(*[nil]) -> nil

  悩んだのですが、結局あまりうまい手は思い付きませんでした。


--- eval.c	2000/05/04 17:44:06 	1.41
+++ eval.c	2000/05/05 00:01:38
@@ -5783,6 +5783,7 @@ blk_orphan(data)
 
 static VALUE
-callargs(args)
+callargs(args, var)
     VALUE args;
+    NODE *var;
 {
     switch (RARRAY(args)->len) {
@@ -5791,4 +5792,7 @@ callargs(args)
 	break;
       case 1:
+	if (var && nd_type(var) == NODE_MASGN) {
+	    return args;
+	}
 	return RARRAY(args)->ptr[0];
       default:
@@ -5820,5 +5824,5 @@ proc_call(proc, args)
 
     if (TYPE(args) == T_ARRAY) {
-	args = callargs(args);
+	args = callargs(args, data->var);
     }
 
@@ -7384,5 +7388,5 @@ rb_thread_yield(arg, th) 
 {
     scope_dup(ruby_block->scope);
-    return rb_yield_0(callargs(arg), 0, 0, Qfalse);
+    return rb_yield_0(callargs(arg, 0), 0, 0, Qfalse);
 }
 


-- 
そうだ 強気に ちょっと インチキに☆彡
    中田 "Bugるくらいがちょうどいいかも;-)" 伸悦

In This Thread