D言語のStreamについての議論

D言語でのStreamが迷走している様子です。
2
前へ 1 2 3 ・・ 10 次へ
@mono_shoo

ダックタイピングでも継承でもいいけど、単純化できることが重要。ソースコードが最強のドキュメントなら、そのドキュメントを理解しやすいように単純に記述できることは重要。

2010-07-04 11:59:08
@mono_shoo

streamは、ファイルとかメモリとかソケットとかそう言う、バイナリデータで入出力するデバイスを統一的に扱うためのインターフェースで、実際使うのはbyLineとかで提供されるRangeになるのかな。

2010-07-04 13:50:51
@satoru_h

streamからrangeが取れると便利な場面は多いだろうけど,stream.read/writeは呼びたいよね.だから,streamと言う抽象レイヤー作りたい.と言う話だと思う.なので,Rangeで困る部分を具体例バンバンあげていくのがいいかなぁと.

2010-07-04 13:55:45
@satoru_h

rangeで十分ならファイルとかメモリとかソケットとかがrange返せばそれでいいと思うんだ.それか,streamをはさめばrangeを提供する手間が減るよーってのもありかな。range実装のコスト>stream実装のコストとして.

2010-07-04 13:57:16
@mono_shoo

@satoru_h あれ以上はつくっていませんよ。 Range対応のOutBufferなら作ったけど。

2010-07-04 14:09:43
@satoru_h

そーいや,SHOOさんのRange対応OutBufferってどんなだろう.僕もasOutputRange(Stream)(Stream)作ったけどそんなもんだろうか.

2010-07-04 17:50:32
@satoru_h

すげー想像で問題だと思われてそうなところをリストアップしてそれの改善案.と言う形で考えているからなぁ.

2010-07-04 18:11:54
@mono_shoo

明日の朝…シアトル的な意味か?

2010-07-04 18:17:39
@satoru_h

明日返事するよ!by Andrei。って感じ?

2010-07-04 18:17:45
@mono_shoo

ここで言う明日の朝ってのは、シアトル時間でSun, 04 Jul 2010の6:00AM以降とかそういう意味か? それともMon, 05 Jul 2010の6:00AM以降とかそういう意味か?

2010-07-04 18:23:03
@satoru_h

InputStreamはsize_t read(void[])だけ用意しておいて,read(ubyte),read(int)とかはread(void[])に変換するような何かがあればいいと思うのだけれど,OutputStreamはどうだろう.

2010-07-04 18:41:31
@satoru_h

OutputRangeのvoid put(E)(E e);ですべてできる気がする.

2010-07-04 18:41:43
@satoru_h

StreamWrapperは動的ダックタイピングの為.と言う事だったっけ?

2010-07-04 19:15:27
/dev/null @satoru_h

動的ダックタイピングでいいんだっけ?名称があやふや。

2010-07-04 19:15:50
はるえす@イカのフレンズ @Rayerd

ですかね.それならmainのサンプルはもっとシンプルにできるわけですね.wrapとか使わなくても RT @satoru_h: StreamWrapperは動的ダックタイピングの為.と言う事だったっけ?

2010-07-04 19:17:32
はるえす@イカのフレンズ @Rayerd

した方がいいという話ではなくて.RT @Rayerd: ですかね.それならmainのサンプルはもっとシンプルにできるわけですね.wrapとか使わなくても RT @satoru_h: StreamWrapperは動的ダックタイピングの為.と言う事だったっけ?

2010-07-04 19:20:10
SHOO @mono_shoo

言えない…今更例の main 関数の中身は適当に動作チェックするために作っただけのサンプルでも何でもないテストコードだったなんて…言えない…

2010-07-04 19:20:41
はるえす@イカのフレンズ @Rayerd

@satoru_h Fileを読み込んでconsole出力するのはもっとシンプルに書きたいなあと思ったのでauto fs=FileStream(""); foreach(line; byLine(fs))writeln(line);と書いてもいい(ここで中断

2010-07-04 19:23:05
/dev/null @satoru_h

あぁ.なる.InputInterface[] interfaces; interfases ~= wrap(FileStream(""));とか書かないと,wrapの意味が見えにくいんですねー

2010-07-04 19:24:34
はるえす@イカのフレンズ @Rayerd

@mono_shoo 各クラスを使うサンプルが欲しいので書き書きなう

2010-07-04 19:29:43
はるえす@イカのフレンズ @Rayerd

@mono_shoo read(dst)とwrite(src)はread(src)とwrite(dst)じゃないですか?あとread(ubyte[])/write(in ubyte[])はread(in ubyte[])/write(ubyte[])では?

2010-07-04 19:48:23
前へ 1 2 3 ・・ 10 次へ