yarv-dev:1167
From: "miura" <m-72 tf6.so-net.ne.jp>
Date: Sat, 8 Mar 2008 00:09:24 +0900
Subject: [yarv-dev:1167] Re: 明日発表
三浦です > やはり、わかりやすい内容なので、色々とつっこみを頂きました。そうい > えば、渡部先生にもご挨拶いたしました。 あのメンバーによる突っ込みってのはどういうものかすごく興味がありま す。渡部先生には長らくお会いしていないですね。 > 命令オペランドに関数ポインタを渡して、それで対処するのはどうだろう > な、と思っていました。 > > INSN opt_func(func) { > ... > (*func)(recv, arg); > ... > } > > 関数ポインタ func を呼び出し、その中で型チェックを行い、期待したも > のではなかったら func に 別の関数ポインタを代入する感じです。 > なるほど、こうすれば命令も増やさず、しかももっと細かく条件分けが 出来ますね。こちらの方がエレガントだと思います。 ふと思ったのですが、特化命令だけではなく他の命令も全部関数ポインタ にしてしまうのはどうなんでしょうか?バイトコードの代わりに、Forthの様に 関数ポインタが並ぶわけです。 > これだと、他の特化命令も減るのでだいぶシンプルになります。ただし、 > C 関数呼び出しのオーバヘッドが入るので、どうなるかはよくわかりません。 > > これは前から暖めていたアイデア(一度、ruby-core に投げたことがある > が誰も取り合ってくれなかった)なのですが、今回 Float のチェックで問 > 題が顕著化したので、やらないとなー、と。 > Cの関数呼び出しのオーバヘッドって結構でかいような気がしますが、 私のパフォーマンスに関する感覚って間違えていることが多いので、 どのくらいのオーバヘッドか興味があります。 > 利点: > 特化命令が一般化できる。たとえば、拡張ライブラリ側から特化命令に対 > するアプローチできる。つまり、私が知らない命令を作ることができる。 > 拡張ライブラリから特化命令にアプローチするってのは、面白そうで危険な香り がしていいですね。 > PIC の弱い版と言うこともできるのかなぁ。違う気がするな。 > ここでいうPICはなんでしょうか?Position Independ Code ? -- ML: yarv-dev quickml.atdot.net Info: http://www.atdot.net/~ko1/quickml/
1156 2008-03-04 22:53 [ko1 atdot.net ] 明日発表 1157 2008-03-05 00:49 ┣[shiba mail2.accsnet.] 1158 2008-03-05 01:20 ┃┣[ko1 atdot.net ] 1161 2008-03-05 01:42 ┃┃┗[shiba mail2.accsnet.] 1159 2008-03-05 01:26 ┃┗[shiba mail2.accsnet.] 1160 2008-03-05 01:26 ┃ ┗[ko1 atdot.net ] 1162 2008-03-05 01:49 ┃ ┗[shiba mail2.accsnet.] 1163 2008-03-05 01:51 ┃ ┗[ko1 atdot.net ] 1164 2008-03-05 01:55 ┃ ┗[shiba mail2.accsnet.] 1165 2008-03-07 18:00 ┣[m-72 tf6.so-net.ne.j] 1166 2008-03-07 21:00 ┃┗[ko1 atdot.net ] -> 1167 2008-03-08 00:09 ┃ ┗[m-72 tf6.so-net.ne.j] 1168 2008-03-08 16:18 ┃ ┗[ko1 atdot.net ] 1169 2008-03-10 18:59 ┃ ┗[m-72 tf6.so-net.ne.j] 1172 2008-03-13 22:07 ┃ ┗[ko1 atdot.net ] 1170 2008-03-11 10:18 ┗[horinout rish.kyoto-] 1171 2008-03-12 01:21 ┣[2008 shudo.net ] 1174 2008-03-13 22:13 ┃┗[ko1 atdot.net ] 1173 2008-03-13 22:12 ┗[ko1 atdot.net ] 1176 2008-03-14 12:30 ┗[horinout rish.kyoto-] 1177 2008-03-14 23:26 ┗[ko1 atdot.net ]