[#9627] callargs([nil]) — nobu.nakada@...
なかだです。
8 messages
2000/05/04
[#9642] Re: host.conf は参照しないの? — akira yamada / やまだあきら <akira@...>
15 messages
2000/05/09
[#9643] Thread schedule problem of 1.5.3 (2000-05-09) — Katsuyuki Komatsu <komatsu@...>
小松です。
4 messages
2000/05/09
[#9652] 1.5.3 cleanup — Katsuyuki Komatsu <komatsu@...>
小松です。
13 messages
2000/05/11
[#9653] Re: 1.5.3 cleanup
— matz@... (Yukihiro Matsumoto)
2000/05/11
まつもと ゆきひろです
[#9654] Re: 1.5.3 cleanup
— WATANABE Hirofumi <Hirofumi.Watanabe@...>
2000/05/11
わたなべです.
[#9660] [PATCH] md5 fix for alpha — Katsuyuki Komatsu <komatsu@...>
小松です。
5 messages
2000/05/11
[#9671] busy loop in `waitpid' — nobu.nakada@...
なかだです。
9 messages
2000/05/13
[#9684] Re: busy loop in `waitpid'
— matz@... (Yukihiro Matsumoto)
2000/05/14
まつもと ゆきひろです
[#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
まつもと ゆきひろです
[#9685] Re: IO.popen
— Koji Arai <JCA02266@...>
2000/05/14
新井です。
[#9696] Re: IO.popen
— matz@... (Yukihiro Matsumoto)
2000/05/15
まつもと ゆきひろです
[#9676] support mingw32 — WATANABE Hirofumi <eban@...>
わたなべです.
32 messages
2000/05/13
[#9701] Re: support mingw32
— Katsuyuki Komatsu <komatsu@...>
2000/05/16
小松です。
[#9705] Re: support mingw32
— WATANABE Hirofumi <Hirofumi.Watanabe@...>
2000/05/16
わたなべです.
[#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
わたなべです.
[#9713] Re: support mingw32
— Katsuyuki Komatsu <komatsu@...>
2000/05/16
小松です。
[#9689] Re: support mingw32
— matz@... (Yukihiro Matsumoto)
2000/05/15
まつもと ゆきひろです
[#9690] Re: support mingw32
— WATANABE Hirofumi <Hirofumi.Watanabe@...>
2000/05/15
わたなべです.
[#9725] SEGV on thread and socket — WATANABE Hirofumi <Hirofumi.Watanabe@...>
わたなべです.
11 messages
2000/05/17
[#9731] Re: SEGV on thread and socket
— matz@... (Yukihiro Matsumoto)
2000/05/17
まつもと ゆきひろです
[#9732] Re: SEGV on thread and socket
— WATANABE Hirofumi <Hirofumi.Watanabe@...>
2000/05/17
わたなべです.
[#9756] deadlock detection problem — Katsuyuki Komatsu <komatsu@...>
小松です。
5 messages
2000/05/18
[#9760] date2.rb and cal.rb — Tadayoshi Funaba <tadf@...>
ふなばです。
8 messages
2000/05/18
[#9761] IRIX 6.5 cc -64 support — Katsuyuki Komatsu <komatsu@...>
小松です。
9 messages
2000/05/19
[#9766] Re: IRIX 6.5 cc -64 support
— matz@... (Yukihiro Matsumoto)
2000/05/19
まつもと ゆきひろです
[#9780] No such file to load -- CWD's script — WATANABE Hirofumi <eban@...>
わたなべです.
5 messages
2000/05/20
[#9806] rescue variable syntax — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
40 messages
2000/05/24
[#9808] Re: rescue variable syntax
— OZAWA Sakuro <crouton@...>
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
まつもと ゆきひろです
[#9874] Re: rescue variable syntax
— nagai@...
2000/05/27
永井@知能.九工大です.
[#9883] Re: rescue variable syntax
— matz@... (Yukihiro Matsumoto)
2000/05/28
まつもと ゆきひろです
[#9884] Re: rescue variable syntax
— ARIMA Yasuhiro <fit0298@...>
2000/05/28
有馬です。
[#9888] Re: rescue variable syntax
— matz@... (Yukihiro Matsumoto)
2000/05/29
まつもと ゆきひろです
[#9968] 例外補足 ( Re: rescue variable syntax
— ARIMA Yasuhiro <fit0298@...>
2000/06/06
有馬です。
[#9969] Re: 例外補足 ( Re: rescue variable syntax
— matz@... (Yukihiro Matsumoto)
2000/06/06
まつもと ゆきひろです
[#9970] Re: 例外補足 ( Re: rescue variable syntax
— WATANABE Hirofumi <Hirofumi.Watanabe@...>
2000/06/06
わたなべです.
[#9812] Forward: Error in NT makefile (PR#7) — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
21 messages
2000/05/24
[#9817] Re: Forward: Error in NT makefile (PR#7)
— KIMURA Koichi <kimura@...>
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
わたなべです.
[#9882] Re: Forward: Error in NT makefile (PR#7)
— WATANABE Hirofumi <eban@...>
2000/05/28
わたなべです.
[#9900] Re: Forward: Error in NT makefile (PR#7)
— Katsuyuki Komatsu <komatsu@...>
2000/05/29
小松です。
[#9921] Re: Forward: Error in NT makefile (PR#7)
— Katsuyuki Komatsu <komatsu@...>
2000/05/31
小松です。
[#9922] Re: Forward: Error in NT makefile (PR#7)
— WATANABE Hirofumi <Hirofumi.Watanabe@...>
2000/05/31
わたなべです.
[#9938] Re: Forward: Error in NT makefile (PR#7)
— WATANABE Hirofumi <Hirofumi.Watanabe@...>
2000/06/01
わたなべです.
[#9941] Re: Forward: Error in NT makefile (PR#7)
— Katsuyuki Komatsu <komatsu@...>
2000/06/01
小松です。
[#9947] Re: Forward: Error in NT makefile (PR#7)
— matz@... (Yukihiro Matsumoto)
2000/06/01
まつもと ゆきひろです
[#9824] [BUG?] regex/scan — WATANABE Tetsuya <tetsu@...>
渡辺哲也です。
6 messages
2000/05/25
[#9841] timeout.rb — Wakou Aoyama <wakou@...>
青山です。
14 messages
2000/05/25
[#9844] Re: timeout.rb
— matz@... (Yukihiro Matsumoto)
2000/05/25
まつもと ゆきひろです
[#9846] Re: timeout.rb
— Wakou Aoyama <wakou@...>
2000/05/25
青山です。
[#9848] Re: timeout.rb
— Wakou Aoyama <wakou@...>
2000/05/25
青山です。
[#9857] $0 handling on NT — Katsuyuki Komatsu <komatsu@...>
小松です。
18 messages
2000/05/25
[#9869] Re: $0 handling on NT
— nobu.nakada@...
2000/05/26
なかだです。
[#9880] Re: $0 handling on NT
— WATANABE Hirofumi <eban@...>
2000/05/28
わたなべです.
[#9887] Re: $0 handling on NT
— nobu.nakada@...
2000/05/29
なかだです。
[#9890] Re: $0 handling on NT
— WATANABE Hirofumi <Hirofumi.Watanabe@...>
2000/05/29
わたなべです.
[#9925] — Shin-ichiro Hara <sinara@...>
原です。
8 messages
2000/05/31
[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るくらいがちょうどいいかも;-)" 伸悦