[Gauche-devel-jp] Re: send/recv

Back to archive index

Kimura Fuyuki fuyuk****@nigre*****
2003年 12月 10日 (水) 12:40:52 JST


At Tue, 09 Dec 2003 16:45:05 -1000 (HST),
Shiro Kawai <shiro****@lava*****> wrote:
> 
> 要望はずいぶん前からあったんですが、なぜ実装されていなかった
> かとういうと、バッファをうまく扱う統一的な方法が欲しいと
> 思っていたからです。送る方はともかく、受ける方は用途によっては
> callerがあらかじめu8vectorかなんかでバッファを取っておきたい
> ということがあるでしょう。
> 現状だとそれを実装しようとするとgauche.netがgauche.uvector
> に依存してしまって、ちと面倒くさい。

はい、それで手を抜いてバイトストリングにしてしまいました。;)

> (recvfromはいずれ値を受けるためのsockaddrも渡せるようにしたいかな…
> あんまりSchemeっぽくは無いんですが、タイトなループの中では
> 「GCをトリガしないように書く」ということが必要になる場合があるので)

ああ、やっぱり…

このへんの感覚が私にはよくわかっていないんですよね。オブジェクト生成の
コストはどのくらい高くつくのか、とか。引数に戻り値を突っ込むのはどの程
度Schemeで許容されるか、とか。

> あと、私の好みでは、Scm_MakeSockAddr2を作るよりはScm_MakeSockAddrで
> 第一引数にNULLを渡したらstruct sockaddrを見てクラスを選ぶように
> する、みたいな方がいいですね。

なるほど、その手がありましたね。ここもどうしたらいいか迷ったところでし
た。てことで、修正。

http://www.nigredo.org/fuyuki/sendrecv.patch

> テストケースも書けますか? テストがあればcheckinしてもらって構いません。

私が今すぐ必要としているわけではないので、0.7.3が出てからにしようかと
思っていました。APIもまだちょっと不安が残りますし。

どこかに需要があるようなら早めに入れますが…

-- 
木村 冬樹



Gauche-devel-jp メーリングリストの案内
Back to archive index