BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース MacRuby 0.5にLLVMをベースにした高速VMが搭載される

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

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

この記事に星をつける

おすすめ度
スタイル

BT
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy