なかだです。

At Thu, 24 Jan 2002 19:30:12 +0900,
Takaaki Tateishi <ttate / kt.jaist.ac.jp> wrote:
> > 二つ目のパッチは、一応1.4でもコンパイルできるようにしてみたんで
> > すが、Symbol関係でテストが通らないのでダメかも。
> 
> 手元に1.4がないので,確かめられないですがパッチを
> あててcommitしました.後日確認してみます.

すいません、間違ってました。1.4のmkmf.rbだと別ディレクトリでコ
ンパイルできないので、1.6のをバージョンだけ書き換えて使ってたも
んで気づきませんでした。

テストに関しては、1.4だとSymbol==Fixnumなので飛ばす以外にないで
すね。


Index: extconf.rb =================================================================== RCS file: /cvs/ruby/src/rough/ext/dl/extconf.rb,v retrieving revision 1.34 diff -u -2 -p -u -r1.34 extconf.rb --- extconf.rb 2002/01/24 10:23:01 1.34 +++ extconf.rb 2002/01/24 13:30:42 @@ -152,7 +152,6 @@ else end -unless method(:have_func) == 1 - have_func("rb_str_cat2", "ruby.h") - have_func("rb_block_given_p", "ruby.h") or +method(:have_func).arity == 1 or have_func("rb_str_cat2", "ruby.h") +if method(:have_func).arity == 1 or !have_func("rb_block_given_p", "ruby.h") $dlconfig_h << "#define rb_block_given_p rb_iterator_p\n" end Index: test.rb =================================================================== RCS file: /cvs/ruby/src/rough/ext/dl/test/test.rb,v retrieving revision 1.40 diff -u -2 -p -u -r1.40 test.rb --- test.rb 2002/01/24 10:23:01 1.40 +++ test.rb 2002/01/24 13:00:03 @@ -180,9 +180,10 @@ assert("callback2", :must, r == 2) ptr = DL.malloc(DL.sizeof('CL')) ptr.struct!("CL", :c, :l) -ptr[:c] = 0 -ptr[:l] = 0 +ptr["c"] = 0 +ptr["l"] = 0 r,rs = h["test_fill_test_struct","0PIL"][ptr,100,1000] debug r,rs -assert("fill_test_struct", :must, ptr[:c] == 100, ptr[:l] == 1000) +assert("fill_test_struct", :must, ptr["c"] == 100, ptr["l"] == 1000) +assert("fill_test_struct", :must, ptr[:c] == 100, ptr[:l] == 1000) unless (Fixnum === :-) @@ -190,5 +191,6 @@ r,rs = h["test_alloc_test_struct", "PIL" r.free = DL::FREE r.struct!("CL", :c, :l) -assert("alloc_test_struct", :must, r[:c] == 100, r[:l] == 200) +assert("alloc_test_struct", :must, r["c"] == 100, r["l"] == 200) +assert("alloc_test_struct", :must, r[:c] == 100, r[:l] == 200) unless (Fixnum === :-) ptr = h["test_strlen"] @@ -202,8 +204,10 @@ lval = get_val[][0] ptr = h["internal_long_value"] ptr.struct!("l", :l) -assert("get value", :must, ptr[:l] == lval) -ptr[:l] = 200 +assert("get value", :must, ptr["l"] == lval) +assert("get value", :must, ptr[:l] == lval) unless (Fixnum === :-) +ptr["l"] = 200 lval = get_val[][0] -assert("set value", :must, ptr[:l] == lval) +assert("set value", :must, ptr["l"] == lval) +assert("set value", :must, ptr[:l] == lval) unless (Fixnum === :-) @@ -223,7 +227,11 @@ ptr = r ptr.struct!("C1024P", :name, :next) assert("data_aref", :must, - ptr[:name].collect{|c| c.chr}.join.split("\0")[0] == "name2") -ptr = ptr[:next] + ptr["name"].collect{|c| c.chr}.join.split("\0")[0] == "name2") +assert("data_aref", :must, + ptr["name"].collect{|c| c.chr}.join.split("\0")[0] == "name2") unless (Fixnum === :-) +ptr = ptr["next"] ptr.struct!("C1024P", :name, :next) +assert("data_aref", :must, + ptr["name"].collect{|c| c.chr}.join.split("\0")[0] == "name1") assert("data_aref", :must, - ptr[:name].collect{|c| c.chr}.join.split("\0")[0] == "name1") + ptr["name"].collect{|c| c.chr}.join.split("\0")[0] == "name1") unless (Fixnum === :-)
-- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦