BT

MacRuby 0.5にLLVMをベースにした高速VMが搭載される

| 作者: Werner Schuster フォローする 6 人のフォロワー , 翻訳者 編集部 フォローする 0 人のフォロワー 投稿日 2009年4月1日. 推定読書時間: 2 分 |

MacRuby 0.4リリース(参考記事)により、新たなグラフィックスライブラリおよびThreaded GCなどの改善がもたらされた後、MacRubyの次期バージョンがパフォーマンスの改善を売り物にしようとしている。ブログ記事では、MacRubyの試験的なブランチにおける新たなLLVMベースのVMを説明しており、それは、YARVに取って代わるものである(リンク)

新たなVMは、パーサーからLLVMの中間表現に直接抽象ソースツリーを変換し、それから最適化されたマシンコードにコンパイルされる。高速fixnum 計算、キャッシュドメソッドディスパッチ、zero-cost IA64例外、高速インスタンス変数アクセス、定数キャッシング、高速break/next、チープローカル変数、末尾呼び出しの最適化、など他の主要な 最適化の多くが完了している。

新たなVMであるRoxorのソース(リンク)が、試験的なSVNブランチで利用可能になっている。基本的にcompile_nodeメソッドは、Ruby ASTを受け取り、プリミティブもしくはRubyランタイムに対する呼び出しのどちらかで構成されるLLVM命令に変換する。

MacRubyはRuby 1.9.1に基づいているが、新たな試験的なVMなどの変更およびObjective-Cタイプの使用は、互換性の問題を生じさせる可能性がある。互換性を維持するため、MacRubyはRubySpecに統合された(ブログ記事より):

現在の試験的なブランチは、言語スペックのほとんどをすでにパスすることができ、リグレッションテストスイートの標準パートになる。また、Ruby 1.9の振る舞い に適合するように、積極的にスペックをアップグレードしている。

RubySpec(リンク)は、Ruby実装の振る舞いの実行可能なスペックであり、Rubiniusプロジェクトにより開始された。

Antonio Cangiano氏は、試験的なMacRubyバージョン上でいくつかの言語機能マイクロベンチマークを実行した(リンク)。MRIおよびスタンダード1.9.1と比較すると、非常に良い結果をもたらした。次期リリースで、パフォーマンスがどう展開するのかはまだ分からない。Antonio氏は、MacRubyの利点について以下のように指摘している。

(RubyCocoaのようなブリッジを通じ)Objective-CおよびRubyに依存するよりはむしろ、デベロッパはMac OS Xコアテクノロジーと統合し、Object-Cの代替言語として働くMacRubyを使用することができる。 厳密に言うと、Objective-Cのランタイムおよび'ガベージコレクターはMacRubyの心臓部である。しかしAPIの観点では、プログラマはより冗長で低レベルのObjective-Cの代わりに、Rubyでコードを記述することができる。

GUIライブラリの長いリストおよびRubyの抽象概念を考慮すれば、OS Xをターゲットにしているデベロッパは、Objective-Cを使用する必要なく、Cocoaライブラリと緊密に統合するアプリケーションを構築することができる。

 

原文はこちらです:http://www.infoq.com/news/2009/03/macruby-llvm-speed

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT