Shiro Kawai
shiro****@lava*****
2004年 2月 20日 (金) 22:01:48 JST
From: HIRAUCHI Hideyuki <hira****@verys*****> Subject: [Gauche-devel-jp] Re: port-current-lineについて Date: Fri, 20 Feb 2004 21:45:56 +0900 > ああ、このマクロを無しにして、関数にinlineつけるっていう風にしたい。 > それにinline化すると、下の4つの関数が簡単に作れるんですよね。 [...] > >Javaのポートは設計としては綺麗だと思いますが、 > >コンパイラがインライン展開しまくらない限り、 > >性能を出すのが難しそうだなと思いました。 > そうなんですよね。 > やっぱりコードサイズの肥大化を懸念してます?コンパイラ依存の問題とか? いえ、コードサイズよりは性能重視です。 その上でコードが綺麗になるなら言うこと無しです。 現在のport関連で何とかしたいと思っているのは、その複雑さもさることながら、 MT-safenessと性能の両立です。できればwith-port-lockingなんて無くして、 何も考えずにportを使っても問題にならないくらい軽くしたいのです。 (現状では、1文字づつ読み書きしたりすると、with-port-lockingの有無で 2〜3倍の差が出ます。) ネックは、port処理中にエラーが発生した場合に必ずportのロックが consistentになることを保証しなければならないってところです。 そのために、今はエラーを投げる可能性のある部分を全てPORT_SAFE_CALLで 覆っているので、単純に関数の中身だけinlineで括り出すことが難しくなっています。 今のコードは自分でも満足していないので、なんかうまい解決法があればぜひ 採り入れたいです。 --shiro