BT

MacRuby 0.5ベータが登場。JIT、AOT、GCDサポート、GILの削除を実現

| 作者: Werner Schuster フォローする 6 人のフォロワー , 翻訳者 笹井 崇司 フォローする 0 人のフォロワー 投稿日 2009年10月29日. 推定読書時間: 3 分 |

原文(投稿日:2009/10/18)へのリンク

MacRuby 0.5の最初のベータがリリースされた。現在のところ、Snow Leopard (MacOS X 10.6) マシンでのみ利用可能になっている。

InfoQはMacRubyコアチームにインタビューして、MacRubyの現状と今後について聞いてみた。

InfoQ: MacRubyの新しいVMでは、どのようにLLVMを使っているのですか?

MacRubyは要求に応じて(コードを実際に実行しようとしたとき)すべてをコンパイルします。[LLVM]バイトコードは、最適化パスを通されコンパイルされます。

MacRuby 0.5 betaのリリースノートでも言及されているように、外部関数呼び出しのためのスタブを生成するためにLLVMを使ってる。これまでMacRubyで使われていたlibffiを使うよりも高速になるためだ。

InfoQ: MacRubyのAOT(Ahead-Of-Time)は、Ruby標準ライブラリの一部をコンパイルしていますね。それはなぜですか?

もちろん、起動時間を高速にするためです。基本的に、AOTコンパイラをテストするために事前コンパイルをしています。これらはビルド時にメインのrakeタスクの一部としてコンパイルされます。

InfoQ: ネイティブ拡張のサポート状況はどうですか?

ripper、digest、socket、zlibといったC拡張は少し修正することで動くようになっています。将来のリリースでは、MRI C拡張APIをフル実装する計画です。

InfoQ: バージョン0.5での大きな改善の1つはGILをなくしたことですが、 すべて実装し終えてみて、どうでしたか?

私たちの知る限り、大きなオーバーヘッドにはなっていません。スレッドの開始には以前よりも大きなコストがかかりますが、いったん開始してしまえば、ほとんどのコードを平行に実行することができます。

MacRubyが真のCocoa開発プラットフォームになるためには、GILのないシステムが不可欠でした。デスクトップアプリケーションでは、スレッドや最近出てきたGrand Central Dispatch(GCD)を使うのが一般的だからです。

InfoQ: MacRubyではRubyコードをAOTコンパイルできますが、ガーベジコレクタから抜け出せてしまいますね。Objective-Cのリファレンスカウントによるメモリ管理を使う方法はあるのですか?

それはまだできません [..]。でも、私たちは、コンパイラがautorelease poolを発行するモードと、ランタイムがAutozone GCを使わないモードを検討しています。メーリングリストアーカイブをのぞくと、このトピックの最新の議論が見られます。

GCをエミュレートする方法に関するスレッドで言及されているように、これはMacRubyプログラムをiPhoneのようなAutozone GCをサポートしていないプラットフォームで動かすのに不可欠だ。また、この議論に関する別のメールでは、AutozoneをiPhoneに移植しても解決策にはならない理由を説明している。 なぜなら、iPhoneに搭載されているCocoaはGCについて何も知らないためだ。

最終的なMacRuby 0.5のリリースは、LeopardとSnow Leopard上で、32ビットモードと64ビットモードのどちらでも動くようになる予定だ。

MacRubyに関するInfoQの以前の記事とそのバージョン0.5までの道程を参照

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには 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