« RubyCocoa 0.13.2 の MacPorts 更新をチケット登録 | トップページ | RubyCocoa 0.13.2 の Tiger 用 dmg インストーラにパッケージミス »

2008.02.28

MacRuby - Ruby1.9 powered by Objctive-C 2.0 Runtime

lrz's diary の Hello MacRuby 経由で Why MacRuby。以前に Laurent が計画していたらしい(参考:MatzにっきのRubyConf 2006)、Objective-C ベースの Ruby 実装がついに登場(する予定)。

  • 1.9 ベース
  • Ruby インタプリタ中のクラス・オブジェクトは実際の Objective-C/Cocoa のクラス・オブジェクトになる
  • Objective-C ライクなキーワード引数の構文 dict.setObject(o, forKey:k)
  • ネイティブな POSIX スレッド
  • Objective-C (2.0) のガベージコレクタを利用

まだまだ完成とはいかないのだけれど、これによって RubyCocoa の問題がたくさん解決する(らしい)。すげえな、正直なとこ本気だとは思っていなかったぜ。

難しそうなのは、String と GC あたりかな。

そういや昔ふじもとさんが作っていた Classic Mac OS 用の Ruby も MacRuby という名前だった。まあ間違える人はいないだろうし、かまわないのか。

(2008.02.29 追記)

  • マイコミに記事が出てた。「かつて同名の旧Mac OS用Ruby実行環境も存在したが」あたりが、、、そんなこと言わんでもと思わないでもなく
  • MacRubyTutorial で、どういうふうに Cocoa オブジェクトが扱えるのかが紹介されてる

(2008.03.06 追記)

(2008.03.12 追記)

|

« RubyCocoa 0.13.2 の MacPorts 更新をチケット登録 | トップページ | RubyCocoa 0.13.2 の Tiger 用 dmg インストーラにパッケージミス »

コメント

Objctive-C 2.0 とあるので GC は Objctive-C 2.0 におまかせということではないでしょうか。

投稿: GNUE(鵺) | 2008.02.29 12:35

あ、すみません。

・Objective-C (2.0) のガベージコレクタを利用

と書いてありましたね(^^;

投稿: GNUE(鵺) | 2008.02.29 12:42

GCそのものは実装する必要がないのですけど、Ruby側とのインターフェイスの調整みたいのが
めんどいんじゃないかと。まだコード全然見ていないのですけれど。
単にrb_mark_set()とかをなにもしない関数にすりゃいいんですかね?

手元でビルドしたr28のmake testだと、systemのGCあたりで止まるんですよねえ..

投稿: kimuraw | 2008.03.01 00:21

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« RubyCocoa 0.13.2 の MacPorts 更新をチケット登録 | トップページ | RubyCocoa 0.13.2 の Tiger 用 dmg インストーラにパッケージミス »