他の名前を付けられたメソッドは、再定義しても文句言われないらしい。"foofoo"うーん・・・。して残すって感じがする。挙動の意味がわからない。マシンの通販してるマシンを、生協で注文できるらしい。生協で受け取り、なら送料も要らないらしい。円って、ちょっと高いと思っていたので。生協割引は、さすがになさそう。メソッドディスパッチ時にメソッドのインライニングを行うことで、性能を上げる、などを考えているらしい。一緒で、パラメータの型ごとに、(インライン化した)メソッドを作っておき、そいつにディスパッチする、ということなんだろう(対象のメソッドがなければ、その場で(!)作る。変わらないものなので、作成のコストはあまりかからない)。ディスパッチにコストをかけて、通常実行は型付でコンパイルされたものが走る、というわけだ。これはこれで、いいのかもしれない。メソッドディスパッチしないものの場合は有効だと思う。この解析を動的にきちんとできれば、全部インライン展開できそう。本質的にできるんだろうか。すべてのメソッドの返り値の判定を行わなければならないし、色々ありそう。できるところだけ、インライン化、はありだと思うんだけど、そうすると、うまくいかないとメソッドディスパッチのコストが非常に高いことから、逆に性能が出ない可能性がある。endendなんていう(駄目な)プログラムがあったとき、破綻しそう。メソッドには、返り値(のクラス)を知る方法がないので、色々と破綻しそう。本当にできるんだろうか。私も、できればソフトタイピングくらいはサポートしたいとは思ってるんだけど。作れば需要は多いと思うんだけど、どうなのかなー。リテラルが簡単にかけて、ブロックが簡単に書けたりするってのは、楽でいいと思うんだな。型付けはオプションかなー。型も指定できる、くらいで(指定すれば、それに伴う最適化を行うことができる、とか)。あと、定数検索パスを制限して、こいつも再定義できないような。再定義するときは、メソッド全部再コンパイルしてもいいような気がしてきたなー。オブジェクトスペースから全部見て、再定義とか。してしまうのがいいような気がしてきたなぁ。あればいいんだろうか。インライン化したものを色々キャッシュしといて、ヒットすればそいつを使う、みたいな。なければあっさりあきらめるなり、なんなり・・・。決まるので、パラメータを見る必要はないのか。なんとなくうまい気がしてきた。何をどうやってキャッシュすればいいんだろう。invokedこんな感じ。くれた仮想コードは、見てもさっぱりわからない。誰か、あれわかりやすく解読してくれないかなぁ・・・。