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もまだちょっと不安が残りますし。 どこかに需要があるようなら早めに入れますが… -- 木村 冬樹