« MacPorts Portfile 用の VIM シンタックス | トップページ | SandTrip 0.9.8 リリース »

2007.11.03

続・ruby-1.8.6-p110 で bridgesupport の生成に失敗する(解決編)

ruby-1.8.6-p110 で bridgesupport の生成に失敗するの続き。どうにか解決できたっぽいので、[rubycocoa-devel:1222]として投げた。

原因は Ruby の REXML ライブラリの変更によるもの。Ruby 1.8.6 の p40 で lib/rexml にわりと変更がはいって、それに追従できていない。

  1. [ruby-dev:32040]
  2. REXML::Element#add_attribute の値が文字列じゃないといけない。元々 API の仕様はそうなんだけど、これまでなんとなくうまく変換されていた。現在は、true/false/数値 がアウト。
  3. REXML::DocType の DTD ファイルの場所が normalize されるようになった。そのため、今までダブルクオートでくくって渡していたものがエスケープされてアウト。

これらを解決するよう修正を入れて、ローカルで検証。以下の方法で生成した bridgesupport がすべて一致すること(diff -urw)を確認した。

  • ruby-1.8.6p36(Leopard組み込み), RubyCocoa r2102, BridgeSupport r15
  • ruby-1.8.6p111(REXML修正済み), RubyCocoa r2102, BridgeSupport r15(修正済み)
  • ruby-1.8.6p36(Leopard組み込み), RubyCocoa r2102, BridgeSupport r15(修正済み)

なかなか Leopard でのプログラミングお楽しみ会は遠いねえ。

その後の経過(2007/11/04 追記)

  • BridgeSupport は r16 で修正された。Laurent 仕事はええな。
  • macports ruby はチケット#13135を投げた。コミットされるといいなあ。

|

« MacPorts Portfile 用の VIM シンタックス | トップページ | SandTrip 0.9.8 リリース »