BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Ruby VMの総まとめ:MacRuby 0.2、JRuby JMX、Ruby 1.9

Ruby VMの総まとめ:MacRuby 0.2、JRuby JMX、Ruby 1.9

MacRubyは、Ruby 1.9をObjective-Cランタイム環境へ移植したものだ。(MacRubyの開発者であるLaurent Sansonetti氏のインタビューを読むことが出来る(参考記事・英語)。)

現在新しいバージョンのMacRuby 0.2が利用可能となった(source)。リリースノートを参照してみよう。
MacRuby 0.2では、すべての文字列、配列とハッシュは現在nativeなCocoaタイプである。そして、それぞれは、NSString、NSArrayとNSDictionaryオブジェクトによって表されている。
リリースノートから:全てのString、ArrayとHashインターフェースは、強力なCoreFoundationフレームワークを使用しているCocoaに相当するものの上で書き直されました。
  [..]
IもはやRubyのプリミティブタイプをCocoaへ、またはその逆へ変換する必要はない。例えば、NSStringを要求する基礎をなすC又はObjective-C APIへ変換せずに、MacRubyで作られたStringは渡すことが可能だ。同様に、Ruby Stringクラスのどんなメソッドも、Objective-CのNSString上で実行可能だ。

Objective-Cデータ構造とStringsを用いたことによって、若干パフォーマンスが改善された。MacRuby 0.2は、MacOSforgeで利用可能だ(source)

JRubyチームは、JMXの取り組みに忙しい。Charles Nutter氏は、最近MBeansをJRuby trunkに追加しました。これによってJRubyの内部をモニタリング可能となる(source)。JRubyのオプティマイザとJITが行っていることを見るのが可能となった。これは、JRuby上で動くアプリケーションが、オプティマイザと相互に作用しているんだという感触を掴むのに役立つ。コマンドラインスイッチの、--manageを追加するだけで、簡単にJConsole(source)のようなツールを使用している情報を参照することが可能となった。


JRubyのTom Enebo氏による新しいJMX gemが(source)、他の方向即ちJMXを経由でエクスポートされた情報を使うという点で動いています。JMX gemによって、JMXサーバへの接続、エクスポートされたMBeanを一覧にし、特性を使い、操作を実行することが可能になった。これと同じ働きをするライブラリとして、jmx4rが(参考記事)存在する。またTom Enebo氏のjmx gemは、JRubyでMBeanを定義することが出来る。それは、普通のMBeanサーバに登録することが可能だ。(JMXは、Java5からJavaに含まれた。)これで、JRubyアプリケーションは、JMXシステムで、自分自身のモニタリング情報をエクスポートすることが可能となった。もちろんJConsoleのようなツールを使ってもそれらの情報を見ることは可能だ。


最後に、笹田耕一氏は、Ruby 1.9.0-2がRubyKaigiに間に合い、2008年6月20日頃リリースされることを言及した(source)。一旦リリースされれば、より多くの変更の詳細が明らかになる。しかし、Ruby trunkのCHANGELOGをさらっとみると、RubyGemsへのアップデートとRDoc2.0へのアップグレードのことが書いてあった。

:今回または将来的なリリースで起こりうる変更として、Ryan Davis氏によるtest/unitの置き換えがある(source)。Ryan氏は、miniunitの使い方を説明する(source)
% sudo gem install miniunit
% sudo use_miniunit yes

二番目のコマンドを実行することによって、symlinksが、sitelibディレクトリへインストールされる。sitelibディレクトリminiunitは、$LOAD_PATH環境変数上で、stdlibディレクトリより前にあります。従ってtest/unitの代わりにminiunitが実行される。sudo use_miniunitの引数にnoを渡すと、今まで通りtest/unitが実行される。ただminiunitはトータルでみると簡単且つ安全だ。

とてもすばらしい機能を今回のリリースに追加した。追加機能の大きいものとして以下のような機能がある。

 * assert_includesという新しく有益なアサーションを追加した。
  * 全てのアサートに反証を追加した。例えば、refute_empty aryのように。
 * mini/spec及びmini/mockを追加した。それらは、mini/testと並んで動作可能だ。
カスタムなtest-runnersを利用しているRuby IDEの開発者又は全ての人への重要なお知らせ
注意:もしkomodoのようなGUI IDE/test-runnerにmini/testを統合して使おうとしているのであれば、その際起きたバグを報告しないで下さい。それは、GUI runner等と互換性を持つということを意味しません。あなたが作成したテストと互換性を持つということを意味します。

この問題に取り組むために、オリジナルのtest/unitは、gemに引き出された。

原文はこちらです:http://www.infoq.com/news/2008/06/roundup-macruby02-jruby-jmx

この記事に星をつける

おすすめ度
スタイル

BT