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

[dennou-ruby:000775] NumArray とComplex



小塚です。

次なるステップとしてNumArray、NArrayへ行こうと思い、
NumArrayを利用してみましたが、いくつかなんで?と思う点がありました。

環境は
ruby 1.6.4 (2001-06-19) [i386-freebsd4.3]
です。

まず、
%ruby extconf.rb
でMakefileを作ったのですが内容がおかしいです。
--
DESTDIR =
exec_prefix = $(DESTDIR)$(prefix)
libdir = $(DESTDIR)/usr/local/lib/ruby/1.6
archdir = $(DESTDIR)/usr/local/lib/ruby/1.6/i386-freebsd4.3
sitelibdir = $(DESTDIR)$(prefix)/lib/ruby/site_ruby/1.6/i386-freebsd4.3/num
--
これだと、/lib/ruby/site_ruby/1.6/i386-freebsd4.3/num
以下におかれてしまいます。あと、
--
DLDFLAGS = -Wl,-soname,$(.TARGET) -L$(exec_prefix)/lib
--
になっているのでlibrubyをリンクするところでも失敗します。
とりあえず、extconf.rbの
--
require "nmkmf"
--
の部分を
--
require "mkmf"
--
に変えて逃げました。
このことはComplexライブラリでも同じでした。

後、Complex絡みの話なのですが
%ruby -e ' require "complex"; require "numarray"; NumArray.new(Complex,8,6,4)'
-e:1:in `new': non supported class(first argument must be a class name) (ArgumentError)
        from -e:1
となってしまいます。

正しいかどうかはわかんないですが
complex.hの
--
VALUE cComplex;
--
を
--
EXTERN VALUE cComplex;
--
に書き換え
complex.cに
--
VALUE cComplex;
--
を追加すると上のRubyスクリプトは動くようになりました。

他の環境だと問題ないんでしょうか?
京都大学 法学部 2回生 小塚真啓
KOZUKA Masahiro (j00y1210@xxxxxx)