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

[dennou-ruby:002927] NArray and Ruby/GSL on Ruby 1.9



 電脳Rubyのみなさま

 東工大の常定と申します。NArray と Ruby/GSL が らみのことについて、質問させて
ください。複数の拡張ライブラリを組み合わせて使うときに、何かエ ラーに遭遇された方
がいらっしゃったら、お知恵を借りたいです。


 現在、Ruby/GSL を Ruby 1.9 対応にさせ る変更をしています。どうやらそれその
ものはできてはいるようです。です が、NArrayと組み合わせようとすると、こけます。
環境はMacOS X (Leopard) - Darwinです。エ ラーメッセージは2タイプあり、以下
のようなものです。


1.
/Users/yoshiki/Ruby/rb-gsl/examples/narray/narray.rb:5:in `<top (required)>': uninitialized constant GSL (NameError)
from /usr/local/lib/ruby/site_ruby/1.9.0/gsl.rb:1:in `require'
from /usr/local/lib/ruby/site_ruby/1.9.0/gsl.rb:1:in `<top (required)>'
from ./narray.rb:2:in `require'
from ./narray.rb:2:in `<main>'


2.
/usr/local/lib/ruby/site_ruby/1.9.0/gsl.rb:2:in `require': dlopen(/usr/ local/lib/ruby/site_ruby/1.9.0/i686-darwin9.2.1/rb_gsl.bundle, 9): Symbol not found: _cNArray (LoadError)
Referenced from: /usr/local/lib/ruby/site_ruby/1.9.0/i686- darwin9.2.1/rb_gsl.bundle
Expected in: flat namespace
- /usr/local/lib/ruby/site_ruby/1.9.0/i686-darwin9.2.1/rb_gsl.bundle from /usr/local/lib/ruby/site_ruby/1.9.0/gsl.rb:2:in `<top (required)>'
from ./narray.rb:2:in `require'
from ./narray.rb:2:in `<main>'


 最初のケースは require("gsl") している のに GSL が見つからないというエラー。
2つ目は、_cNArrayが見えてないということ ですが、何か Mac 特有の問題かもしれま
せん。require("gsl")した瞬間にこけてます。ちなみにrequire("gsl")では、
narray.bundle (narray.so) と rb_gsl.bundle (rb_gsl.so) が順番にロード
されます。最初のケースではロードではこけ ずにモジュール(Ruby定数)GSLにアクセ
スしたときにエラーになり、2つ目のケースでは narray.bundleはロードできて
rb_gsl.bundleのロードでこけているように見えます。
 2つのケースがどういうときに起こるのかは、つかみきれていませ ん。エラーが起き
ないスクリプトでも、パス指定によって起きたり起きなかったりします。例えば
examples/min.rbというスクリプトがあるのですが、examples/ の下で ./min.rb
とやると動くのに、別のディレクトリに入っ て ../min.rb とやるとケース1のエラー
が起きるという感じ。わけがわかりません。


Ruby 1.8.6 ではこのようなことは起こり ません。Ruby 1.9 の問題なのか Mac
の問題なのかもわかってません(他の環境では試していません)。似た 経験おありの
方いらっしゃいましたら、対処法などお願いします。


環境:
 OS: Mac OS X 10.5 (Leopard) - Darwin 9.2.1, gcc 4.0.1
  Ruby: 1.8.6-p114, 1.9.0-0
  GSL: 1.10
  Ruby/GSL: 1.10.3 から Ruby 1.9 へ対応させるべく変更中。NArray を
  使わないなら完全動作。
-
 常定 芳基 <tsunesada@xxxxxxxxxxxxxxxxxxxx>
 東京工業大学 大学院理工学研究科 基礎物理学専攻
 152-8550 東京都目黒区大岡山2-12-1 本館B45号室
 TEL/FAX: 03-5734-2462/2756