yarv-dev:93
From: SASADA Koichi <ko1 atdot.net>
Date: Tue, 22 Jun 2004 18:58:59 +0900
Subject: [yarv-dev:93] Re: AOT Compiler
MAEDA Atusi <maeda-yarv atusi.org> wrote :
[ [yarv-dev:92] Re: AOT Compiler ]
at 22 Jun 2004 13:12:46 +0900
> 普通のプログラムでも、
> xxx.rb より xxx.so が新しければ、xxx.so をロードして実行。
> そうでなければ xxx.so を作り直してロードして実行。
> でたいてい良くないですか?
はい.そういうのもありかと思います.
ただ,1ファイルでごちゃごちゃやってるときに,そのファイルの一部の
メソッドやクラスなどをコンパイル対象にしたとき,そのキャッシュはど
うなるかなぁと考えていました.
> Cでオブジェクトとかクロージャを表現する場合と同じような感じだと思いま
> すがねえ。環境とかコードへのポインタを含んだ構造体。コードには、その構
> 造体へのポインタ自身を引数として渡す(thisとかselfとか)。
>
> この構造体をヒープに割り付けない(autoとしてスタック内に割り付ける)とい
> う最適化もあり得ると思いますが、それはまあ、あとで考えれば良いんでは。
> mallocのかわりにallocaすれば良いだけですが。
>
> # む。またちょっとアイデアが浮かんだぞ。
> # GCCのnested functionみたいに「関数へのポインタ1個でクロージャを表現」
> # をポータブルに実現できるかも。
ええ,そうやってやれないことはないと思うんですが,
やっぱり1からデザインしないといけないなぁ,とか.
関数ポインタに親関数の関数フレームを渡して,
ってやったら過激すぎ.アーキテクチャというか,
コンパイラ依存になっちゃいますねえ.
あ,別に変数の配列にしておけば問題ないのか.
あ,クロージャ作るときに困る...全部コピー
するから,変わらないかなぁ.
やっぱりこういうのを考えるのは楽しいですねぇ.
もうMIPSアセンブラなんて見たくない.
--
// SASADA Koichi at atdot dot net
//
--
ML: yarv-dev quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml
85 2004-06-21 15:52 [ko1 atdot.net ] AOT Compiler 86 2004-06-21 17:13 ┗[shudo computer.org ] 87 2004-06-21 17:37 ┗[ko1 atdot.net ] 88 2004-06-21 18:58 ┗[maeda-yarv atusi.org] 89 2004-06-21 20:35 ┗[ko1 atdot.net ] 90 2004-06-21 21:51 ┗[(nil) ] 91 2004-06-22 01:58 ┗[ko1 atdot.net ] 92 2004-06-22 13:12 ┗[maeda-yarv atusi.org] -> 93 2004-06-22 18:58 ┗[ko1 atdot.net ]