きりかノート 3冊め

おあそびプログラミング

RubyCocoa で非定型プロトコルの objc_export を自動的に

Leopard Tech Talks のあとでふじもとさんと話して「こうしたらいいんじゃ?」てなったのが、とりあえず実装できたので [rubycocoa-devel:745] として投げた。ちょっと追加した API で気に入らない部分があるんで、まだコミットはしてない。

このパッチで実現できること

  • 非定型プロトコルと同名のメソッドが定義されると、自動的に objc_export/objc_method 相当の処理を行う
  • その処理中で必要なので、BridgeSupport の非定型プロトコルに関するメタデータをとってくる APIRuby からも呼べるように

しばらく devel で様子見かな。

(2007/02/18 追記)Laurent から「これって意味ないんじゃ?」との指摘([rubycocoa-devel:746])。あー確かに。考え直してみると、RubyCocoa bundle で正しくハンドルできない API がある のが全部同じ原因なことがわかった。ようするに .bridgesupport が読まれてないのだ([rubycocoa-devel:748])。mach-o モジュールと、.bridgesupport ファイルのロード状況を同一と見なしているのが問題。oc_import.rb に手をいれれば、わりと簡単に直せるはず。