テストしてみる時間と気力がわかないので放言ですが、 このへんですよね。 multibitnums.c: 202 void 203 Init_multibitnums() 204 { 205 extern VALUE ruby_class; 206 ID id; 207 id = rb_intern("NumRu"); 208 if (rb_const_defined_at(ruby_class, id)) { 209 mNumRu = rb_const_get(ruby_class, id); 210 } まあまずはヘッダにない C の外部名を extern とかいってほじくりだしている時点で死亡フラグです。(えらそうに言ったときに限って調べると書いたの俺、なんてことがあるかもしれませんが)。 で、これは、ruby_class のかわりに rb_cObject を使えたりしないですかね。ruby_class == rb_cObject でない状況というのは、たぶんモジュール内なので、NumRu モジュールのなかで require されるとだめなのか、というあたりが疑問なのですが、テストしてませんごめんなさい。
豊田----- Original Message ----- From: "Youhei SASAKI" <uwabami@xxxxxxxxxxxxxx>
To: "Takeshi Horinouchi" <horinout@xxxxxxxxxxxxxxxxx> Cc: "Dennou-Ruby Project" <dennou-ruby@xxxxxxxxxxx> Sent: Sunday, July 24, 2011 11:57 PM Subject: [dennou-ruby:003382] Multibitnums の 1.9.2 対応
堀之内様(Cc: dennou-ruby) : 佐々木です. multibitnums のパッケージングをしております. Debian では, 次期安定板(現 testing) Wheezy より, 既存のパッケージは Ruby1.8/1.9.2 双方で動作することが求められています. なので, 添付の(汚い) パッチを書いてみましたが, 動作させる所で転んでいます. 具体的には numru/multibitnums を require した時点で/usr/lib/ruby/vendor_ruby/1.9.1/x86_64-linux/numru/multibitnums.so: undefined symbol: ruby_classとなっています. Ruby1.8 から Ruby1.9.x になった段階での変更だと思われます が, 如何しましょうか? ちなみに, 添付のパッチは Ruby1.9.1 対応(ad hoc に RSTRING_PTR 等を書き変 えた) と test/ 以下を test/unit で書き変えています. --- Youhei SASAKI <uwabami@xxxxxxxxxxxxxx> <uwabami@xxxxxxxxxxxxxxxxxx> Department of Mathematics, Kyoto University GPG fingerprint: 4096/RSA: 66A4 EA70 4FE2 4055 8D6A C2E6 9394 F354 891D 7E07