なんかこのところ生活臭のただよう話題ばかりなんで、たまにはRubyの話を。
Rubyの新実装であるRiteであるが、解決したい課題は以下のものだ。
「組み込み対応」はアプリケーションの一部として Rubyインタプリタを組み込んだとしてもじゃまにならないためのもの。 具体的には「インタプリタオブジェクトを持つ」あるいは「インタプリタオブジェクトの再初期化ができる」ことが必要だろう。GCについての考える必要があるかもしれない。
「スレッドセーフ」では、少なくともpthreadを使うライブラリとリンクしても、 止まったり落ちたりしないような実装にしたい。たぶん、インタプリタオブジェクトはここでも役立つだろう。 また、必要に応じてはgiant interpreter lockで対応せざるをえない部分もあるかも。 yaccを使ったparserはreentrantにできないのも問題だ。 bisonのpure-parserはlexer用にデータを渡せないので、役に立たない。 これをreentrantにするには自分で再帰下降構文解析を行うか、lemonのようなparser generatorを使うか。 GCについての考える必要があるかもしれないのはこの件も同じ。
「高速化」はある意味当然だろう。実行が速くて文句を言う人はいないし、 また現在のRubyの実装が決して効率の良いものではないと分かっているのだから、 ぜひ実現したい。 この件については、いくらRubyが最適化が難しいと言っても、(今が良くないのだから) メソッド呼び出しの効率化とバイトコードディスパッチの改善でかなり高速化できそうな気がしていた。 しかし、私自身の作ったプロトタイプや笹田さんのyarvなどの結果はさほど思わしくない。 実はボトルネックは別のところにあるのだろうか。
去年の5月にこの「Matzにっき」をスタートして以来、アクセス数なんて気にしたことなかったが、 あちこちで話題になっているのでちょっと調べてみた。
2004年1月1日から14日までの計は以下の通り。 これは「Matzにっき」のトップページにGETアクセスしたものの数。
1日 2320 2日 2330 3日 2486 4日 2538 5日 4740 6日 3378 7日 4310 8日 5078 9日 4190 10日 2520 11日 2914 12日 2938 13日 3156 14日 4320
休日にはアクセスが少ないということがはっきり分かる。が、休日でも休まずアクセスする2000人の廃人が。 この14日間の平均を出すと3372.17。多い日は5000アクセスがあるのか。驚異的だな。
もうちょっと心して文章を書くべきかもしれない....うーむ、無理だな。