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

yarv-dev:87

From: SASADA Koichi <ko1 atdot.net>
Date: Mon, 21 Jun 2004 17:37:00 +0900
Subject: [yarv-dev:87] Re: AOT Compiler

  shudo computer.org wrote :
    [ [yarv-dev:86] Re: AOT Compiler ]
    at Mon, 21 Jun 2004 17:13:50 +0900 (JST)

 ささだ@まったく原稿に手につかない です.

> 「両コンパイラの出力は共通にする」というのは、
> JIT コンパイラと AOT コンパイラで
> 基本部分 (parse -> 最適化 -> コード生成) を共通化する、
> ということです。
> わかりにくくてごめんなさい。

 きちんとした最適化部,コード生成部さえもてれば問題ないのだ
とは思うのですが,絶対半年じゃ無理だと思うんで.

> 以下が伴えば、コンパイラを呼び出しちゃうのもいいんじゃないでしょうか。
> 
>   - コンパイル結果をキャッシュして使いまわす。
>   - production run のときにだけ enable できるか、
>     または、開発時には disable できる。
> 
> 3,4年前に、奈良先端の蟻川さんが作ったという Java バイトコードの
> JIT コンパイラは、外部の C コンパイラを呼び出していたと思います。
> 共有ライブラリを作ってロードしていたと思います。

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

 JITコンパイルのタイミングにもよるんだと思いますが,多分 profile
もどきはやろうと思っています.で,n回(多分2回)以上起動したものを
コンパイル,と.1度しか呼ばれないながーいメソッドには対応できない
んですけど,まぁその辺はとりあえずいいかー,と.

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


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

 まぁ,JITコンパイルの場合,Cでの表現に拘らなくてもいいとは
思うんですが,AOTで問題になりますねえ.

-- 
// 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       ]