[前][次][番号順一覧][スレッド一覧][生データ]

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       ]