[Yarv-devel] Re: Intense speed ruby

MAEDA Atusi maeda-yarv @ atusi.org
2004年 2月 10日 (火) 01:52:28 EST


Masato KIYAMA <masato at cs.kumamoto-u.ac.jp> writes:

> >  ruby で ruby vm で激速、ってそそられますけど、どうなんだろう。
> >  ちょっと想像がつきません。
>
> ですね.
> 僕も想像がつきません.
> まあ,理想ですから.

インタプリタのコアの部分はともかく、コンパイラはRubyで書いた方が良いは
ずですよね。もし、文字列処理や木構造の処理が得意で、十分 速いなら、Cで
書く意味はないはず。

# そういえば「Ruby VMが速くなると何がうれしい?」のありうる答として、
# 「Cでライブラリを書く必要性が薄れる」ってのはあるんじゃないかな。
# CのAPIや、既存のCライブラリさえ呼び出せればよくて、速度のためにCで書
# く必要はなくなる。拡張ライブラリも組み込みクラス/モジュールも。

バイトコード(ワードコード)インタプリタ自身もRubyで、てのは半分冗談です。
自分で自分をインタプリトするのは無理なので、native codeに落とさない限
り動かなくなっちゃうでしょう。(Javaで書かれたJava VMはありますけど、
どれもnative codeに落とすJIT or AOTコンパイラを持っているんだと思いま
す。)

> > - Tail call optimization
> > - Pair/List native class
> > - call/cc
> > 
> >  を絶対入れます。(打倒 gauche)(rubyVM の目標として激しく違う気もする)
> 
> call/ccとかはコード見てみたいですね.
> よく理解できなかったんですよね,call/cc...
> Pair/Listってのはよく分かんないです.

良く意味が分からん:-)

SchemeやMLの処理系がtail call optimizationをやるのは、tail call以外で
ループが書けない言語だからです。それでも、デバッグのためにわざわざ
tail call optimizeしないモードがあったりします。

Rubyでtail call optimizationは???
デバッグ性も落ちるし、速度も速くならないだろうし、どうなんでしょ?

call/ccも、大域脱出とスレッドがあれば99%用は足りる気がします。

# ところで、yarvのソースのyarv.rubyforge.orgからダウンロードができない
# んですけど(404)
				前田敦司


Yarv-devel メーリングリストの案内