[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:003383] Re: Multibitnums の 1.9.2 対応



テストしてみる時間と気力がわかないので放言ですが、

このへんですよね。

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