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

yarv-dev:88

From: MAEDA Atusi <maeda-yarv atusi.org>
Date: Mon, 21 Jun 2004 18:58:41 +0900
Subject: [yarv-dev:88] Re: AOT Compiler

ML: yarv-dev quickml.atdot.net
新メンバー: maeda@c...

SASADA Koichi <ko1 atdot.net> writes:

> > 3,4年前に、奈良先端の蟻川さんが作ったという Java バイトコードの
> > JIT コンパイラは、外部の C コンパイラを呼び出していたと思います。
> > 共有ライブラリを作ってロードしていたと思います。

QuickSilverという処理系がありませんでしたっけ。
Cコンパイラは使っていないけど、「AOTでコンパイルしてキャッシュし
ておく」ってやつ。
quasi-static compilerと呼んでいたような気が。

ああ、これだ。
Quicksilver: a quasi-static compiler for Java
Mauricio Serrano, Rajesh Bordawekar, Sam Midkiff, Manish Gupta
Proc. OOPSLA 2000, pp.66-82

>  多分,production run のときには AOT compiler を使えると思うので,
> 開発時に disable できるようなもの,がいいのかもしれません.でも,そ
> の辺がバグの温床になったりして.

実は、真面目にVM toolkitを作ろうと思っています。

命令フォーマット定義とCで書いたインタプリタ記述から、
1. バイトコードインタプリタ
2. スレッデッドコードインタプリタ
3. Cへのトランスレータ
を生成できるようなやつを。

>  で,頻繁にコンパイルしそうなので,gcc 呼び出すのはちょっと富豪的
> すぎるんじゃないかなー,と.キャッシュするにしても,同一であるとい
> うチェックにちょっと時間がかかりそうな感じです.一般にはどうやるん
> だろう.

QuickSilver論文は、読もうと思いつつずっと読んでないのです。何か書いて
ありそう。

たとえば、
・CLASSPATHに機械語ファイルがなければ、
  ・$HOME/.vm_cash/パッケージ名/クラス名.so へコンパイル
・$HOME/.vm_cashはCLASSPATHに入れておく
・容量の上限を越えたら、LRUで削除
とか?

>  ruby だとループはイテレータでまわすと思うんで,コンパイル
> するのはブロックだけでいいと思うんだけれど,そういえばブロック
> って C でどうやって表現するのか知りません.ガビーン.

普通にオブジェクトとして表現すれば良いんでは。メソッドのコードへの(た
ぶん表を経由した)参照を含む構造体。

オブジェクトを割り付けたくないとかなら、入れ子関数を使ったりすると
面白いかも知れないけど。

				前田敦司

--
ML: yarv-dev quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml

このMLを退会する方法:
- 本文が空のメールを <yarv-dev quickml.atdot.net> に送ってください
- 本文が空のメールを送れない場合は、
  本文に「退会」とだけ書いたメールを <yarv-dev quickml.atdot.net> に送ってください
  (署名やhotmailの広告などがついて空メールを送れない場合など)

<yarv-dev quickml.atdot.net> のメンバー:
ko1@a...
aamine@l...
babie7a0@y...
cv8t-hdk@a...
fukumori@m...
g-stuff@b...
gotoyuzo@n...
iga@r...
ikoma@m...
kawaji@h...
kou@c...
kumaryu@k...
maeda-yarv@a...
makoto.nakagawa@h...
masato@c...
matz@r...
nobsun@s...
nobu.nakada@n...
sakai@t...
sheepman@t...
shudo@c...
shugo@r...
usa@g...
yuya-ml@4...
zn@m...
nobu.nokada@s...
maeda@c...

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

        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       ]