yarv-dev:85
From: SASADA Koichi <ko1 atdot.net>
Date: Mon, 21 Jun 2004 15:52:25 +0900
Subject: [yarv-dev:85] AOT Compiler
ささだです。 JIT コンパイラ: ネイティブコードをせこせこ吐く AOT コンパイラ: Ruby Script -> C コード -> shared library として実行 という計画を考えてました. そしたら首藤さんに, > JIT コンパイラはネイティブコードを吐くのに、 > なんで AOT コンパイラは C ソースコードを吐くんでしょうか。 > > 両コンパイラの出力は共通にして、同じコンパイラを使いまわす、というのが > 普通のやり方のように思います。 > > でも実際は > - C コンパイラによる最適化を活用したいから、 > AOT コンパイラは C のソースコードを吐く。 > - JIT コンパイラから C コンパイラを呼ぶのはいやーんなので、 > 仕方なく、なんとかして、質は良くないかもしれないがネイティブコードを吐く。 > でしょうか? といわれました. まったくもって首藤さんの推測のとおりです. 追加するなら,Cに落とすのは比較的楽だと推測されるから,です. (命令をペタペタ貼り付けする) で,わからないのが - 両コンパイラの出力って何? - なぜ C コンパイラを通さないの? (Cコンパイラの最適化よりもすごいことができる?) という点です. とくに後者は IBM みたいなところとは違って個人ではちょっと なー,という気がします.素直に gcc の最適化に任せたい. (って,gcc 依存な話) ただ,Cコンパイラ必須にすると,gcc というか,C コンパイラ がない環境だと,AOT compiler役にたたないんだよな. AOT compiler をしらずに適当に言っていた悲劇かもしれません. JIT compiler でも,UTI lisp は実行時に c compiler 呼んでるって 話は聞いたことがあります.でも,それはちょっと富豪過ぎませんかね. 時間なくなったらそうするかも. -- // 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 ]