«前の日記(2008年02月27日) 最新 次の日記(2008年02月29日)» 編集

Matzにっき


2008年02月28日 [長年日記]

_ [Ruby] MacRuby - ruby - Trac

Mac OSXで動作するRubyというだけなら単にコンパイルするだけでよいのだが、 このMacRubyは、YARVをベースに

  • 全部のオブジェクトをObjective-Cのオブジェクトにマップ(プロクシ不要)
  • OSXの世代別GCを利用
  • obj.foo(1, bar: 2)を [obj foo: 1 bar: 2] にマップ

するという大胆なもの。すげーっ。

これが成功すればRubyは名実ともにOSXの公式スクリプト言語として定着するに違いない。

言語設計者として一番気になるのは、リストの最後にある「Objective-C呼び出しへのマッピング」。 上の例では「foo:bar:」というObjective-Cのメソッドが存在しなければ 通常のfooメソッドの呼び出しになるようになってるそうだ。

将来(2.0?)のキーワード引数に対するヒントになるかもしれない。

言語実装者として気になるのは、世代別GCの実装。 確か明示的なライトバリアが必要なタイプだったと思うんだけど、 これをどうしたかっていうのも興味深い。

っていうか、手元にOSXマシンがなくて試せないってのはどうなのよ。

最近はMacBook安いし、ひとつ手元にあっても、という気もしないでもないのだが、 あのポインティングデバイスが駄目なので*1、 どうにも購買意欲が。

*1  試したがiPod Touchも駄目だった


«前の日記(2008年02月27日) 最新 次の日記(2008年02月29日)» 編集