#既に負の0.0は内部表現として持っていたし、doubleの計算はlibcがよろしくやってくれてるから、陽に0.0と比較して何かやってるところだけ直せば負の0.0のサポートはいけそうだな。
#http-get を繰り返し実行すると 1022 回目でエラーになるようです。
#こんなコードで確認しました。
#(use rfc.http)
(do ((i 0 (+ i 1)))
(#f)
(http-get "localhost" "/")
(display i)
(newline)
)
#エラー内容はこんなのです。
#*** ERROR: attempt to obtain an input port from unconnected or closed socket: #<
socket (connect "127.0.0.1:80")>
Stack Trace:
_______________________________________
0 (socket-input-port (~ conn 'socket))
At line 617 of "c:\\gauche\\share\\gauche-0.9\\0.9.4_pre3\\lib/rfc/http.
scm"
1 (with-error-handler (lambda (e) (let ((e e)) (%guard-rec e e (else ...
[unknown location]
2 (request-response method conn host request-uri sender receiver `(: ...
At line 244 of "c:\\gauche\\share\\gauche-0.9\\0.9.4_pre3\\lib/rfc/http.
scm"
3 (http-get "localhost" "/")
At line 6 of "C:\\Users\\saito\\Documents\\test.scm"
#1021 回までは成功するわけで、これに標準入力標準/出力標準/エラー出力の分のみっつを足すとちょうど1024になるところから、何かハンドルを握ったままになっててそれ以上を作れなくなってるのではないかと想像してます。
#ちなみに環境は Windows7 で、 Gauche のバージョンは git head をビルドして使ってます。
#むむ、いかにもそれっぽいですね。Linuxだと無制限に走るようなのでWindows特有の何かがリークしてるかな。
#C++のテンプレートクラスやJavaのGenericsのようなことをしたいのですが、これを行うには、metaclassなのだろうと思ったのですけれど、どうもうまくいきません。つまり、 https://gist.github.com/yamasushi/5563195 のようなコードを書いたのですが、これではうまくないみたいです。 #metaclassに型のパラメータを属性ともたせて、みたいな感じかと思ったのですが、どうも違うような気がしたのです。これはCLOSではどう書くのでしょうか?ググってみたのですが、ジェネリクスというとジェネリクス関数のほうにヒットしてしまって・・・・
##CLOSだとeqlスペシャライザが使えるのでいちいちメタクラス作らないでもメソッドが定義できますが。
#むむ、ソケットのfinalizerが呼ばれてないな。
#ありがとうございます。
#[Gauche-devel-jp] Re: class method
http://lists.sourceforge.jp/pipermail/gauche-devel-jp/2004-January/000514.html
「eql specializer相当のものを効率良く実装できるかも、という
方法」というのは実装済みなのでしょうか?
#まだしてません。さて、どんなアイディアだったっけ。