[#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:9634] Re: callargs([nil])

From: matz@... (Yukihiro Matsumoto)
Date: 2000-05-08 04:45:30 UTC
List: ruby-dev #9634
まつもと ゆきひろです

In message "[ruby-dev:9631] Re: callargs([nil])"
    on 00/05/07, nobu.nakada@nifty.ne.jp <nobu.nakada@nifty.ne.jp> writes:

|  やっぱりうまくないです。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 -> [] と変換されて引数なしと見なされてし
|まいます。

これは分かりました。で、いろいろ考えるに massign() で nil を
空配列に変換している部分がマズかろうという結論に達しました。
過去との互換性もあるので、callでの代入ときだけ空配列に変換し
ないようにしてみました。あるいはそもそも  nil -> [] の変換は
不要かもしれません。が、要検証。

パッチはこんな感じです。

diff -u -1 -r1.41 eval.c
--- eval.c	2000/05/01 09:41:14	1.41
+++ eval.c	2000/05/08 04:44:58
@@ -3439,3 +3439,3 @@
     if (TYPE(val) != T_ARRAY) {
-	if (NIL_P(val))
+	if (!check && NIL_P(val))
 	    val = rb_ary_new2(0);

In This Thread