MacRuby-devel ML: roadmap for 0.5(3)
昨日の続きです。これで、最終回です。
- MacRuby-devel ML: roadmap for 0.5(1) - 高尾宏治日記 on はてな
- MacRuby-devel ML: roadmap for 0.5(2) - 高尾宏治日記 on はてな
- -
以下は、どうするか分からないような作業項目です。これらは、リリースにとってクリティカルな問題ではないのですが、それでも重要なものです。これまで挙げた作業が終わった後にやるかもしれません。
- instruby.rbをrakeライブラリを使って書き直す(rakefile-ize)。実現性:低
- 多重代入のときに裏で配列を生成しないようにすること。多重代入の戻り値として配列を生成しますが、多くの場合、その配列は使われていません。実現性:低
- (修正、正確な翻訳ではないかも)多倍長整数演算において、CPUのSIMDを使って(bignum vectorization)、Bignumクラスを再実装する。実現性:中
- AOT(Ahead Of Time)コンパイラの完成。実現性:高
- JITのマルチスレッド対応。コード量が多いライブラリを読み込む際、起動時間を短縮するためにRubyスクリプトを別スレッドでコンパイルする。実現性:低
- デバッガインタフェース。実現性:低
- LLVMのtrunk、または次期リリース版の2.6の対応。LLVMのtrunkは変化が早く、多くのAPIが変わってしまいます。そのため、たまにコンパイルできなくなります。実現性:低
ローラン
以下、原文です。http://lists.macosforge.org/pipermail/macruby-devel/2009-July/002091.html
Now, here is a list of tentative items, things that are not necessarily critical for the release but nevertheless important. Some of them might be completed by then, some not. * rakefile-ize the instruby.rb script. Chance: low. * massign arrays elimination pass. Multiple assignments generate an array as the return value. Most of the time, this array is not needed. Chance: medium. * bignum vectorization. Use a bignum vectorization library to re-implement Bignum. Chance: medium. * Finish the AOT compiler. Chance: high. * multithreaded JIT. Compiling Ruby from different threads to improve startup time when loading large libraries. Requires the new LLVM trunk changes. Chance: low. * debugger interface. Chance: low. * work with LLVM trunk / future 2.6 release. LLVM trunk moves too fast, adds lots of API changes and sometimes doesn't build at all. Chance: low. Laurent
-
- -
最後に、私の感想を少し述べます。
JITのマルチスレッド対応なんて、できたらすばらしいですが、コンパイル時の定数が定義されているかどうかとか、ローカル変数かどうかとかのコンテクストは必要ないのですかね。よく分かっていないので、これから勉強したいですね。
あと、「bignum vectorization」って何でしょうか。不勉強なため、分かりませんでした。->Vincent Isambart on Twitter: "@takaokouji bignum vectorization=Bignumの計算がCPUのSIMDを使うってことです"
-
- -
今日まで3回に渡って、MacRuby 0.5のロードマップを翻訳してみました。かなりチャレンジな修正もあります。これからのMacRubyから目が離せません。