Shiro Kawai
shiro****@lava*****
2004年 9月 13日 (月) 19:22:27 JST
From: "Kogule, Ryo" <kogul****@opend*****> Subject: [Gauche-devel-jp] Re: gauche.termios の c_cc Date: Mon, 13 Sep 2004 11:45:21 +0900 > 手を付けた事でもあり,gauche.termios についてはもうちょっといじってみ > ます。下のような作業をやる予定で,まとまったらまたこちらに投げます。 よろしくお願いします。 > - *termios-{standard,available}-speeds* など環境確認用変数 > いじってると結構欲しくなるので。 > > - write-object > Debug に便利。 > > - copy-termios, list->termios など constructor > Copy constructor は必須。現在 sys-tcgetattr 以外に <sys-termios> > を作る方法がないので。list->termios は write-object と組合わせると > file などで <sys-termios> を持って廻る事が出来そうです。それがどう > 嬉しいかは謎ですけど。 現状でも、 (make <sys-termios>) で作ることができます。 もちろん、copy-termiosがあっても便利だと思います。他と名前の 一貫性を考えるとtermios-copyかな。Schemeレベルの定義でよいと思います。 (define (termios-copy src) (make <sys-termios> :iflag (ref src 'iflag) :oflag (ref src 'oflag) :cflag (ref src 'cflag) :lflag (ref src 'lflag) :cc (ref src 'cc))) ;; こういうオペレーションを考えると、ccスロットがベクタのコピーを返す ;; というセマンティクスはむしろ安全と言えるかもしれません。 list->termiosはあっても良いんですが、シリアライゼーションを考えるなら、 srfi-10 の read-constructor を定義しておく方が楽ではあります (readするだけで良いから)。但し、write-objectのデフォルトをsrfi-10形式に すると、ちょっとccフィールドがうるさい気もしますね。難しい。 ;; 本来なら、write-object自身も、コンテキストによって出力にバリエーション ;; を付けられるようなものにしたいのですが、仕様がまだ固まっていません。 --shiro