[#7300] resolver を呼ばない UDPsocket#recvfrom — Toshihiko SHIMOKAWA / 下川俊彦 <toshi@...>

あんまり ruby-dev な話でも無いのですが、ちょっとした機能拡張の提案なので、

12 messages 1999/07/12
[#7321] Re: resolver を呼ばない UDPsocket#recvfrom — Toshihiko SHIMOKAWA / 下川俊彦 <toshi@...> 1999/07/15

From: Toshihiko SHIMOKAWA / 下川俊彦 <toshi@csce.kyushu-u.ac.jp>

[#7313] Ruby 1.3.5 — Yukihiro Matsumoto <matz@...>

Ruby 1.3.5 is out, check out:

59 messages 1999/07/15
[#7318] Re: Ruby 1.3.5 — WATANABE Hirofumi <watanabe@...> 1999/07/15

わたなべです.

[#7326] Re: Ruby 1.3.5 — Wakou Aoyama <wakou@...> 1999/07/15

青山です。

[#7331] Re: Ruby 1.3.5 — matz@... (Yukihiro Matsumoto) 1999/07/16

まつもと ゆきひろです

[#7340] Re: Ruby 1.3.5 — Wakou Aoyama <wakou@...> 1999/07/16

青山です。

[#7368] Re: Ruby 1.3.5 — matz@... (Yukihiro Matsumoto) 1999/07/19

まつもと ゆきひろです

[#7373] Re: Ruby 1.3.5 — Shin-ichiro Hara <sinara@...> 1999/07/19

原です。

[#7374] Re: Ruby 1.3.5 — matz@... (Yukihiro Matsumoto) 1999/07/19

まつもと ゆきひろです

[#7382] Re: Ruby 1.3.5 — Wakou Aoyama <wakou@...> 1999/07/19

青山です。

[#7386] Re: Ruby 1.3.5 — matz@... (Yukihiro Matsumoto) 1999/07/21

まつもと ゆきひろです

[#7388] Re: Ruby 1.3.5 — Wakou Aoyama <wakou@...> 1999/07/21

青山です。

[#7387] [PATCH]extconf.rb, tcltklib.c, and rubytest.rb for NetBSD — Ryo HAYASAKA <hayasaka@...21.u-aizu.ac.jp>

早坂@会津大学です。

10 messages 1999/07/21

[#7466] [PATCH] for djgpp — WATANABE Hirofumi <watanabe@...>

わたなべです.

21 messages 1999/07/29
[#7467] Re: [PATCH] for djgpp — Katsuyuki Komatsu <komatsu@...> 1999/07/29

小松です。

[ruby-dev:7364] Re: Ruby 1.3.5

From: Wakou Aoyama <wakou@...>
Date: 1999-07-18 16:44:10 UTC
List: ruby-dev #7364
青山です。

Mon, Jul 19, 1999 at 12:30:08AM +0900 において
Shin-ichiro HARA さん曰く:

> これでいいのだと思います。

「(1バイトも読み込めなかった場合)」は、現在の実装についてのメモみたい
なものでしたから、ここは削除ですね。

という事で、read についてはあのような感じでのドキュメント変更でいかが
でしょうか>まつもとさん

> ああ、これが現状なんですね!これを 2, "" と返すべきだというのが (3) 案だった
> のでしょうか?そうだとすればこれは納得できます。read(0) については
> 
> (a) 常に nil を返す
> (b) EOF で nil を返す。そうでなければ "" を返す
> (c) 常に "" を返す
> (d) パラメータが範囲外だとして例外をあげる
> 
> というのが考えられるけれども、現状は (a) なんですね。私は正のバイト数を
> 読むのが read(byte) の本来の仕事であると思うので、read(0) は適当でいい
> 思います。どれがいいのかなあ。(3) 案とは(b)の事ですか?

そうなんです。現状が (a) だったんですよ。そして、この挙動は 0 < length
の場合の挙動(のドキュメント)と矛盾があるので、(b) に相当する案を出した
のが [ruby-dev:7340] です。

この [ruby-dev:7340] の最後に書いているように、(eof? の実装が、1文字
読み込みで判定を行ってる事から、)ファイルサイズが 0 の場合の判定が難し
そうだったので(きっと、ファイル以外の場合は IO#stat.size が利用できな
い可能性もあるからでしょう)、(c) に相当する案を出したのが
[ruby-dev:7355] で、これは (3) 案と同じです。

しかし、(c) 案は妥協案でしかなく、やはりあまり良くは無いと思われる案な
ので、できれば (b) が嬉しいと思っていました。

ですが、例外という手がありましたか。なるほど。これは忘れていました。
(b) が危険なようであれば、(d) が良さそうですね。

(b) 案はこうですよね。
io.read(0)  # if io.pos == io.stat.size  # ==> nil
io.read(0)  # if io.pos != io.stat.size  # ==> ""


-- 
青山 和光 Wakou Aoyama <wakou@fsinet.or.jp>

In This Thread